57 ms·
Other package management systems do one or two of the following things, but I haven't found any that can do all three at once, other than pkgsrc: 1) have good
by johnklos 5y ago
Other package management systems do one or two of the following things, but I haven't found any that can do all three at once, other than pkgsrc:
1) have good availability of pre-built binary packages for most platforms
2) facilitate building of packages directly from source, whether on non-mainstream platforms / architectures, and / or with or for the purpose of non-default package options
3) unprivileged builds / installations, packages rooted anywhere in filesystem, completely self-contained dependencies
Having to use more than one package management system because one or the other doesn't do one of these things can be a real pain, and can make maintenance rather difficult.
- fiddlerwoaroof 5y agonix does all three of these, I think.
- fiddlerwoaroof 5y agoI guess 3 is sort of anti-nix, but I think nix effectively has this with the way nix-build/nix-shell work.
- johnklos 5y agoIt looks interesting. However, documentation is sparse. It doesn't clearly say what platforms are supported other than macOS and NixOS (which implies Linux in general, but doesn't clearly state it). Also, it seems to only target x86 and amd64. No mention is made of any other architecture, nor of any BSD other that macOS. Do you have more information?
- ProfDreamer 5y agoFrom <https://nixos.org/manual/nix/stable/#ch-supported-platforms https://nixos.org/manual/nix/stable/#ch-supported-platforms>: > Nix is currently supported on the following platforms: > - Linux (i686, x86_64, aarch64). > - macOS (x86_64).
- johnklos 5y agoHow does one bootstrap nixpkgs from source? Trying to install nix gives: sh install-nix-2.3.10 install-nix-2.3.10: sorry, there is no binary distribution of Nix for your platform
- pxc 5y agoThere's partial support for platforms besides macOS and Linux, but I'm not sure the state of it or how practical it is. What platform are you hoping to build Nix on?
- washbear 5y agoIt is nowhere near as cross-platform as pkgsrc - it only really supports macOS and Linux.
- pxc 5y agoI love Nix, but this is true. The cross-platform support for pkgsrc is outstanding, and Nix's is still relatively limited. Nix has better cross-compilation support is a little bit better than its native support, in terms of cross-platform coverage. But even then, I think, pkgsrc's platform coverage is in a different league. :)
- choeger 5y agoUnprivileged works now?
- rakoo 5y agoI think Archlinux's PKGBUILDs can do that (https://wiki.archlinux.org/title/Creating_packages#Creating_a_PKGBUILD https://wiki.archlinux.org/title/Creating_packages#Creating_...): - With both the community-maintained packages and the AUR packages, you can already find almost any binary that already exists - If it doesn't exist, or if you need particular options/architectures, a PKGBUILD is basically a glorified Makefile with standard steps, so you can for example get binaries from a http source and use them directly, or pass exotic compilation flags during the build() phase - It is of course possible to put dependencies inside a given package - preparing a package is entirely done by your user, no need for root right. Inside the package you put your files in a fake root, and when the package is done you apply the package to your real fs. By default it is installed under /, so of course you need root rights, but you can install it under any root you desire. This is actually what's done when installing Arch: it basically runs pacman (the package manager) but instead of installing packages in the live environment's root, it installs packages in the mounted filesystem that will become your root after rebooting.
- Foxboron 5y agoWe are missing unprivileged builds and clean chroot builds for `makepkg`. Our interal devtools uses `systemd-nspawn` which requires root. But that should be easy to implement with the leftover code we tried to use with our reproducible builds tooling. https://github.com/archlinux/archlinux-repro/pull/70 https://github.com/archlinux/archlinux-repro/pull/70 Maybe a weekend hack to wrap `makepkg` with this.