
Learning Nix by Example: Building FFmpeg 4.0 - kiloreux
https://blog.kiloreux.me/2018/05/24/learning-nix-by-example-building-ffmpeg-4-dot-0/
======
weberc2
Minor grievance, but I've never had particularly good luck with search engines
and the term "nix". Usually I get things for `*nix` or NixOS. Even if I search
for `nix package manager`, I would get things like "Congress nixes package
..." as the top few results.

~~~
vonseel
Hm, top result for me with that search. I think search results are
personalized on my end as they are usually highly relevant. Are you incognito
or something?

------
vonseel
Way too much work for a personal machine.

I can see where it might be useful in formal environments and have used nix
before sparingly. I found quickly that you need to get in the habit of using
the same package manager, when after a few months I couldn't remember how to
use a nix package or didn't know how to update a package properly (can't
remember exactly what the problem was).

~~~
smilliken
I use nix on my personal machines, including ubuntu and macos. It's more
convenient than apt and homebrew because I only have to be familiar with one
package manager, and one package repository. I can pin to the same version of
the repository on all machines, and have identical software.

I'm no longer frustrated by not being able to get the same version of a
package between versions of ubuntu, not to mention between macos and ubuntu.

I'm no longer frustrated by a package in a repository being updated, breaking
me, and not having a way to roll back.

I'm no longer frustrated by software installs being stateful, getting into a
bad state, and having to uninstall and reinstall them. You'd be surprised,
several times I've discovered that packages auto-update themselves outside of
the package manager by overwriting themselves after downloading assets from
the internet.

~~~
dozzie
All the things you list as benefits are only better because you use single
packages source for all the machines, and one that has retention policy that
keeps many package versions, and doesn't have shitty packages with all the
content downloaded in post-install scripts. It's not because Nix is supposed
to be superior to APT or something; you'd get exactly the same if you used APT
with the same policies as Nix.

------
myWindoonn
FFmpeg is an evil hateful package for distros to maintain, but Nix makes it
look so easy.

------
dozzie
Yeah, exactly the same work as you would need with an OS-supplied package
manager to build your own package. For some reason, though, this is considered
sexy, while doing the very same thing for RPM or DEB is regarded as boring and
troublesome.

~~~
smilliken
You don't need to write your own expression for ffmpeg.

To install it with apt: `sudo apt-get install ffmpeg`

To install it with nix: `nix-env -i ffmpeg-3.4.2`

------
Annatar
This is all well and good, and certainly the more examples the better, but
this will only work so long as one is on GNU/Linux and so long as the compile
or link stage don't bust.

And then, this whole complicated wrapper shatters.

~~~
__david__
The Nix package manager also runs on macOS. Think of it as a cross platform
Homebrew. Your other objections apply to all package managers, and not just
Nix.

~~~
Annatar
I'm principally against abstracting package management across platforms,
because experience has taught me that the software management subsystem of the
target platform is the best system for that platform. I see no point in this
abstraction since I understand that the best packaging format is the native
format, and I've no problem mastering the native format.

~~~
__david__
Then you should also be happy to know that NixOS is an OS where Nix packages
_are_ the native package system.

~~~
Annatar
I couldn't care less about NixOS, as I'm a UNIX (IRIX, Solaris,
illumos/SmartOS, HP-UX) guy and always will be. I run Solaris 10 and SmartOS
on my infrastructure, before that I ran IRIX and HP-UX as well on it.

