1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

Windows based python dev thinking switching to Linux

Discussion in 'Linux & Open Source' started by grumpybeard, Jan 10, 2019.

  1. grumpybeard

    Hitman

    Joined: Jul 24, 2009

    Posts: 706

    Location: Lost in Alps

    Hey fellas,

    Been using my main windows 10 pc last year for Python dev for uni stuff and self learning. This pc also used for other productivity and education stuff with ms office.

    Of course with the python and machine learning stuff I’m doing I think it would be good for my skill set to learn Linux command line, scripting and generally work in a Linux environment if I can. What distro would you guys recommend to try Ubuntu, Fedora?

    To safeguard the windows install I’m thinking of buying additional SSD just for the Linux env - Make sense? Thanks for advice to this Linux newbie, cheers
     
    Last edited: Jan 10, 2019
  2. masto

    Gangster

    Joined: Apr 29, 2012

    Posts: 104

    Location: Sevenoaks

    Hi grumpybeard,

    I'd suggest using a Debain based distro like Ubuntu, or Linux Mint, to start with.

    What I tend to do when dual booting a machine is have a separate drive like you mentioned - when doing the install I unplug the Windows SSD, install Linux onto the second SSD, then plug the Windows one back in and use the BIOS boot options to choose what to run on startup. You can have a boot manager handle things and it generally works fine, but I've had issues in the past with the Windows boot getting trashed so like to keep the two environments completely separate. It also keeps things simple if you decide you don't want to stick with running both - you can just wipe the Linux SSD for example and revert to just running Windows.

    Another, simpler, option to consider is playing around with the WSL in Windows 10 - this lets you run a Linux shell within Windows. It'll give you access to Linux command line tools without having to install a full environment. I've used both approaches (my work is infrastructure / devops type stuff, mainly revolving around databases) and while the WSL does have some limitations, for Python development and scripting it's not too bad. It's also quite nice to use as a native ssh client into headless VMs - I use Hyper-V running CentOS with the Ubuntu WSL as my client shell. Some things I just can't do within the WSL so a VM is needed.

    The other option is just use a VM to run a full Linux desktop under Windows.

    It all depends on what you're trying to learn. If you want to get accustomed to the shell, do some scripting etc, then the WSL is probably a good first step. If you want to play with different desktop environments and mess around with a full Linux environment you could just start with a VM. From what you've said, I'm not sure you need to set up a dual boot environment...
     
  3. grumpybeard

    Hitman

    Joined: Jul 24, 2009

    Posts: 706

    Location: Lost in Alps

    Hey Mastodon, thanks a lot for the input, appreciate your time to that that and sounds like all good suggestions.

    I really would like to protect the windows install, as it has a lot of stuff setup for sim racing and would be a pita to redo.

    I’ve been playing with elasticstack (elasticksearch, Logstash, Kibana), hosted in cloud, but might want to play with local install. Also interested in looking at some devops stuff including docker and kubernetes. All on top of machine learning where I need to extract max possible perf from pc and so was thinking that native explicit Linux install best? As I’d like to upgrade hardware to max cores available (threadripper or see what zen 2 brings this summer) also thinking Linux install best to make best use.

    I have no probs with buying additional dedicated ssd and switching between os at boot. What do you think? Cheers :)
     
  4. grumpybeard

    Hitman

    Joined: Jul 24, 2009

    Posts: 706

    Location: Lost in Alps

    Saw a Samsung evo m.2 SSID 500gb with 30chf off so gone for that, will play with installing a distro.

    Any pref between Ubuntu, fedora and mint for my use case?
     
  5. masto

    Gangster

    Joined: Apr 29, 2012

    Posts: 104

    Location: Sevenoaks

    Well, if performance is a consideration then it'd make sense to do a native install and not mess with VMs. And while you can mess around with containers inside a VM it's not going to perform as well.

    As I mentioned, it depends on what you want to do. From the sounds of it you'll benefit from just going straight to a full installation on a separate SSD.

    I'm partial to Mint. At the end of the day it doesn't really matter that much - you can run whatever desktop environment (e.g. Cinnamon) you like on top of Ubuntu. Maybe download a few distros and run them from live USB sticks to get a feel for each before you decide which one to start with.

    If you think you'll ever run Steam on Linux, then it's recommended to stick with Ubuntu or a derivative like Mint.

    Good luck!
     
  6. grumpybeard

    Hitman

    Joined: Jul 24, 2009

    Posts: 706

    Location: Lost in Alps

    Cheers Masto, appreciate the pointers, look fwd to exploring
     
  7. opethdisciple

    Capodecina

    Joined: May 18, 2010

    Posts: 17,399

    Location: London

    I've settled on Fedora.

    They will all do a similar job. Pick what ever you like.

    Ubuntu 18.10 was unstable on both my PC's. (One AMD rig and one Intel/Nvidia)

    Fedora no issues.

    Haven't tried Mint but admit it does look nice.

    ---

    Maybe give Mint a go first.
     
  8. Sp00n

    Capodecina

    Joined: Oct 18, 2002

    Posts: 18,037

    Location: Brighton

    Or maybe try the more stable LTS 18.04 :)

    I would just use virtualbox, that way you can try out all the things with very minimal effort as opposed to a separate HDD or dual booting.
     
  9. grumpybeard

    Hitman

    Joined: Jul 24, 2009

    Posts: 706

    Location: Lost in Alps

    Typing this using Mint from live USB install, liking it so far - looking fwd to getting my dev IDEs onto here and seeing how this goes as my daily os
     
  10. Cromulent

    Mobster

    Joined: Nov 1, 2007

    Posts: 2,898

    I do all of my Python development work on Linux, but I'm the opposite. I run Linux in a VMWare Workstation Pro 15 virtual machine and leave Windows 10 as my primary day to day operating systems. Having said that I do run a few Linux servers in the cloud, so I'm pretty comfortable with Linux. If you want any advice, then I can help you get set up in Linux.

    I play games and use Microsoft Office which is why I keep Windows 10 hanging around. Another option is to use Windows Subsystem for Linux which basically installs a Linux distribution you can use from the Windows 10 PowerShell or Command Prompt.
     
  11. grumpybeard

    Hitman

    Joined: Jul 24, 2009

    Posts: 706

    Location: Lost in Alps

    Really appreciate an oversight of your env for python dev @Cromulent. I’m working towards taking my Python dev into new work opportunities, so want to be working with Unix to get experience on how it could be in real working env, doing python alongside elasticsearch cluster and some devops. For example could setup mint as my personal work env and have another Linux install with red hat/suse to emulate some server side.

    You got me thinking on Vm workstation. I imagine this is paid for. Easy enough to setup a mint vm for example?
     
  12. Cromulent

    Mobster

    Joined: Nov 1, 2007

    Posts: 2,898

    Yes. You need to pay for VMWare Workstation Pro but you can use Virtualbox instead which is free but I find Workstation Pro is better for heavy use but you could use Virtualbox just to get up and running for free.

    https://www.virtualbox.org/

    VMWare Workstation Pro is very easy to use and is pretty fast which is why I pay for it but don't worry. If you start out with Virtualbox and then later decide to get Workstation Pro you can import your virtual machines with no real hassle.
     
  13. grumpybeard

    Hitman

    Joined: Jul 24, 2009

    Posts: 706

    Location: Lost in Alps

    Ok I’m starting to be convinced on doing things the VM way, especially if I want to be emulating client - server environments then I can just be running multiple VMs. Strengthens the justification for a many core lots of ram new build :)

    Edit: hoping my 5820k with 16gb can cut it for 2 vms for now!
     
  14. Hades

    Capodecina

    Joined: Oct 19, 2002

    Posts: 21,114

    Location: Surrey and London

    If you're just wanting to learn then I also suggest a VM. If you find you prefer Linux then I would go down the route of a separate SSD and switching the boot order in the BIOS.
     
  15. Buffalo2102

    Hitman

    Joined: Jun 9, 2004

    Posts: 625

    It wont even break a sweat.
     
  16. opethdisciple

    Capodecina

    Joined: May 18, 2010

    Posts: 17,399

    Location: London

    My home lab machine is a AMD FX 8320 with 16Gb of ram. Easily good enough for running loads of VM's.
     
  17. h4rm0ny

    Suspended

    Joined: Jun 25, 2011

    Posts: 4,529

    Location: Yorkshire and proud of it!

    I run into Redhat / Fedora / CentOS environments more often in corporate life than I do Debian based ones (Ubuntu, Debian) so that's a factor in which to learn. But frankly, I do think Debian is both superior and easier to learn. My recommendation would be Xubuntu or Mint. Both Ubuntu based but without the godawful UI. 98% of the How-Tos you find for Ubuntu will still apply.

    VMs are surprisingly efficient these days, however so yes to buying an SSD to run it off, but I'd recommend installing either VirtualBox or using Windows built-in Hyper-V and running GNU/Linux ON Windows. Windows 10 also includes Ubuntu GNU/Linux built in meaning all you have to do is turn it on in the Windows Features and bang - you have Bash, Linux kernel, etc. You could also use Docker which is probably going to be the most career-helpful. You need to set up Remote Desktop on the machine to connect to it and you might find you spend more time learning Docker than you do GNU/Linux to begin with.

    So there are lots of options but if you want one answer, my recommendation is get the SSD because this will really help, then install VirtualBox (it's free and very good), then create a VM on the SSD and install Xubuntu or Centos7. Xubuntu being the one you'll find easiest for sure. Centos being the one you're a little more likely to run into out in the wild. But as a software developer rather than a sysadmin, that shouldn't matter so much.
     
  18. grumpybeard

    Hitman

    Joined: Jul 24, 2009

    Posts: 706

    Location: Lost in Alps

    Great input and help guys, I really appreciate it.

    As I'm working towards machine learning and augmented intelligence dev in professional career, and wanting to understand full lifecycle from dev to prod within Linux environment, I decided purchasing VMWare Workstation Pro 15 was an investment. Actually reinstalled W10 on the new SSD NVMe, and using the original SSD SATA for the VMs. Been running Mint VM last few days now in learning the command line with terminal - finding VMWare very easy to get a VM going, and GUI of Mint is rather polished and clean.

    @h4rm0ny - great input on enterprise environment, cheers. Indeed, been talking to small software house who build their own AI app with CentOS and Elasticsearch as foundation components. So with VM Mint as my dev environment, I plan to create second VM with CentOS and ELasticsearch, to practice packaging python up for deployment to Prod, looking at sys and security admin etc just for an understanding. Will look at docker next.

    Very happy I went with VMs for the solution, makes complete sense and easy to build whatever environments are needed, cheers again fellas.
     
    Last edited: Jan 17, 2019 at 9:27 AM
  19. h4rm0ny

    Suspended

    Joined: Jun 25, 2011

    Posts: 4,529

    Location: Yorkshire and proud of it!

    Glad things are working out for you. I imagine you'll find CentOS a bit more of a pain in the arse than Mint. It always seems to be behind in the software packages I actually need. As a sideline to VMs, I'd look at installing Docker on Windows some time and having a play with Containers. It's a little lighter than VMs and a lot of environments are using them now. It can (to an extent) mean you can be a bit more flexible in what OS and software versions you actually want to use. But stick to what you're doing for now - it's the most straightforward approach to learning GNU/Linux.

    Also, don't listen to the zealots who are all GNU/Linux == Good, Windows == Bad. Both are amazing pieces of work and Windows has many good features. (Powershell leaves Bash in its dust, for example and ACLs on Windows are light years ahead of those on GNU/Linux). Conversely, a lot of development How To's and tools are written with GNU/Linux in mind.
     
  20. uvarvu

    Mobster

    Joined: Apr 29, 2004

    Posts: 3,799

    Location: Bath

    I'd also have a look at KDE Neon. Sorry but KDE has a much nicer and more useful UI if you are going to run Linux for development work!