Ich habe gerade den Nix-Paket-Manager unter OSX gestartet und versuche mein erstes Paket für die pass
-Binärdatei (https://www.passwordstore.org) zu erstellen, die im Nixpkgs-Repository nicht verfügbar ist.Nix-Paket-Laufzeitabhängigkeiten angeben
Ich versuche, eine Laufzeitabhängigkeit anzugeben (getopt
), jedoch scheint dies nicht verfügbar zu sein, wenn die Binärdatei verwendet wird.
Dies ist meine Pakete des default.nix:
{ pkgs ? import <nixpkgs> {} }:
with pkgs;
let
version = "1.7.1";
in {
pass = stdenv.mkDerivation rec {
name = "pass-${version}";
src = fetchurl {
url = "https://git.zx2c4.com/password-store/snapshot/password-store-1.7.1.tar.xz";
sha256 = "0scqkpll2q8jhzcgcsh9kqz0gwdpvynivqjmmbzax2irjfaiklpn";
};
buildInputs = [ stdenv makeWrapper];
installPhase = ''
make install PREFIX=$out/artifact
makeWrapper $out/artifact/bin/pass $out/bin/pass \
--set PATH ${stdenv.lib.makeBinPath [ getopt ]}
'';
meta = {
homepage = "https://www.passwordstore.org";
description = "The standard unix password manager";
license = stdenv.lib.licenses.gpl2Plus;
};
};
}
Ich kann dieses Paket erfolgreich bauen (nix-build --show-trace
) und installieren Sie es (nix-env -i ./result
).
die Laufzeitabhängigkeiten für mein Paket Listing getopt
aufgeführt:
nix-store -qR $(which pass)
...
/nix/store/c5swmygzc0kmvpq6cfkvwm2yz1k57kqy-getopt-1.1.4
jedoch, wenn ich komme die binäre zu verwenden (pass init my-key
) bekomme ich die folgende Fehlermeldung:
/nix/store/...-pass-1.7.1/artifact/bin/pass: line 302:
/usr/local/bin/getopt: No such file or directory
Kann jemand raten, was Ich mache falsch?
Dank
Es ist wie Passwort-Speicher scheint Hardcodes einige Wege. Möglicherweise müssen Sie diese patchen. –
Sie sollten wahrscheinlich das .../Artefakt weglassen, da andere Teile des Ökosystems davon ausgehen, dass Binärdateien in/bin, nicht /artefact/bin sind. (Wahrscheinlich nicht die Ursache für Ihr Problem) –
Fun Tatsache: Sie können URLs unquote. –