Rumah > Tutorial sistem > LINUX > Bermula dengan Pengurus Pakej Nix: Panduan Pemula 2024

Bermula dengan Pengurus Pakej Nix: Panduan Pemula 2024

Joseph Gordon-Levitt
Lepaskan: 2025-03-19 09:06:21
asal
324 orang telah melayarinya

Tutorial terperinci ini menerangkan cara melakukan operasi pengurusan pakej seperti memasang, mengeluarkan, mengemas kini, dan menaik taraf pakej menggunakan Nix Package Manager di Linux.

Kami akan memulakan panduan ini dengan pengenalan ringkas diikuti oleh arahan NIX yang biasa digunakan dengan contoh.

Jadual Kandungan

Pengenalan ringkas kepada Pengurus Pakej Nix

Nix adalah pengurus pakej yang membuat pemasangan dan menguruskan perisian mudah dan boleh dipercayai pada sistem Linux dan Unix. Ia menyelesaikan masalah biasa seperti konflik perisian dan memastikan setiap pemasangan perisian dapat diramal dan selamat.

Dengan Nix, anda boleh mempunyai versi program yang berbeza di komputer anda tanpa mereka mengganggu satu sama lain. Ini bermakna anda boleh mengemas kini, menambah, atau mengeluarkan perisian tanpa bimbang tentang memecahkan apa -apa.

Nix bijak tentang bagaimana ia mengendalikan perisian. Ia menjejaki semua bit dan kepingan yang setiap program perlu dijalankan. Dengan cara ini, apabila anda memasang program, ia tidak merosakkan program lain. Sekiranya ada masalah dengan kemas kini perisian baru, Nix membolehkan anda kembali ke cara -cara sebelum ini, dengan mudah.

Pengurus Pakej Nix bukan hanya untuk pengguna individu tetapi juga hebat untuk pemaju dan orang yang menguruskan pelayan. Ia membantu menjaga semua orang di halaman yang sama dengan memastikan mereka semua menggunakan persediaan perisian yang sama. Ini mengurangkan kejutan apabila menggerakkan perisian dari satu komputer ke komputer yang lain.

Nix mempunyai koleksi perisian yang besar untuk dipilih, dan semuanya dikekalkan oleh komuniti pengguna. Ia adalah pilihan yang kukuh untuk menguruskan perisian sama ada anda bekerja bersendirian atau dengan pasukan.

Untuk maklumat lanjut mengenai Nix, rujuk panduan sebelumnya:

  • NIX - Pengurus Pakej yang kuat untuk Linux dan Unix

Bermula dengan Pengurus Pakej Nix

Pastikan anda telah memasang Pengurus Pakej Nix. Jika anda belum memasang NIX, sila rujuk panduan pemasangan NIX yang diberikan di bawah.

  • Cara Memasang Pengurus Pakej Nix di Linux

Sebaik sahaja Pengurus Pakej Nix disediakan, anda boleh mula menggunakannya untuk memasang dan menguruskan aplikasi anda dengan segera.

Nix mempunyai banyak arahan. Perintah utama untuk pengurusan pakej ialah NIX-ENV . Perintah ini digunakan untuk menyenaraikan, memasang, mengemas kini, melancarkan, mengeluarkan, pakej pertanyaan. Marilah kita melihat beberapa arahan dengan contoh.

Petua : Sekiranya anda tidak mengetahui, anda tidak perlu menjadi pengguna akar atau sudo untuk melakukan semua operasi pengurusan pakej menggunakan NIX.

Bekerja dengan Saluran Nix

Saluran NIX memainkan peranan penting dalam ekosistem Pengurus Pakej NIX.

Repositori NixPKGS mengandungi semua pakej, modul NixOS, dan ekspresi. Walaupun ada kemungkinan untuk memasang pakej secara langsung dari cawangan induk NIXPKGS, pendekatan ini boleh berisiko kerana komitmen digabungkan menjadi tuan sebelum ujian menyeluruh.

Saluran mewakili git "disahkan" terkini dalam NixPKGS. Setiap saluran mempunyai definisi sendiri tentang apa yang "disahkan" bermakna.

Apabila komit git baru disahkan, saluran yang sepadan akan dikemas kini. Pengguna saluran mendapat manfaat daripada kedua -dua pakej yang disahkan dan pakej binari dari cache binari.

Untuk meletakkan ini dengan kata -kata mudah, saluran NIX hanya URL yang menunjuk ke tempat yang mengandungi satu set ekspresi NIX dan nyata.

Jenis saluran

Terdapat beberapa saluran dan mereka boleh dikategorikan secara meluas ke dalam saluran yang stabil dan tidak stabil, serta saluran besar dan kecil:

Stabil/tidak stabil :

  • Saluran yang stabil : Ini menyediakan kemas kini konservatif untuk pembetulan pepijat dan kelemahan keselamatan. Kemas kini utama tidak diperkenalkan selepas pelepasan awal. Saluran stabil baru dikeluarkan setiap enam bulan.
  • Saluran yang tidak stabil : sepadan dengan cawangan pembangunan utama (tidak stabil) NIXPKGS, ini menyampaikan kemas kini yang diuji terkini secara bergulir.

Besar/kecil :

  • Saluran Besar : Ini menyediakan bangunan binari untuk keluasan penuh nixpkgs.
  • Saluran kecil : Sama seperti saluran besar tetapi dengan binari yang lebih sedikit. Mereka mengemas kini lebih cepat tetapi memerlukan lebih banyak bangunan dari sumber.

Saluran lalai

Secara lalai, saluran NixPKGS ditambah secara automatik ke senarai saluran "Langganan" anda apabila anda memasang NIX.

Lihat saluran yang dilanggan

Senarai saluran yang dilanggan disimpan dalam fail ~/.nix-channels. Anda boleh mengesahkannya dengan melihat kandungannya.

 $ CAT ~/.nix-channels
https://nixos.org/channels/nixpkgs-unstable <strong>nixpkgs</strong>
Salin selepas log masuk

Seperti yang anda lihat, Nix telah menambah saluran NixPKGS secara lalai.

Tambah saluran

Anda juga boleh menambah saluran secara manual ke sistem anda seperti yang ditunjukkan di bawah.

 $ nix-channel --add https://nixos.org/channels/nixos-23.11
Salin selepas log masuk

Saluran rasmi disenaraikan di https://nixos.org/channels .

Kemas kini saluran

Selepas melanggan (menambah) saluran, anda perlu mengemas kini senarai saluran untuk mendapatkan ekspresi NIX terkini menggunakan arahan:

 $ nix-channel --update
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Perintah ini akan mengemas kini semua saluran. Jika anda ingin mengemas kini saluran tertentu, katakan Nixos-23.11, perintah itu akan menjadi:

 $ nix-channel --update nixos-23.11
Salin selepas log masuk

Senarai saluran

Untuk mencetak nama dan URL semua saluran yang dilanggan pada output standard, jalankan:

 $ nix-channel-list
Salin selepas log masuk

Output Contoh :

 <strong>nixpkgs</strong> https://nixos.org/channels/nixpkgs-unstable
<strong>Nixos</strong> https://nixos.org/channels/nixos-23.11
Salin selepas log masuk

Seperti yang anda perhatikan, sekarang saya telah menambah dua saluran iaitu NixPKGS-Tidak Stabil dan NixOS-23.11 . Sila ambil perhatian bahawa NixPKGS dan NixOS hanya alias kepada NixPKGS-Unstable dan NixOS-23.11.

Keluarkan saluran

Untuk mengalih keluar saluran yang dilanggan, contohnya NixOS-23.11 , hanya jalankan:

 $ nix-channel-Remove Nixos-23.11
Salin selepas log masuk

Selepas mengeluarkan saluran, kemas kini senarai saluran menggunakan arahan:

 $ nix-channel --update
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Pakej Cari/Pertanyaan

Perintah NIX-ENV-Queryed memberikan maklumat mengenai pakej dalam Pengurus Pakej Nix.

Tujuan :

Operasi Nix-ENV-Query memaparkan maklumat mengenai sama ada:

  • Laluan kedai yang dipasang dalam generasi semasa profil aktif (-dipasang).
  • Derivasi yang tersedia untuk pemasangan dalam ekspresi Nix aktif (-boleh didapati).

Ia hanya mencetak maklumat mengenai derivasi yang nama simbolinya sepadan dengan salah satu nama yang ditentukan.

Bendera dan pilihan :

Bendera biasa dan pilihan yang boleh digunakan Nix-ENV-perintah Ququery adalah:

  • -dipasang : Memaparkan maklumat mengenai laluan kedai yang dipasang (tingkah laku lalai).
  • --Apable atau -A: Menunjukkan maklumat mengenai derivasi yang tersedia untuk pemasangan.
  • --Status atau -S: Mencetak status derivasi (dipasang, hadir pada sistem, pengganti yang tersedia).
  • --Ttr-Path atau -P: Mencetak laluan atribut derivasi (digunakan untuk pemilihan yang tidak jelas).
  • --No-nama : Menindas percetakan nama derivasi.
  • -Kompreho-versi atau -c: Membandingkan versi yang dipasang ke versi yang tersedia.
  • --xml : Cetakan hasil dalam format XML untuk pemprosesan automatik.
  • --Json : Cetakan menghasilkan format JSON untuk pemprosesan automatik.
  • -Prebuilt sahaja atau -B: hanya menunjukkan derivasi dengan pengganti berdaftar (binari pra-dibina).
  • -Sistem : Beroperasi pada profil seluruh sistem.
  • --Drv-Path , --out-Path , --deskripsi , -meta : bendera maklumat tambahan.

Untuk melihat senarai pakej yang ada di saluran yang dilanggan, jalankan:

 $ nix-env-Quer-tersedia
Salin selepas log masuk

Atau tidak lama lagi:

 $ nix -env -qa
Salin selepas log masuk

Di sini, pilihan -Q menunjukkan operasi pertanyaan dan -a menunjukkan semua pakej yang tersedia (iaitu, dipasang).

Output Contoh :

 0ad-0.0.26
0ad-Data-0.0.26
0verkill-Unstable-2011-01-13
0x-Unstable-2022-07-11
0xproto-1.603
0xtools-1.2.4
1oom-1.0
1Password-8.10.27
1Password-8.10.28-21.beta
1Password-cli-2.26.1
2048-CLI-UNSTABLE-2019-12-10
2048-CLI-UNSTABLE-2019-12-10
2048-in-terminal-unstable-2022-06-13
20kly-1.5.0
2bwm-0.3
2FA-1.2.0
3270font-3.0.1
389-DS-BASE-2.4.3
3dpong-0.5
3LLO-1.3.1
3MUX-1.1.0
3Proxy-0.9.4
4-3.64.1
[...]
Salin selepas log masuk

Bermula dengan Pengurus Pakej Nix: Panduan Pemula 2024

Sekiranya anda ingin menanyakan pakej tertentu, arahannya akan menjadi:

 $ nix -env -qa firefox
Salin selepas log masuk

Output:

 Firefox-115.9.1esr
Firefox-124.0.1
Firefox-124.0.1
Firefox-124.0.1
Firefox-125.0b3
Firefox-125.0b3
Salin selepas log masuk

Anda juga boleh menggunakan arahan berikut untuk mencari pakej tertentu.

 $ nix -env -qap | Grep Python3-3
Salin selepas log masuk

Output Contoh:

 [...]
nixpkgs.python312 python3-3.12.2
nixpkgs.python313 python3-3.13.0a5
nixpkgs.python313full python3-3.13.0a5
nixpkgs.python39 python3-3.9.19
nixpkgs.python39full ​​python3-3.9.19
Salin selepas log masuk

Pakej pertanyaan menggunakan ungkapan biasa

Anda boleh memohon/menyenaraikan pakej menggunakan ungkapan biasa. Berikut adalah beberapa contoh ungkapan biasa.

Chromium

Memadankan nama pakej Chromium dan mana -mana versi.

Chromium-123.0.6312.86

Memadankan nama pakej Chromium dan versi 123.0.6312.86.

Contoh:

 $ nix-env -qa chromium-123.0.6312.86
Salin selepas log masuk

gtk \\

Memadankan nama pakej GTK . Watak itu mesti melarikan diri dengan menggunakan backslash untuk menghalangnya daripada ditafsirkan sebagai kuantum, dan backslash mesti melarikan diri sebaliknya dengan backslash yang lain untuk memastikan bahawa shell melewatinya.

. \*

Sepadan dengan nama pakej. Ini adalah lalai untuk kebanyakan arahan.

'.*zip.*'

Memadankan sebarang nama pakej yang mengandungi zip rentetan. Perhatikan titik -titik: '*zip*' tidak berfungsi, kerana dalam ungkapan biasa, watak*ditafsirkan sebagai kuantum.

'.*(Firefox | Chromium).*'

Memadankan sebarang nama pakej yang mengandungi Strings Firefox atau Chromium .

Senaraikan pakej yang dipasang

Untuk menyenaraikan semua pakej yang dipasang, hanya jalankan:

 $ nix -env -q
Salin selepas log masuk

Output Contoh :

 NIX-2.21.1
Salin selepas log masuk

Oleh kerana ia adalah sistem yang baru, sistem kami hanya memaparkan pengurus pakej NIX.

Ia juga mungkin untuk melihat status pakej yang ada. Lihat contoh di bawah.

 $ nix -env -qas gcc
Salin selepas log masuk

Output Contoh :

 IPS GCC-13.2.0
Salin selepas log masuk

Di sini, "I" menunjukkan bahawa pakej yang ditentukan dipasang, "P" menunjukkan pakej yang ada pada sistem kami, dan "S" menunjukkan bahawa terdapat pengganti yang dipanggil pakej.

Jika pakej GCC tidak dipasang, anda akan melihat:

 -PS GCC-13.2.0
Salin selepas log masuk

Memasang pakej

Di Nixos, semua pakej akan disimpan di Nix Store , biasanya direktori /nix /store .

Untuk memasang pakej, cuma jalankan:

 $ nix-env --stall GCC
Salin selepas log masuk

Atau (tidak lama lagi),

 $ nix -env -i gcc
Salin selepas log masuk

Perintah di atas akan memasang pakej GCC terkini yang tersedia.

Output contoh arahan di atas adalah:

 Memasang 'GCC-13.2.0'
3 laluan ini akan diambil (1.58 MIB muat turun, 7.24 MIB dibongkar):
  /nix/store/3cfxjb2nkjkfiv0dq54kkkfy5ysjnfs3k-gcc-13.2.0-checksum
  /nix/store/4i3ml2pzzgjwas18w31zzhn9f41qyshy-gcc-13.2.0-info
  /nix/store/smq6f1jz9a5l6l5yjis4s85mq01xww33-gcc-13.2.0-man
menyalin laluan '/nix/store/4i3ml2pzzgjwas18w31zzhn9f41qyshy-gcc-13.2.0-info' dari 'https: //cache.nixos.org' ...
menyalin laluan '/nix/store/smq6f1jz9a5l6l5yjis4s85mq01xww33-gcc-13.2.0-man' dari 'https: //cache.nixos.org' ...
menyalin laluan '/nix/store/3cfxjb2nkjkfiv0dq54kkkfy5ysjnfs3k-gcc-13.2.0-checksum' dari 'https: //cache.nixos.org' ...
bangunan '/nix/store/xx629d9kbbdnnsyf4ihzhlmalfz6nm3g-user-environment.drv' ...
Salin selepas log masuk

Marilah kita periksa sama ada GCC dipasang atau tidak menggunakan arahan:

 $ gcc -v
Salin selepas log masuk

Output Contoh:

 Menggunakan spesifikasi terbina dalam.
Collect_gcc = gcc
Collect_lto_wrapper =<strong><mark> /nix/store/rqga421d43q40blrrrgmiw820p0p01a4nba-gcc-13.2.0</mark> /libexec/gcc/x86_64-unknown-linux-gnu/13.2.0/lto-wrapper
Sasaran: x86_64-snosknown-linux-gnu
Dikonfigurasikan dengan: .. --with-gmp-lib=/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-gmp-6.3.0/lib --with-mpfr-include=/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-mpfr-4.2.1-dev/include -With-mpfr-lib =/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeund-mpfr-4.2.1/lib --with-mpc =/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeund-libmpc-1.3.1 --with-native-system-header-dir=/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-glibc-2.38-44-dev/include --with-build-sysroot=/ --with-gxx-include-dir=/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-gcc-13.2.0/include/c /13.2.0/ --program-prefix= --enable-lto --disable-libstdcxx-pch --without-included-gettext --with-system-zlib --enable-static --enable-languages=c,c --disable-multilib --enable-plugin --disable-libcc1 -with-isl =/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeund-isl-0.20 --disable-bootstrap--build = x86_64-snosknown-linux-gnu-host = x86_64-known-linux-gnu-
Model Thread: POSIX
Algoritma Mampatan LTO yang disokong: ZLIB
<strong>GCC Versi 13.2.0 (GCC)</strong></strong>
Salin selepas log masuk

Seperti yang anda perhatikan dalam output di atas, GCC telah berada dalam sub-direktori bernama RQGA421D43Q40BLRRGMIW820P01A4NBA-GCC-13.2.0 di bawah /nix /store .

Di sini, kami memanggil direktori RQGA421D43Q40BLRRGMIW82020P01A4NBA-GCC-13.2.0 sebagai pengenal unik. Subdirektori ini memegang semua kebergantungan yang diperlukan dan perpustakaan pakej GCC.

Jika anda memasang versi GCC yang lain, NIX akan membuat sub-direktori baru, contohnya /nix/store/rfhfyuq.......43d8jfuh-gcc-xxx , dan pasang GCC dalam direktori itu. Dengan cara ini kedua -dua versi GCC ini tidak akan bertentangan antara satu sama lain.

Pakej ujian tanpa memasang menggunakan nix

Satu lagi ciri terkenal Nix Package Manager ialah anda boleh menguji pakej tanpa memasangnya pada sistem anda. Rujuk panduan berikut untuk mengetahui cara menguji pakej tanpa memasangnya.

  • Cara Menguji Pakej Tanpa Memasangnya di Linux

Buat persekitaran pembangunan dengan shell nix

Nix-Shell membolehkan anda membuat persekitaran pembangunan tersuai untuk setiap projek, lengkap dengan semua alat dan perpustakaan yang diperlukan. Ia adalah sebahagian daripada Pengurus Pakej Nix.

Untuk mengetahui cara membuat persekitaran pembangunan yang boleh dihasilkan dan terpencil, rujuk panduan berikut:

  • Cara Membuat Persekitaran Pembangunan Dengan Nix-Shell di Linux

Pakej menaik taraf

Untuk menaik taraf pakej ke versi yang tersedia seterusnya, cuma jalankan:

 $ nix-env --upgrade vim
Salin selepas log masuk

Atau, hanya:

 $ nix -env -u vim
Salin selepas log masuk

Perintah di atas hanya akan menaik taraf pakej VIM jika terdapat versi "lebih baru".

Juga, anda boleh menaik taraf semua pakej yang dipasang sekaligus dengan menjalankan arahan berikut:

 $ nix -env -u
Salin selepas log masuk

Kemas kini Nixos

Sila ambil perhatian bahawa arahan berikut khusus untuk pengguna NixOS.

Kemas kini Saluran NixOS

Pertama, kemas kini saluran anda untuk memastikan anda mempunyai definisi pakej terkini. Anda boleh melakukan ini dengan arahan berikut:

 $ nix-channel --update
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

Perintah ini mengemas kini semua saluran yang anda langgan, termasuk saluran NixOS, yang mengandungi pakej dan definisi konfigurasi sistem.

Memohon kemas kini

Sebaik sahaja saluran dikemas kini, anda menggunakan kemas kini ke sistem anda. Ini dilakukan dengan membina semula konfigurasi sistem anda menggunakan pakej terkini dari saluran. Untuk berbuat demikian, jalankan:

 $ sudo nixos-rebuild switch
Salin selepas log masuk

Perintah suis Nixos-rebuild membina semula konfigurasi sistem anda berdasarkan fail konfigurasi anda (/etc/nixos/configuration.nix), menggunakan pakej terkini dari saluran. Selepas membina semula, ia beralih ke konfigurasi baru dengan segera.

Petua Tambahan:

  • Semak kemas kini yang tersedia : Tidak ada arahan NixOS langsung untuk menyemak kemas kini yang tersedia seperti dalam beberapa pengagihan Linux yang lain. Walau bagaimanapun, kerana kemas kini berdasarkan kandungan saluran, menjalankan saluran SUDO NIX --update memastikan anda mempunyai definisi terkini.
  • Meningkatkan Pakej Khusus : Jika anda ingin menaik taraf pakej khusus yang diuruskan oleh Nix-ENV, anda boleh menggunakan Nix-ENV -U atau nix-env -u '*' untuk mengemas kini semua pakej yang dipasang pengguna.

Ingatlah, kemas kini NixOS umumnya lancar dan diuji dengan baik, terima kasih kepada konfigurasi deklaratif dan kebolehulangan NIX. Sentiasa pastikan fail konfigurasi sistem anda terkini dan dikawal versi untuk pengalaman kemas kini yang lancar.

Pakej Rollback

Ini adalah ciri hebat pengurus pakej NIX. Sebelum kita melihat bagaimana untuk menggulung pakej, marilah kita memahami apa profil, persekitaran pengguna dan generasi.

Di NIX, profil, persekitaran pengguna, dan generasi adalah konsep yang berkaitan yang membolehkan pengurusan pakej dan konfigurasi dengan cara yang selamat dan boleh dihasilkan.

Profil

Profil adalah koleksi pakej dan konfigurasi untuk tujuan atau pengguna tertentu. Profil membenarkan beberapa pengguna mempunyai persediaan tersuai mereka tanpa menjejaskan satu sama lain. Anda boleh menukar antara profil yang berbeza, dengan berkesan menguruskan pelbagai persekitaran atau set aplikasi.

Terdapat dua jenis profil utama:

  • Profil Pengguna : Setiap akaun pengguna mempunyai profil sendiri, yang terletak di/nix/var/nix/profil/per-pengguna/pengguna $. Profil ini mengandungi pakej yang telah dipasang pengguna untuk kegunaan peribadi.
  • Profil Sistem : Profil seluruh sistem terletak di/nix/var/nix/profil/sistem. Ia mengandungi pakej yang tersedia secara global pada sistem, biasanya diuruskan oleh pentadbir sistem.

Persekitaran pengguna

Persekitaran pengguna adalah satu set pakej khusus dan kebergantungan mereka dipasang di kedai NIX (misalnya, /nix/store/3aw2pdyx2jfc...-user-env).

Ia dibuat setiap kali anda memasang, menaik taraf, atau mengeluarkan pakej menggunakan NIX-ENV. Persekitaran pengguna pada dasarnya adalah pakej sendiri, disimpan di kedai Nix dengan hash kriptografi yang unik sebagai nama direktori.

Persekitaran pengguna dikaitkan dengan profil pengguna melalui symlinks, yang membolehkan pengguna yang berbeza mempunyai konfigurasi yang berbeza tanpa gangguan.

Generasi

Generasi adalah gambaran persekitaran pengguna anda (set pakej yang telah anda pasang) pada satu masa tertentu. Setiap kali anda memasang, menaik taraf, atau mengeluarkan pakej menggunakan NIX-ENV, generasi baru dibuat.

Setiap generasi disimpan dalam direktori/nix/store dengan nama hash kriptografi yang unik (misalnya /nix/store/3aw2pdyx2jfc...-user-env). Terdapat symlinks dalam/nix/var/nix/profil (contohnya lalai-2-link, lalai-3-link) yang menunjuk kepada direktori generasi ini.

Kelebihan utama generasi adalah bahawa mereka membolehkan anda dengan mudah melancarkan atau beralih antara konfigurasi pakej yang berbeza menggunakan arahan seperti NIX-ENV-Rollback dan Nix-ENV-perintah generasi switch.

Untuk meletakkan ini dengan kata -kata mudah:

  • Profil adalah koleksi pakej dan konfigurasi untuk pengguna atau sistem.
  • Persekitaran pengguna adalah set khusus pakej yang dipasang yang disimpan di kedai NIX.
  • Generasi adalah gambar persekitaran pengguna, dibuat setiap kali pakej dipasang, dinaik taraf, atau dikeluarkan, membolehkan rollbacks mudah dan suis antara konfigurasi.

Pendekatan ini menggalakkan kebolehpercayaan sistem, kebolehulangan, dan keupayaan untuk selamat bereksperimen dengan konfigurasi pakej yang berbeza tanpa mempertaruhkan persediaan semasa.

Cara menyenaraikan generasi

Untuk melihat senarai generasi yang ada berjalan:

 $ nix-env-list-generations
Salin selepas log masuk

Perintah ini menyenaraikan semua generasi yang tersedia untuk profil semasa anda. Output akan menunjukkan nombor generasi, laluan mereka di kedai Nix, dan menunjukkan generasi mana yang sedang aktif.

Output Contoh :

 1 2024-04-01 15:06:49   
   2 2024-04-01 15:17:14   
   3 2024-04-01 15:56:46 (Semasa)
Salin selepas log masuk

Mundur ke generasi sebelumnya

Anda memasang pakej, tetapi ia tidak berguna atau tidak berfungsi dengan baik. Anda memerlukan versi yang lebih rendah dari pakej yang sama. Apa yang akan anda lakukan? Mudah. Cukup rollback ke versi kerja sebelumnya menggunakan arahan:

 $ nix-env --rollback
Salin selepas log masuk

Perintah ini membalikkan persekitaran pengguna semasa anda kepada generasi sebelumnya. Sebagai contoh, jika anda sedang dalam Generasi 3 dan menjalankan Nix-ENV-Rollback, ia akan beralih ke Generasi 2.

Suis generasi

Kita boleh beralih antara generasi yang berbeza menggunakan arahan:

 $ nix-env --switch-generations <no></no>
Salin selepas log masuk

Perintah ini membolehkan anda beralih kepada generasi tertentu. Sebagai contoh, Nix-ENV-Switch-Generasi 2 akan menukar persekitaran pengguna anda ke Generasi 2, walaupun itu bukan generasi terdahulu.

Ringkasnya, generasi menyediakan cara untuk mengurus dan melancarkan konfigurasi pakej. The-list-generations menunjukkan kepada anda generasi apa yang tersedia, Nix-ENV-Command adalah cara yang mudah untuk membatalkan perubahan terakhir anda, dan-generasi switch membolehkan anda memilih generasi tertentu.

Pendekatan pengurusan generasi ini menggalakkan kebolehpercayaan sistem dengan membolehkan anda dengan mudah mengembalikan perubahan buruk atau menguji konfigurasi baru tanpa menjejaskan persediaan semasa anda.

Nyahpasang pakej

Untuk Pakej Uninstalla, jalankan:

 $ nix -env -e gcc
Salin selepas log masuk

Perintah di atas akan menyahpasang pakej yang dipanggil GCC dari sistem anda.

Anda boleh mengeluarkan pelbagai pakej seperti yang ditunjukkan di bawah.

 $ nix -env -e gcc vim
Salin selepas log masuk

Output Contoh:

 Nyahpasang 'VIM-9.1.0148'
menyahpasang 'GCC-13.2.0'
Laluan Bangunan (s) '/nix/store/mxpikbq3l08379h8ik8mrj3fcw6mh6y4-user-environment'
Dibuat 6 Symlinks dalam Persekitaran Pengguna
Salin selepas log masuk

Mengeluarkan pakej yang tidak digunakan (koleksi sampah)

Di Nix, apabila anda mengemas kini (-u) atau mengeluarkan (-e) program menggunakan Nix-ENV, sistem itu sebenarnya tidak memadamkan versi lama dari kedai Nix (iaitu/nix/store/direktori). Sebaliknya, ia membuat persediaan baru untuk profil anda tanpa pautan ke program yang dikeluarkan. Dalam erti kata lain, hanya symlinks akan dikeluarkan dari profil anda.

Walau bagaimanapun, kerana kami tidak dapat menambah program baru tanpa kehabisan ruang cakera, Nixos mempunyai cara untuk membersihkan program yang tidak digunakan yang dipanggil Koleksi Sampah . Pemungut sampah menghilangkan program yang tiada profil atau versi mereka (generasi) perlu lagi.

Tetapi, jika ada versi lama persediaan anda masih memerlukan program, ia tidak akan dikeluarkan. Ciri ini penting untuk membolehkan anda kembali ke persediaan sebelumnya jika diperlukan.

Untuk membantu pemungut sampah melakukan tugasnya, adalah idea yang baik untuk membersihkan versi lama yang tidak anda gunakan lagi. Inilah cara anda boleh melakukannya:

Padamkan semua versi lama kecuali yang ada sekarang dalam profil anda:

 $ NIX-ENV-Generations lama
Salin selepas log masuk

Keluarkan versi tertentu yang tidak anda perlukan, contohnya, versi 10, 11, dan 14:

 $ nix-env-generations 10 11 14
Salin selepas log masuk

Padamkan versi yang berumur lebih dari 30 hari:

 $ nix-env-generations 30d
Salin selepas log masuk

Selepas membersihkan versi lama, jalankan pemungut sampah untuk menghapuskan program yang tidak digunakan:

 $ nix-store --gc
Salin selepas log masuk

Anda boleh menyemak fail pemungut sampah yang akan dipadam sebelum menjalankannya:

 $ nix-store --gc --print-mati
Salin selepas log masuk

Dan untuk melihat fail mana yang akan kekal:

 $ nix-store --gc --print-live
Salin selepas log masuk

Terdapat juga alat yang berguna untuk pembersihan, nix-collect-carbage, yang boleh mengeluarkan semua versi lama dari setiap profil sekaligus. Gunakannya dengan pilihan -D:

 $ nix-collect-garbage -d
Salin selepas log masuk

Perintah ini adalah cara mudah untuk merapikan sistem anda dengan menyingkirkan versi lama dan kemudian menjalankan pemungut sampah untuk membersihkan program yang tidak diperlukan.

Output Contoh:

 Mencari akar pemungut sampah ...
Menghapus sampah ...
Menghapus '/nix/store/s4jr4dc9gghldr3xza23rw0gm9kp21kl-nix-prefetch-scripts.drv'
Menghapus '/nix/store/km2gyzlvs9vkr52wxfyhinv4r52ksrj-nix-prefetch-bzr.drv'
Menghapus '/nix/store/7mi73sdc1p349vmpb5nyxsrv8ayk5hly-bazaar-2.7.0.drv'

[...]

Menghapus '/nix/store/8ckmcs9hx1qm0yxdnv892vrvx49zm1sq-setup-hook-2.0.sh'
Memadam '/nix/store/sampah'
Memadam pautan yang tidak digunakan ...
Nota: Saat ini menghubungkan SAVES -0.00 MIB
1447 laluan kedai dipadam, 12.65 mib dibebaskan
Salin selepas log masuk

Ini sebenarnya akan mengeluarkan pakej yang tidak dipasang.

Anda harus menjalankan arahan ini secara berkala untuk menghilangkan pakej yang tidak digunakan dari sistem anda.

NIX COMMANDS Cheatsheet

Berikut adalah cheatsheet yang kemas untuk arahan Pengurus Pakej Nix. Cetak dan simpan di dekat meja anda untuk rujukan mudah.

Tindakan Perintah Contoh
Pasang pakej nix-env -i nix -env -i firefox
Nyahpasang pakej nix-env -e nix -env -e firefox
Cari pakej nix -env -qap nix -env -qap python
Pakej kemas kini nix-env -u nix -env -u firefox
Senaraikan pakej yang dipasang nix -env -q nix -env -q
Gulung semula perubahan nix-env --rollback nix-env --rollback
Koleksi Sampah nix-collect-garbage -d nix-collect-garbage -d
NIX COMMANDS Cheatsheet

Lembaran cheat ini merangkumi arahan asas yang anda akan gunakan untuk menguruskan pakej dengan Nix, menawarkan panduan mudah untuk memulakan dan mengekalkan sistem anda.

Soalan yang sering ditanya

Berikut adalah soalan yang paling kerap ditanya (FAQ) mengenai Pengurus Pakej Nix.

S: Apa itu NIX?

A: NIX adalah pengurus pakej yang kuat untuk sistem Linux dan Unix yang memberi tumpuan kepada kebolehulangan, kebolehpercayaan, dan kebolehpercayaan. Ia membolehkan pengguna memasang, mengurus, dan menukar antara versi perisian dan kebergantungan mereka dengan mudah.

S: Bagaimana saya memasang pakej menggunakan nix?

A: Untuk memasang pakej, gunakan arahan NIX -ENV -I diikuti dengan nama pakej. Sebagai contoh, Nix -ENV -I Firefox memasang pelayar web Firefox.

S: Bagaimana saya boleh menyahpasang pakej?

A: Untuk menyahpasang pakej, gunakan arahan NIX -ENV -E diikuti dengan nama pakej. Sebagai contoh, NIX -ENV -E Thunderbird menyahpasang klien e -mel Thunderbird.

S: Bagaimana saya mencari pakej yang ada?

A: Untuk mencari pakej, gunakan NIX -ENV -QAP . Sebagai contoh, untuk mencari pakej yang berkaitan dengan Python, anda boleh menggunakan Python Nix -ENV -QAP.

S: Bolehkah saya mengemas kini pakej tertentu?

A: Ya, untuk mengemas kini pakej tertentu, jalankan nix-env -u . Untuk mengemas kini semua pakej yang dipasang, hanya gunakan nix -env -u.

S: Bagaimana saya melihat pakej apa yang telah saya pasang?

A: Untuk menyenaraikan semua pakej yang dipasang, gunakan perintah nix -env -q.

S: Bagaimana saya boleh menyenaraikan semua pakej yang tersedia dari saluran?

A: Untuk menyenaraikan semua pakej yang tersedia dari saluran, jalankan NIX -ENV -QA.

S: Bagaimanakah saya kembali ke keadaan terdahulu atau "Roll Back"?

A: NIX menjejaki perubahan dalam "Generasi." Untuk melancarkan kembali ke generasi sebelumnya, gunakan Nix-ENV-Rollback. Anda boleh menyenaraikan generasi yang tersedia dengan generasi Nix-ENV.

S: Bagaimana saya menjaga sistem Nix saya bersih?

A: Gunakan nix-collect-carbage -d untuk mengeluarkan pakej yang tidak digunakan dan ruang bebas. Perintah ini membersihkan pakej yang tidak dirujuk oleh mana -mana profil.

Kesimpulan

Pengurus Pakej Nix menawarkan cara yang mantap dan fleksibel untuk menguruskan pakej perisian pada sistem Linux dan Unix.

Pendekatannya untuk mengendalikan pakej memastikan bahawa anda boleh memasang, mengemas kini, dan menukar antara versi perisian yang berbeza tanpa konflik atau masalah kebergantungan.

Walaupun Nix mungkin mempunyai sedikit lengkung pembelajaran, terutama bagi mereka yang baru untuk konsepnya, manfaat pengurusan pakej yang tepat dan boleh dihasilkan adalah penting.

Sama ada anda pemaju, pentadbir sistem, atau hanya pengguna yang ingin tahu, meluangkan masa untuk belajar NIX dapat meningkatkan kawalan anda ke atas persekitaran perisian dan menyelaraskan aliran kerja anda.

Itu sahaja buat masa ini. Saya harap anda mendapat idea yang jelas mengenai penggunaan asas Pengurus Pakej Nix . Apa yang kami tutupi di sini sepatutnya cukup untuk memulakan anda dengan Nix.

Sudah tentu, terdapat banyak arahan. Untuk mengetahui lebih banyak arahan NIX, saya sangat mengesyorkan anda merujuk manual rasmi NIX yang diberikan di bawah.

Sumber:

  • Manual nix

Atas ialah kandungan terperinci Bermula dengan Pengurus Pakej Nix: Panduan Pemula 2024. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan