Saya menggunakan nix
dalam "mode single-user" dalam sistem di mana saya bukan root (lihat di bawah untuk deskripsi pengaturan nix saya).
Saya ingin cepat menjalankan salah satu binari saya yang secara dinamis terkait dengan perpustakaan yang tidak ada dalam sistem.
Jadi, saya telah menginstal perpustakaan dengan nix
:
$ nix-env -qa 'gmp'
gmp-4.3.2
gmp-5.1.3
$ nix-env -i gmp-5.1.3
Namun perpustakaan masih belum ditemukan oleh tautan:
$ ldd -r ../valencies
../valencies: /lib64/libc.so.6: version `GLIBC_2.15' not found (required by ../valencies)
../valencies: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by ../valencies)
linux-vdso.so.1 => (0x00007fffbbf28000)
/usr/local/lib/libsnoopy.so (0x00007f4dcfbdc000)
libgmp.so.10 => not found
libffi.so.5 => /usr/lib64/libffi.so.5 (0x00007f4dcf9cc000)
libm.so.6 => /lib64/libm.so.6 (0x00007f4dcf748000)
librt.so.1 => /lib64/librt.so.1 (0x00007f4dcf540000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f4dcf33c000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f4dcf11f000)
libc.so.6 => /lib64/libc.so.6 (0x00007f4dced8b000)
/lib64/ld-linux-x86-64.so.2 (0x00007f4dcfde7000)
undefined symbol: __gmpz_gcd (../valencies)
undefined symbol: __gmpn_cmp (../valencies)
undefined symbol: __gmpz_mul (../valencies)
undefined symbol: __gmpz_fdiv_r (../valencies)
undefined symbol: __gmpz_fdiv_q_2exp (../valencies)
undefined symbol: __gmpz_com (../valencies)
undefined symbol: __gmpn_gcd_1 (../valencies)
undefined symbol: __gmpz_sub (../valencies)
symbol memcpy, version GLIBC_2.14 not defined in file libc.so.6 with link time reference (../valencies)
undefined symbol: __gmpz_fdiv_q (../valencies)
undefined symbol: __gmpz_fdiv_qr (../valencies)
undefined symbol: __gmpz_add (../valencies)
undefined symbol: __gmpz_init (../valencies)
undefined symbol: __gmpz_ior (../valencies)
undefined symbol: __gmpz_mul_2exp (../valencies)
undefined symbol: __gmpz_xor (../valencies)
undefined symbol: __gmpz_and (../valencies)
symbol __fdelt_chk, version GLIBC_2.15 not defined in file libc.so.6 with link time reference (../valencies)
undefined symbol: __gmpz_tdiv_qr (../valencies)
undefined symbol: __gmp_set_memory_functions (../valencies)
undefined symbol: __gmpz_tdiv_q (../valencies)
undefined symbol: __gmpz_divexact (../valencies)
undefined symbol: __gmpz_tdiv_r (../valencies)
$
Lihat, ini ada di sistem file:
$ find / -name 'libgmp.so.10' 2>/dev/null
/nix/store/mnmzq0qbrvw6dv1k2vj3cwz9ffdh05zr-user-environment/lib/libgmp.so.10
/nix/store/fnww2w81hv5v3dl9gsb7p4llb7z7krzd-gmp-5.1.3/lib/libgmp.so.10
$
Apa yang harus saya lakukan agar perpustakaan yang diinstal nix
"terlihat"?
Mungkin, script user-instalasi standar nix
memodifikasi .bash_profile
untuk menambahkan nya bin/
ke dalam PATH
, tapi tidak melakukan sesuatu yang analog untuk perpustakaan.
Pengaturan nix saya:
Satu-satunya hal yang saya minta dilakukan root untuk saya adalah mkdir -m 0755 /nix && chown ivan /nix
:, jika tidak, saya telah mengikuti prosedur instalasi nix sederhana standar. Jadi sekarang saya bisa menggunakan program khusus dari paket nix. Saya tidak dapat melakukan ini dengan baik tanpa bantuan dari root sama sekali, yaitu, tanpa /nix/
, karena /nix/
tidak tersedia untuk saya; Saya tentu saja dapat menggunakan direktori lain, tetapi kemudian paket-paket biner pra-dibangun tidak akan valid dan semua paket harus dibangun kembali, menurut dokumentasi nix. Dalam kasus saya, lebih mudah untuk meminta /nix/
saya.
Hal lain yang saya lakukan adalah menambahkan ~/.bash_profile
:
export NIX_CONF_DIR=/nix/etc/nix
sehingga saya bisa mengedit nix.conf
. (Seharusnya di root-dikendalikan /etc/
sebaliknya. Saya melakukannya karena saya ingin build-max-jobs
dan build-cores
pengaturan di dalamnya.)
nix
adalah manajer paket modern , dan nixOS adalah distro, dan Hydra adalah sistem untuk terus-menerus membangun kembali paket nix, dan nixOps adalah alat untuk mengelola infrastruktur (jaringan beberapa host) secara deklaratif, dan menonaktifkan untuk mengelola serangkaian layanan secara deklaratif (di atas infrastruktur). guix
adalah keturunan GNU dari nix
, dengan distro (dipromosikan sebagai 100% gratis IIC
guix
.
nix-env
, belum laginix.conf
. OS apa ini? Juga, apa yang Andanix
maksud dengan referensi berulang ? Saya hanya pernah mendengarnya digunakan sebagai singkatanUnix
, tetapi sepertinya Anda menggunakannya dalam konteks yang lebih spesifik.