TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Nix solves the package manager ejection problem

68 pointsby rravalalmost 4 years ago

10 comments

toomanyducksalmost 4 years ago
I think the issues with traditional packages all boil down to the fact that <i>packages are not files</i>. Packages are some transformed instance of some code, operating over a computer&#x27;s resources in some way. Sure, <i>eventually</i> you get down to the fundamental file abstraction, but it can take a bit: all the variations of building from a single code base. What I like about Nix is that it stops representing packages as files and has its own declarative syntax. The OP observed what really is a side effect of that change, and it&#x27;s great! Sometimes, though, I wish it went a bit farther than it does - there&#x27;s room for a few more useful transformations between a package&#x27;s code base, a package, and a file. If the nix program itself took a bit more control over the system, I think it would end up in a really cool place. The specifics of that, though, I do not know.
评论 #27374017 未加载
risalmost 4 years ago
Author doesn&#x27;t even mention the ability to git bisect your <i>entire</i> system setup and the power if gives you to track down the exact commit that broke something.
yewenjiealmost 4 years ago
So, how does Guix compare to Nix in 2021 for the average user (who does not want to spend all their time on package management)?
评论 #27348937 未加载
评论 #27351085 未加载
nfozalmost 4 years ago
Off-topic question about Nix. I understand it works by redirecting symlinks from, say, one version of a package&#x27;s files to another.<p>Isn&#x27;t there a race-condition here -- like if I invoke a program at the wrong time while it&#x27;s in the process of changing symlinks, could it pick up the wrong libraries or something? Does Linux OS allow a &quot;changeset&quot; of files to be locked and altered together in a batch, or anything like that?
评论 #27347490 未加载
评论 #27347489 未加载
评论 #27347522 未加载
评论 #27347839 未加载
评论 #27347424 未加载
评论 #27347437 未加载
ridiculous_fishalmost 4 years ago
How do NixOS users typically manage software that is not a Nix package, like a source code tarball where you would traditionally run configure &amp;&amp; make &amp;&amp; make install?
评论 #27348173 未加载
评论 #27348209 未加载
评论 #27350686 未加载
comexalmost 4 years ago
That works for the kernel. But if you have to patch, say, glibc, under Nix doesn&#x27;t that mean you can no longer use precompiled binaries, and have to recompile every single package that uses libc, from source?<p>Sure, it still works. And in the off-chance that you need to make a patch that changes the ABI, recompiling the world is exactly what you want. But usually you don&#x27;t need to change the ABI (at least not in a backwards-incompatible way), and recompiling the world can take a very long time.
评论 #27363140 未加载
评论 #27347281 未加载
评论 #27350960 未加载
totonyalmost 4 years ago
To be fair Gentoo has &#x2F;etc&#x2F;portage&#x2F;pqtches so that you can patch software from official packages instead of having to create a new one
评论 #27347597 未加载
rssoconnoralmost 4 years ago
Ah I didn&#x27;t know about boot.kernelPatches. This is so much easier than my complicated nixpkgs kernel override.
评论 #27373947 未加载
programmer_dudealmost 4 years ago
Read the NPM doc but I still don&#x27;t understand what &quot;ejection&quot; is. What are we ejecting? Can someone explain this please?
评论 #27351554 未加载
评论 #27347330 未加载
评论 #27347751 未加载
评论 #27347289 未加载
ameliusalmost 4 years ago
Unfortunately, Nix breaks my CUDA&#x2F;NVidia support.
评论 #27350699 未加载