4 ms·
Arch is not bad but last I looked it didn't have what Portage calls "slotting" ie the ability to have multiple versions of the same package installed side-by-si
by plq 3y ago
Arch is not bad but last I looked it didn't have what Portage calls "slotting" ie the ability to have multiple versions of the same package installed side-by-side. It's especially helpful when eg. you are upgrading postgres and need multiple versions operational for the cross-version dump/restore.
How would that work on arch?
- BeetleB 3y agoNever used Arch, but I'd be surprised if Arch doesn't support it. How any modern distribution can survive without some semblance of slotting befuddles me.
- gerdesj 3y agoWhich distros do you use that support this form of slotting?
- BeetleB 3y agoGentoo, clearly ;-) I just assumed something so "basic" would be supported on all major distros.
- 000ooo000 3y agoI'm just an Arch user and not an expert but AFAIK it's not officially supported (by Arch's packaging system). One is encouraged to update the entire system before installing anything new. If you installed just MyCoolCalculator vLatest and it pulled in the update for ImportantWidelyUsedDependencyX, dependent apps could potentially/do break, because multiple versions of that dependency are not kept. At least AFAICT. The AUR is said to provide options for non-latest software, and I guess you have options like Flatpak too.
- bombcar 3y agoDoes Gentoo's slotting support cross-compiling? I was following a guide on it and was pleasantly surprised how advanced the cross-compiling support was in Gentoo.
- Hello71 3y agoAs a Gentoo and Arch user, SLOTs are really overstated as a feature; a near-identical result can be produced by using multiple package names, possibly combined with a "provides" type feature. As a concrete example, Gentoo has fuse:2 and fuse:3 whereas Arch has fuse2 and fuse3. Searching for sys-fs/fuse:* in (what used to be called) gentoo-x86 yields only lxd, so the SLOT is providing little value here. Categories are a similar issue in Portage: emerge graphviz asks if I want dev-python/graphviz or media-gfx/graphviz, but obviously the default should be the latter. Arch instead has python-graphviz and graphviz, which is much better design. Categories fix naming collisions in exactly the wrong way: dumping it on the user and giving no sensible default. For PostgreSQL specifically, Arch provides postgresql and postgresql-old-upgrade, so as long as you don't wait years to upgrade your PostgreSQL, you'll be fine. It's a reduction in flexibility but brings with it a significant reduction in complexity: nobody can properly maintain half a dozen Postgres versions anyways, so just keep the latest two around.
- nubinetwork 3y agoI'll agree that slots are useful... for whatever reason on arm, uboot and ATF won't compile with the latest binutils and gcc. Slotting lets me switch back to the older stuff to build new firmware, while keeping the rest of the system current.
- bombcar 3y agoIsn't nix basically an entire distro based around the idea of slotting? I've never dug into it but it seems an interesting concept, at least.
- nubinetwork 3y agoNo idea, I've never used nix because they trampled all over FHS.
- silisili 3y agoArch does this with certain packages, usually libraries, by appending the version to the package name. And of course the bigger things...like python2 vs python, and the multiple openjdk stuff.
- realharo 3y agoJust use docker?
- colonwqbang 3y agoThere is no built-in support that I know of. The official repos usually only contain the latest version of each package (Postgres being an exception). However, every time I've needed older library versions I've found that somebody already uploaded a suitable PKGBUILD to AUR (Arch's user-contributed build-from-source system). For instance, the current version of PHP in Arch is 8.2.6. If you need an older version there is php81, php80, php74, etc. available in AUR. If it didn't exist, just take the PKGBUILD for the current version, modify it to build the older version, then upload it to AUR so other people don't have to re-do the work. It works well in practice.
- purerandomness 3y agoArch has a package [0] called postgresql-old-upgrade that tracks the second-last postgres version specifically for upgrading. It's described in their Wiki [1] If you need older versions, they're available via AUR, called postgres-*-upgrade [2] [0] https://archlinux.org/packages/?name=postgresql-old-upgrade https://archlinux.org/packages/?name=postgresql-old-upgrade [1] https://wiki.archlinux.org/title/PostgreSQL#pg_upgrade https://wiki.archlinux.org/title/PostgreSQL#pg_upgrade [2] https://aur.archlinux.org/packages/postgresql-12-upgrade https://aur.archlinux.org/packages/postgresql-12-upgrade