32-bit libraries are in
pkgs.pkgsi686Linux.*
if you need them.
Put the libraries into extraLibraries
; it'll add them for both µarches. No need to explicitly use pkgsi686Linux
yourself.
32-bit libraries are in
pkgs.pkgsi686Linux.*
if you need them.
Put the libraries into extraLibraries
; it'll add them for both µarches. No need to explicitly use pkgsi686Linux
yourself.
Nvidia drivers works just fine. Well, as "fine" as they work on any other distro.
Only thing you need to do is add "nvidia"
to services.xserver.videoDrivers
. You might also need to accept unfree packages but you'll need to do that anyways for Steam.
Great, now 4chan can turn search results racist too.
Great, now 4chan can turn search results racist too.
Certainly not. Nothing should write to /usr/bin except for the package manager in FHS distros and some distros binary directories aren't writable at all.
Naja, das wär ja nur im extremfall, also stromausfall. Da braucht man keine sensoren, das checken die Zubs schnell manuell ab.
If you're on AMD, all you have to do is programs.steam.enable = true;
. Not dozens of lines copied from some wiki. I should know because that's all I do in my config to enable Steam on my AMD system: https://github.com/Atemu/nixos-config/blob/450bf3710c77818436f1459e3ea36bf087b6e56b/configs/HEPHAISTOS/default.nix#L16 (L17-L29 are optional customisation).
What may or may not work is doing everything programs.steam.enable
does internally yourself like some outdated wiki entry might suggest you to do. Given you claim to have been manually configuring opengl stuff for instance, there's a good chance that's what you did. You do not have to touch any opengl settings or put steam
into environment.systemPackages
.
The entire point of NixOS modules is that we have the capability to abstract stuff like this so that you do not have to copy pasta dozens of lines from a possibly outdated unofficial wiki but can simply set one option.
FairPhone 4 because it is the only phone with removable battery and LineageOS support.
Do read past that and you might understand why NixOS options are a type of documentation. They're not "code comments".
my point was that the Nix package manager has useful enough features and functonality that it was ported to OpenBSD to use for managing OpenBSD software and packages.
My point was that support for BSDs in Nixpkgs (which is the de-facto "standard library") is still in its infancy. Nix without Nixpkgs is like C without a libc.
That’s what porting does, it’s making a program fully functional on a different operating system or different hardware architecture. Compatibility serves a different purpose from porting.
Terminology on this is a bit loosely defined. What I meant was that the packages in Nixpkgs largely haven't been "ported" to BSDs yet.
Many of the packages might already be "ported" and would work if other packages lower down in the tree worked. In Nixpkgs we don't really differentiate between fixing packages so that the package works as upstream intends or making something work that was never intended to work.
this distribution allows you to have multiple versions of the same library to work with different programs at the same time, correct?
That is correct. You can even have programs from entirely different releases running on the same system without conflicting with another; one with i.e. glibc 3.34 and one with 3.37 for example. Or even wilder setups with some packages using musl, other glibc and others yet being built statically.
Does this mean that each program downloads all its dependencies independently?
Each program references all of its (exact) dependencies. Nix then looks at the program and its references and builds a tree of dependencies.
Then it tries to "realise" these dependencies (make them, well, real), possibly by substituting (downloading) them from a binary cache or automatically building them on your machine if they're not available in any configured cache.
However, if some package with the same exact version already exists in the Nix store, no action will be taken. Why should it, it's already there.
For example, if you were in an empty world and built an environment with hello
and coreutils
in it, they'd both depend on glibc
. If both came from the same revision of Nixpkgs, chances are that they depend on the exact same version of glibc.
What Nix would do here is fetch 1x glibc, 1x hello and 1x coreutils.
Note however that you don't need to manage any of this. You just say "I want hello
and coreutils
". Nix takes care of getting the correct dependencies in place but they won't be in your immediate environment. When you then say that your environment should no longer contain hello
, it does that. At this point hello
will still exist in the Nix store but it won't be in your PATH any longer, so it's not polluting any shared state; it just sits there on disk and the worst it could do is waste disk space. It's not "installed" in the same sense as what it'd mean to have an unused dependencies installed on an FHS system.
In order to reclaim disk space from unused Nix store paths, you can simply run a garbage collection. You don't need to care about that one specific hello store path here though, you just say "remove all unused store paths for me, thanks" and Nix removes it along with all other unnecessary paths. In NixOS, you can even have that ran periodically for you.
(Note that this is distinct from autoremove
and the like; those "clean up" the shared state and free up disk space. In NixOS, these are separate processes and dependencies which you don't explicitly declare are never in the shared state to begin with.)
You see, while this could be seen as "bloat", it has none of the negative consequences bloat has on other systems such as more packages for you to manually manage, more binaries in your PATH or weird interactions of other programs. It's just easily managed disk space and disk space is honestly quite cheap.
Agreed. The point is however that, with NixOS options, you do not necessarily need such documentation for unknown-knowns.
With many things however, we can simply delegate to the upstream documentation for some thing. See i.e. the paperless extra config example. We don't need to tell users how to configure their paperless, we just tell them that any upstream option goes into this settings option as an attrset.
NixOS options do to a degree fill out unknown-unknowns though, see I.e. the steam-hardware example. I've stumbled upon many handy options by searching for related options.
While the initial "hacking the crap together" phase is indeed harder in most cases, maintaining these hacks is much simpler thanks to overrides/overlays and the additive nature of NixOS options.
That quality can arguably make it "excellent" too.