Come posso installare il file binario in NixOS
Sto cercando di installare il binario esterno all'interno di NixOS, usando modi dichiarativi. All'interno del manuale nix-pkg, ho trovato un modo per ottenere binari esterni all'interno di NixOS
{ pkgs ? import <nixpkgs> {} }:
pkgs.stdenv.mkDerivation {
name = "goss";
src = pkgs.fetchurl {
url = "https://github.com/aelsabbahy/goss/releases/download/v0.3.13/goss-linux-amd64";
sha256 = "1q0kfdbifffszikcl0warzmqvsbx4bg19l9a3vv6yww2jvzj4dgb";
};
phases = ["installPhase"];
installPhase = ''
'';
Ma mi chiedo, cosa dovrei aggiungere inside InstallPhase, per fare in modo che questo binario venga installato all'interno del sistema?
Risposte
Questa sembra essere un'applicazione Go open source, quindi è preferibile utilizzare invece il supporto Go di Nixpkgs, che potrebbe essere più semplice rispetto all'applicazione di patch a un binario.
Detto questo, installPhaseè responsabile creare il $outpercorso; tipicamente mkdir -p $out/binseguito da cpo make installcomandi simili.
Quindi non si tratta effettivamente di installarlo nel sistema; dopotutto, le derivazioni Nix non dovrebbero avere effetti collaterali. "Installarlo" nel sistema è responsabilità delle derivazioni di NixOS, come configurato da te.
Si potrebbe dire che "installazione" è la combinazione di modifica della configurazione di NixOS + passaggio al nuovo NixOS. Tendo a pensare solo alla modifica della configurazione; la build e lo switch sembrano dettagli di implementazione, anche se nixos-rebuilddi solito è un'operazione manuale.