LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - Distributions (https://www.linuxquestions.org/questions/linux-distributions-5/)
-   -   Good distros for developer, (https://www.linuxquestions.org/questions/linux-distributions-5/good-distros-for-developer-4175594296/)

gpropf 11-26-2016 10:37 PM

Good distros for developer,
 
This is my first post. I'm a longtime Ubuntu user. I'm also a developer. I appreciate the quality of Ubuntu and the wide hardware support that mostly just works nowadays. I've used Linux since Slackware 1.0 back in the early 90s and I remember the hell you used to go through to get a stupid sound card working.

Lately, I've been learning more about virtualization and cloud computing, and also Snapd, which seems like an interesting new way to organize a system and could make dependency and upgrade hell a thing of the past. That brings me to...

Upgrade Hell.


Though I haven't had this happen in the last few Ubuntu upgrades, I've occasionally gone to a new release and had things break. I also have this feeling that the concept of release upgrades that is used by mainstream distros (and really even Windows and OSX) is flawed. Basically, it leaves the user with no "plan B". If the upgrade breaks things you just need to fix them or figure out what you need to downgrade to get back to a working state. With databases you have the idea of doing a rollback, with Git, you can go back to an earlier commit and get a working state. With system upgrades it seems to always be a matter of wait and pray. Databases, software versions, operating sytems, all are just versioned information and it seems like we've solved that problem in many areas so why do we still do things this way with upgrading our OS?

Now I've actually kind of lost touch with the distro world for years. I used to use Gentoo but that was 10 years ago and I'm not sure what it's become. I know Ubuntu really well, and I put Mint on my macbook just for the hell of it and because it's based on Ubuntu. So the question is basically - does anyone know of... I don't know, some kind of distro that's not a distro but a hypervisor where you can have, say distro A running distro B in a virtual machine and then the next time you boot, you decide to start distro B "for real" and run A virtualized. I know the IBM 390 does something like this with their mainframe Linux. In fact my own website is a VM on one of those. I realize this is kind of vague but I thought I would throw it out there.

I suppose this would require, among other things, the ability to virtualize the actual hardware. I'm playing with Virtualbox right now and while it's great, I don't think it does that. [Also, that's an Oracle product and I think it's closed source even though it's a free download.] Edit: I realize this was a mistake, Virtualbox is open source after all.

Jjanel 11-26-2016 11:02 PM

Which 'distro' has the least upgrade problems?
 
Welcome! DistroWatch.com? upd/upg glitch=mess=hell empathy! snapd? Wow!
Cool concept: kudos to LQ'er who posts 'right' web-search keywords for:
reverse vm host guest ;) p.s. top7

firejuggler86 11-26-2016 11:15 PM

Re: Good distros for developer
 
That would be cool if what you are inquiring about were possible, but sadly I don't really think it is... maybe theoretically it could work, if you did something to this effect: you boot up system A, you want to run system B in a VM. Use a program like dd to make a disk image of the partition that holds system B, then you run the system B in a VM using the disk image. After you shut down the VM, finished saving whatever changes/work you did back to the disk image, use dd again to write the image back to the disk. While keeping in mind the whole time that you might break something :P.

Those of us who play around with android devices do that kinda stuff all the time, though (use dd to copy disk partitions to files, mount those images on our PCs, make changes, re-write to disk image file, rewrite to mobile device disk)-- so, maybe it could work :)

As far as general distributions that are good for development...I've heard that Slackware has the very best shared libraries for building from source, but can't confirm, haven't tried slackware yet. I'm currently using Fedora, and on that distro you STILL have to go through hell to get a sound card to work or a song or a video to play (I did, anyway). Debian and related systems seem to be better when it comes to things working straight out of the box.. *but*, on Fedora I do not experience the same kind of "upgrade hell" that I did with Debian based distros. While running the development branch of Debian, any given update could render half my system unusable, or unbootable. Never happened with Fedora, an have also done a good amount of unsupported, unsanctioned packing building/installations, system reconfiguring/hacking, etc., and still runs smoothly. But, like I said, *huge* pain in the ass for the first couple days after the initial installation.

gpropf 11-27-2016 06:01 PM

Quote:

Originally Posted by firejuggler86 (Post 5634943)
That would be cool if what you are inquiring about were possible, but sadly I don't really think it is... maybe theoretically it could work, if you did something to this effect: you boot up system A, you want to run system B in a VM. Use a program like dd to make a disk image of the partition that holds system B, then you run the system B in a VM using the disk image. After you shut down the VM, finished saving whatever changes/work you did back to the disk image, use dd again to write the image back to the disk. While keeping in mind the whole time that you might break something :P.

Well, I was more thinking of just running the other distro using the real disk, not an image. Only the CPU and peripherals are virtualized. The idea is that there' not supposed to be much of a distinction between a virtual and a real machine. Each distro would still need its own partition just like now but most people find that, at least with Linux, even a really large distro with tons of extra software installed is maybe 50-100GB. A basic Ubuntu 16.10 distro fits in 10GB comfortably so most people could have a dozen distros and different versions of the same ones. The bulk of my 1TB disk is my /home partition and that would not need to change. I admit creating new partitions (and thus resizing others) seems a bit of a risk and hassle if you want to try a new distro but LVM seems to solve that and even pretty much solves my upgrade problems since you can make an image of a running partition and then go back to it if the new release of your OS destroys everything. I'm still interested to see how tightly virtualization can and will be integrated into the kernel in the future.

For right now I actually plan on doing what you're saying. Copy the / partition to a disk image and then load that image into a VM and try to upgrade to see if everything is OK. The problem is that the virtual hardware isn't the same as the real hardware. Also some things don't even work on the VMs I've created or are very different. I'm not sure if this is inevitable though. I need to learn more about what Virtualbox can and can't do and also what some of the other solutions are capable of. So my actual fallback plan is that if the new release can't be quickly made as functional as the old, I can go back and rewrite the old system partition from the image using Hiren's boot CD. It would be cool to be able to just switch over to a virtualized instance of the new release to see if I can fix it while still using the existing one though.

Quote:

Originally Posted by firejuggler86 (Post 5634943)
As far as general distributions that are good for development...I've heard that Slackware has the very best shared libraries for building from source, but can't confirm, haven't tried slackware yet.

I never did get around to talking about development issues did I? So yes, the idea is that I'd also like a platform where building from source is easy(er). I haven't used Slackware since like '93 though so I imagine it's quite different now. Back then there was no hint of a dependency tracking system. You just downloaded things, hoped they built, and then tried to figure out what was missing from the compiler and linker errors.

Quote:

Originally Posted by firejuggler86 (Post 5634943)
I'm currently using Fedora, and on that distro you STILL have to go through hell to get a sound card to work or a song or a video to play (I did, anyway). Debian and related systems seem to be better when it comes to things working straight out of the box.. *but*, on Fedora I do not experience the same kind of "upgrade hell" that I did with Debian based distros.

I think both of those are probably due to the different target markets. Fedora has become sort of a server OS supplier and the Debians are more desktop oriented. No one really cares if the sound doesn't work on a machine with no soundcard but it's really important that the whole thing doesn't fry every time you upgrade. Desktop machines are regarded as less critical so if an upgrade trashes your Gnome desktop it's regarded as no big deal.


All times are GMT -5. The time now is 04:49 PM.