# Experiences with Linux, advice on migrating from FreeBSD to Linux



## wolfspam (Jul 23, 2015)

Hey guys, I've been thinking of installing a Linux distribution on my laptop, mostly for gaming and Steam support, plus some writing. I'm trying to find a distro that would be a good fit, taking into account that I've been running exclusively FreeBSD for over 5 years now, coming straight from Windows with zero experience on Linux. I've noticed at least a few users here run Linux on a laptop/workstation and FreeBSD on servers and would like some input on the general experience of running a Linux distro and having it play nice with a FreeBSD server.

I understand a few peculiarities of GNU/Linux systems and different design philosophies of some distros and am in the process of installing Debian Jessie and taking it for a test run, since it seems to be very stable and most likely to play nice with Steam, without some of the caveats of SteamOS.

What I would most likely miss from FreeBSD is the ease of installing and updating. Right now, I just have my home server compile everything I use: ports via poudriere, base and kernel from /usr/src updated via subversion. This is extremely flexible and easy, keeping track of configuration options, dependencies and everything really well, also being able to deploy a running system extremely fast, as you all know. Linux package mangers seem to be a little weird about this, varying wildly between distros, and the threat of dependency hell makes me unsure of those lacking dependency resolution, like Slackware, for long term usability, at least at first. Maybe it's just a matter of getting used to a different way of doing things? Any opinion on the differences and use cases would be great.

Another important feature is ZFS, but that seems to be easy enough to setup and keep being able to send/receive snapshots to the FreeBSD home server, specially since OpenZFS unifying development. There are also other good filesystems, like XFS, maybe. Again, this is just from reading a few articles; actual experience is greatly appreciated.

Lastly, a nice compartmentalization via some jail-like system, to prevent some catastrophic data loss like https://github.com/ValveSoftware/steam-for-linux/issues/3671 from happening is a must. I've looked into AppArmor, SE Linux, Docker and LXC. This seems to be the most controversial issue, but since this particular use case doesn't have the same demand as a server running many internet facing services, maybe the differences won't be so great. I can't even make a good guess on this one, though. The threat model includes programs leaking information, containing adware, messing with system settings and files, installing files in weird places etc., Typical game stuff; it won't be running suspicious untrusted software or anything too complex.

In the end I looked mostly at Debian, Slackware, Arch Linux, Gentoo and Linux From Scratch. I may try them in that order, until I have more information. LFS seems a bit too demanding, though, specially for a non-coder.

Thanks in advance for your opinions on the matter, even slight impressions help.

PS: Virtualization is not really an option because this is an ancient laptop that simply can't take the overhead with most games, or do PCI passthrough.


----------



## scottro (Jul 23, 2015)

Gentoo is probably the most FreeBSD-like of the systems mentioned.  There are ways to build from source in Debian--I've forgotten to be honest, and if you're just using it as an occasional platform, I don't know how much you gain.  Arch has the ABS build system.  If, like me, it's old and weak, unless you are really fine tuning, I'd go with either Debian or Arch.  Doing the Gentoo compiling can be very time consuming, and can be a pain, plus, as an example, I had to enable support for a network card, and it wasn't really clear to me from what I could find in the kernel config, what options had to be allowed, as the numbers in the description of the kernel module didn't match what I had.

I haven't used Slack in a few years, but to get things like Steam going, you're probably best off with Debian, since it's probably the most popular and therefore has the Steam people building .deb files.


----------



## newbie32 (Jul 24, 2015)

+1 for Debian. After going through tons of distributions/derivatives when I can't take the time to port something over, it's the only one that in my personal experience hasn't flaked out after updates or generated conflicts out of it's package managed software.


----------



## drhowarddrfine (Jul 24, 2015)

wolfspam said:


> I've noticed at least a few users here run Linux on a laptop/workstation and FreeBSD on servers and would like some input on the general experience of running a Linux distro and having it play nice with a FreeBSD server.


I thought discussing other operating systems here was forbidden but ...

I don't see why a Linux distro would have problems playing nice with a FreeBSD server. For work, I often have to install Linux servers in a VM, or communicate with Linux servers, cause my client uses that (I'm a web developer). The only issues I ever have is when I have to update the Linux stuff which occasionally injures itself. 

I've also installed Linux distros in a VM for reasons I don't recall or just to see why the Linux people are raving. Eventually I forget about them or they "injure" themselves so I delete them but, again, I've never had a problem getting them to interact with any of my FreeBSD servers. Linux still mostly tries to be a Unix-like system though that is changing rapidly.


----------



## ANOKNUSA (Jul 24, 2015)

scottro said:


> but to get things like Steam going, you're probably best off with Debian, since it's probably the most popular and therefore has the Steam people building .deb files.



It doesn't really matter. The Steam runtime environment is self-contained; the *.deb file really just contains a bootstrap script (maybe a couple, actually) that installs the Steam runtime to ~/.local/share/Steam. The necessary libraries are installed there, as are all games, and Steam is self-updating.

My personal favorite distribution was Arch, but Arch has a notably higher maintenance burden than most distros. Debian is really stable and offers a lot of software, but package management for Debian is possibly the worst in the Linux world. It consists of a half-dozen programs, each one written to solve the problems that existed with all the others before it. The Debian devs should have created a new package manager from scratch a decade ago, but instead have decided to just keep slathering on more glue to hold the mess together. One of the reasons I left Ubuntu behind was that once you install something on a Debian-based system, it's there to stay. You can easily install a package and its dependencies; you can't easily remove it.


----------



## wolfspam (Jul 24, 2015)

drhowarddrfine said:


> I thought discussing other operating systems here was forbidden but ...


I Don't see Why it would, honestly. You even get the few "This OS is better than that OS" threads here, even though they're frowned upon and I purposefully avoided doing that. Also, I'm asking specifically from a  FreeBSD user's perspective.



drhowarddrfine said:


> I don't see why a Linux distro would have problems playing nice with a FreeBSD server.
> [...]Linux still mostly tries to be a Unix-like system though that is changing rapidly.


Yeah, I get that. I was more worried about something along the lines of syncing ZFS snapshots or delegating the compiling and downloading of software, that sort of thing. Regardless, it's not likely it'll be a problem, at least for now, good. I'll start getting familiarized to bhyve(8), though, just in case .




ANOKNUSA said:


> It doesn't really matter. The Steam runtime environment is self-contained; the *.deb file really just contains a bootstrap script (maybe a couple, actually) that installs the Steam runtime to ~/.local/share/Steam. The necessary libraries are installed there, as are all games, and Steam is self-updating.


I got that impression, but didn't know it went that far. Good to know, and it makes it even easier to manage and segregate from the rest of the system.



ANOKNUSA said:


> My personal favorite distribution was Arch, but Arch has a notably higher maintenance burden than most distros. Debian is really stable and offers a lot of software, but package management for Debian is possibly the worst in the Linux world. It consists of a half-dozen programs, each one written to solve the problems that existed with all the others before it. The Debian devs should have created a new package manager from scratch a decade ago, but instead have decided to just keep slathering on more glue to hold the mess together. One of the reasons I left Ubuntu behind was that once you install something on a Debian-based system, it's there to stay. You can easily install a package and its dependencies; you can't easily remove it.





scottro said:


> Gentoo is probably the most FreeBSD-like of the systems mentioned.  There are ways to build from source in Debian--I've forgotten to be honest, and if you're just using it as an occasional platform, I don't know how much you gain.  Arch has the ABS build system.  If, like me, it's old and weak, unless you are really fine tuning, I'd go with either Debian or Arch.  Doing the Gentoo compiling can be very time consuming, and can be a pain, plus, as an example, I had to enable support for a network card, and it wasn't really clear to me from what I could find in the kernel config, what options had to be allowed, as the numbers in the description of the kernel module didn't match what I had.
> 
> I haven't used Slack in a few years, but to get things like Steam going, you're probably best off with Debian, since it's probably the most popular and therefore has the Steam people building .deb files.





newbie32 said:


> +1 for Debian. After going through tons of distributions/derivatives when I can't take the time to port something over, it's the only one that in my personal experience hasn't flaked out after updates or generated conflicts out of it's package managed software.


I shall play around in Debian and Arch, then, and see what philosophy suits me best. Thanks for the opinions!


----------



## Beastie7 (Jul 24, 2015)

Steam is non-free software. All those distros allow non-free software, I recommend Trisquel Linux, as its' been endorsed with Stallman sprinkles.


----------



## scottro (Jul 24, 2015)

As the OP specifically mentioned using Steam, they may be better off going with the distributions that don't make it difficult to use not Free as in speech software.


----------



## wolfspam (Jul 25, 2015)

Beastie7 said:


> Steam is non-free software. All those distros allow non-free software, I recommend Trisquel Linux, as its' been endorsed with Stallman sprinkles.


I do like the free software ideology, although I'm an inveterate pragmatist and everything points to achieving better performance and compatibility if I use the proprietary NVIDIA driver with these non-free games distributed in a DRM riddled platform. Trust me, the minute I can go full FOSS for games and hardware drivers, I will. And in that case, I think I'll stick to FreeBSD, even though it's not Stallman approved. He may call her slutty, but she's my first and I like her =P


----------



## garry (Jul 26, 2015)

scottro said:


> Gentoo is probably the most FreeBSD-like of the systems mentioned...



Or its variant, Funtoo Linux led by Daniel Robbins the creator of Gentoo.  I've had good experience multibooting between FreeBSD 10 stable and Funtoo current.  Funtoo has committed to OpenRC, a BSD style init system and of course uses a portage tree that is very similar to our ports tree.  I was able to install Funtoo on a zfs root filesystem and share a zfs mirrored pool for /home between Funtoo and FreeBSD.  One thing to mention about Funtoo is that is relatively easy to install -- the "stage3 tarball" includes a Debian kernel with initramfs ready to run on almost any hardware.  You can learn the intricacies of building a custom Linux kernel from source later at your convenience as you learn.  At the beginning it would be safest to avoid trying to put the root system on zfs and just run a file system that is natively supported by the linux kernel, e.g. xfs.  I don't run Steam but understand that it is well supported in Funtoo.  Funtoo of course doesn't have poudriere (which I love on FreeBSD).  In Funtoo I sometimes build packages in a chroot.  It is not automated but is done like a system installation into a separate partition (you have to allow a partition for this when you first install Funtoo).  It allows me to build a set of ports for any target that is compatible with my host cpu.

In general I find it very comfortable switching between Funtoo and FreeBSD and they both begin with the letter F!


----------



## wolfspam (Jul 28, 2015)

garry said:


> Or its variant, Funtoo Linux led by Daniel Robbins the creator of Gentoo.  I've had good experience multibooting between FreeBSD 10 stable and Funtoo current.  Funtoo has committed to OpenRC, a BSD style init system and of course uses a portage tree that is very similar to our ports tree.  I was able to install Funtoo on a zfs root filesystem and share a zfs mirrored pool for /home between Funtoo and FreeBSD.  One thing to mention about Funtoo is that is relatively easy to install -- the "stage3 tarball" includes a Debian kernel with initramfs ready to run on almost any hardware.  You can learn the intricacies of building a custom Linux kernel from source later at your convenience as you learn.  At the beginning it would be safest to avoid trying to put the root system on zfs and just run a file system that is natively supported by the linux kernel, e.g. xfs.  I don't run Steam but understand that it is well supported in Funtoo.  Funtoo of course doesn't have poudriere (which I love on FreeBSD).  In Funtoo I sometimes build packages in a chroot.  It is not automated but is done like a system installation into a separate partition (you have to allow a partition for this when you first install Funtoo).  It allows me to build a set of ports for any target that is compatible with my host cpu.
> 
> In general I find it very comfortable switching between Funtoo and FreeBSD and they both begin with the letter F!


I've read a bit about Funtoo Linux on the project's site and I have to say that is almost exactly what I was looking for in a Linux distro. I'll definitely try to install it today on a VM. If I can get Metro running on FreeBSD or bhyve on my server, I think it'll be as close to perfect as possible.

I'm currently messing with Debian and grub2. The first is nice enough, has its quirks but does the job well. The second... not a fan.


----------



## scottro (Jul 28, 2015)

Well...grub2 has gotten better than it was, and the old grub code was getting out of hand. I have a page that was mostly written for Fedora users first coming to grips with it, at http://srobb.net/grub2.html   Fedora and RH based variants use grub2-whatever for the various commands and /boot/grub2 for the directory so just substitute grub for grub2. 

Funtoo and Gentoo do a lot of compiling, and may be a bit slow to get things built on a VM.   I'm not sure about Funtoo, but Gentoo has few binary packages, almost everything has to be built.  Like FreeBSD ports, many are built quickly but others take a longgggg time.


----------



## willbprog127 (Aug 10, 2015)

ANOKNUSA said:


> One of the reasons I left Ubuntu behind was that once you install something on a Debian-based system, it's there to stay. You can easily install a package and its dependencies; you can't easily remove it.



Interesting.  This is far from my experience with Debian.  If I were to put it into numbers, in 100 times doing updates on Debian, I've had maybe two issues (which were easily remedied).  Removal is as easy as: `apt-get autoremove --purge`.  I've performed admin duties on a few Debian boxes and they've always been reliable and package management sufficient.  I can't speak to the 'slathering glue' part, however.

Anyway, thought I'd chime in with my experiences.


----------



## scottro (Aug 10, 2015)

By the way, going back to Debian, is the problem the large amount of packages that it pulls in?  If so, there are ways to make it not pull in "recommended" or "suggested" packages, either on a case by case basis or by default.  
http://linux.koolsolutions.com/2009...-install-recommends-packages-in-debian-linux/  is from 2009, but gives you the idea.


----------



## funkygoby (Aug 10, 2015)

Disclaimer:
I am a big fan of Debian pre-systemd. Since I think the integration as default init of systemd by Debian devs was a premature decision, I am moving to an undetermined *BSD.
Here is my opinion:

It would be wise to stop pairing Debian and Ubuntu as they are very different.
Ubuntu is a mess and using it to describe the Linux world or Debian-based distros is really unfair.  Linux Mint is what Ubuntu used to be years ago in term of usability and should be considered if you want to try Linux based OSes as a complete computer noob.  Fedora would be the bleeding edge distro.  Gentoo and Slackware the ports-based distros.

Nowadays, Debian installer is very easy to use and you can either end with an out-of-the-box system (Linux Mint like)or a minimalist system (FreeBSD like). You can also make it bleeding edge with "unstable" or experimental branches.

From my point of view, the package management is the best of all the Linux distros and one of the 3rd strongest aspect of Debian (1st being the social chart, 2nd the freedom. Until systemd...).

Edit: Too off-topic.
Pro-tips: stick with "stable", Google "Debian backports"


----------



## hashime (Aug 16, 2015)

If you don't like systemd, just install another init system.
If you are only using your laptop to play games and write some stuff you will likely never have to touch systemd, ever.
Easiest way is just to use Ubuntu and safe yourself some headaches. Everything works out of the box on most Laptops plus you get somewhat up to date software, compared to Debian. If you want stability and don't care for new software so much use the LTS version.
If you dislike Ubuntu go with Debian stable. dpkg/apt is probably the best package manager out there, never had any issues in the last decade.

BTW apt-get autoremove packagename removes the package and its dependencies if they are not used by other sw. Add --purge if you want config files gone aswell.

If you want the bleeding edge, use Fedora, Steam has some (resolvable) issues though.

If you want to have to work to get your system running use Gentoo or Arch.

Most Desktop users in the Linux world use Ubuntu/Mint(for good reason), followed by nothing, followed by Debian and Fedora.
Enterprises use RH or Suse.
Others are  negligible userbase wise.

LXC seems to be the way to go for jail replacements, never used it myself though.


----------



## Avernar (Sep 6, 2015)

hashime said:


> If you don't like systemd, just install another init system.


I had to upgrade my Debian server from Wheezy to Jessie as a package I needed was not in backports.  I configured apt to block anything with systemd in its package name.  Found this interesting:

Package: bsdutils
Essential: yes
Priority: required
PreDepends: libsystemd0

I held the package back from upgrade as I didn't feel like disabling the systemd block in the config.  But my point is that systemd is working its tentacles into everything.  At the rate it's going you might not be able to run another init system on most Linux distributes in the future.

p.s. That machine will be replaced by new hardware running FreeBSD as soon as possible.


----------

