GNU/Linux >> Belajar Linux >  >> Linux

Memulai Dengan Manajer Paket Nix

Tutorial ini menjelaskan bagaimana melakukan operasi manajemen paket seperti menginstal, menghapus, memperbarui, dan meningkatkan paket menggunakan manajer paket Nix. Jika Anda belum menginstal manajer paket Nix, lihat panduan kami sebelumnya "Nix – Manajer Paket yang Kuat untuk Linux dan Unix" . Seperti yang mungkin sudah Anda ketahui, Anda tidak perlu menjadi pengguna root atau sudo untuk melakukan semua operasi manajemen paket menggunakan Nix.

Memulai Pengelola Paket Nix

Nix memiliki banyak perintah. Perintah utama untuk manajemen paket adalah nix-env . Perintah ini digunakan untuk mendaftar, menginstal, memperbarui, mengembalikan, menghapus, paket kueri. Mari kita lihat beberapa perintah dengan contoh.

Memperbarui saluran Nix

Saluran Nix hanyalah URL yang menunjuk ke tempat yang berisi sekumpulan ekspresi Nix dan manifes. Secara default, Nixpkgs saluran secara otomatis ditambahkan ke daftar saluran "berlangganan" Anda saat Anda menginstal Nix.

Untuk tetap up to date dengan saluran Nix, jalankan perintah berikut:

$ nix-channel --update

Contoh keluaran:

downloading Nix expressions from ‘https://d3g5gsiof5omrk.cloudfront.net/nixpkgs/nixpkgs-17.09pre108299.ec9a23332f/nixexprs.tar.xz’...
downloading ‘https://d3g5gsiof5omrk.cloudfront.net/nixpkgs/nixpkgs-17.09pre108299.ec9a23332f/nixexprs.tar.xz’... [8335/8656 KiB, 206.5 KiB/s]
unpacking channels...

Anda juga dapat menambahkan saluran secara manual ke sistem Anda seperti yang ditunjukkan di bawah ini.

$ nix-channel --add https://nixos.org/channels/nixpkgs-unstable

Setelah berlangganan (menambahkan) saluran, jangan lupa untuk memperbarui saluran untuk mendapatkan ekspresi Nix terbaru yang tersedia menggunakan perintah:

$ nix-channel --update

Untuk menghapus saluran, jalankan saja:

$ nix-channel --remove nixpkgs

Telusuri/kueri paket yang tersedia

Untuk melihat daftar paket yang tersedia di saluran berlangganan, jalankan:

$ nix-env -qa

Contoh output dari perintah di atas adalah:

2048-in-terminal-2015-01-15
2bwm-0.2
389-ds-base-1.3.5.15
3dpong-0.5
4store-1.1.6
8086tiny-1.25
90secondportraits-1.01b
915resolution-0.5.3
9pfs
a2jmidid-8
a2ps-4.14
a52dec-0.7.4p4
aacgain-1.9.0
aacskeys-0.4.0e
aalib-1.4rc5
abc-verifier-20160818
abcde-2.7.2
abcl-1.4.0

[...]

Di sini, "-q" menunjukkan operasi kueri. "-a" menunjukkan semua paket yang tersedia (yaitu, dapat diinstal).

Anda dapat menanyakan paket tertentu, seperti yang ditunjukkan di bawah ini.

$ nix-env -qa chromium

Keluaran:

chromium-58.0.3029.110

Anda juga dapat menggunakan perintah berikut untuk mencari paket tertentu.

$ nix-env -qaP | grep python3-3

Contoh keluaran:

nixpkgs.python33 python3-3.3.6
nixpkgs.python33Full python3-3.3.6
nixpkgs.python34 python3-3.4.6
nixpkgs.python34Full python3-3.4.6
nixpkgs.python35 python3-3.5.3
nixpkgs.python35Full python3-3.5.3
nixpkgs.python3Full python3-3.6.1
nixpkgs.python36Full python3-3.6.1
nixpkgs.python3 python3-3.6.1

Untuk membuat daftar semua paket yang diinstal, cukup jalankan:

$ nix-env -q

Dimungkinkan juga untuk melihat status paket yang tersedia. Lihat contoh di bawah ini.

$ nix-env -qas gcc

Contoh keluaran:

IPS gcc-5.4.0

Di sini, "I" menunjukkan bahwa paket yang ditentukan telah diinstal, "P" menunjukkan paket tersebut ada di sistem kami, dan "S" menunjukkan apakah ada yang disebut pengganti untuk paketnya.

Anda dapat membuat kueri/daftar paket menggunakan ekspresi reguler. Berikut adalah beberapa contoh ekspresi reguler.

kromium

Cocok dengan nama paket chromium dan versi apa pun.

kromium-58.0

Cocok dengan nama paket chromium dan versi 58.0.

Contoh:

$ nix-env -qa chromium-58.0

gtk\\+

Cocok dengan nama paket gtk+ . Karakter + harus diloloskan menggunakan garis miring terbalik agar tidak ditafsirkan sebagai pengukur, dan garis miring terbalik harus diloloskan dengan garis miring terbalik lainnya untuk memastikan bahwa shell meneruskannya.

.\*

Cocok dengan nama paket apa pun. Ini adalah default untuk sebagian besar perintah.

'.*zip.*'

Cocok dengan nama paket apa pun yang berisi string zip . Perhatikan titik-titik:'*zip*' tidak berfungsi, karena dalam ekspresi reguler, karakter * ditafsirkan sebagai quantifier.

'.*(firefox|chromium).*'

Cocok dengan nama paket apa pun yang berisi string firefox atau kromium .

Menginstal paket

Seperti yang saya sebutkan di tutorial sebelumnya, semua paket akan disimpan di Nix Store , biasanya direktori /nix/store .

Untuk menginstal sebuah paket, jalankan saja:

$ nix-env --install gcc

Atau,

$ nix-env -i gcc

Perintah di atas akan menginstal paket gcc terbaru yang tersedia.

Contoh output dari perintah di atas adalah:

installing ‘gcc-5.4.0’
download-from-binary-cache.pl: still waiting for ‘https://cache.nixos.org/zx0i63k1qswsfjj3kxhwk1vqa9i5ys8i.narinfo’ after 5 seconds...
download-from-binary-cache.pl: still waiting for ‘https://cache.nixos.org/dyj2k6ch35r1ips4vr97md2i0yvl4r5c.narinfo’ after 5 seconds...
download-from-binary-cache.pl: still waiting for ‘https://cache.nixos.org/g25gnfmd8i392ahiip9nwfv80szqbkcs.narinfo’ after 5 seconds...
these paths will be fetched (38.94 MiB download, 150.45 MiB unpacked):
 /nix/store/7n45x3waczv1smsdkax2dy4j2zhbfk82-glibc-2.25-bin
 /nix/store/dyj2k6ch35r1ips4vr97md2i0yvl4r5c-gcc-5.4.0
 /nix/store/f05gsfcilsczwic8aga0cgl0sygbw5lc-zlib-1.2.11
 /nix/store/f111ij1fc83965m48bf2zqgiaq88fqv5-glibc-2.25
 /nix/store/g25gnfmd8i392ahiip9nwfv80szqbkcs-gcc-5.4.0-man
 /nix/store/n5k6yqf81jp4qbay2czaqciimhxikcq8-linux-headers-4.4.10
 /nix/store/vrr9maj9lqj2xwndlx3kh07vhnc111i2-glibc-2.25-dev
 /nix/store/xfrkm34sk0a13ha9bpki61l2k5g1v8dh-gcc-5.4.0-lib
 /nix/store/zx0i63k1qswsfjj3kxhwk1vqa9i5ys8i-gcc-5.4.0-info
fetching path ‘/nix/store/zx0i63k1qswsfjj3kxhwk1vqa9i5ys8i-gcc-5.4.0-info’...

[...]

fetching path ‘/nix/store/dyj2k6ch35r1ips4vr97md2i0yvl4r5c-gcc-5.4.0’...

*** Downloading ‘https://cache.nixos.org/nar/00y98z7i8a1a8d3nkv4dbbfbwwvznccbvmjdhaay0gqc0gfgb020.nar.xz’ to ‘/nix/store/dyj2k6ch35r1ips4vr97md2i0yvl4r5c-gcc-5.4.0’...
 % Total % Received % Xferd Average Speed Time Time Time Current
 Dload Upload Total Spent Left Speed
100 29.5M 100 29.5M 0 0 373k 0 0:01:21 0:01:21 --:--:-- 365k

building path(s) ‘/nix/store/nxx0bfg3n685fl0l3m2gbjqannh0wb9i-user-environment’
created 78 symlinks in user environment

Mari kita periksa apakah gcc diinstal atau tidak menggunakan perintah:

$ gcc -v

Contoh keluaran:

Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/nix/store/dyj2k6ch35r1ips4vr97md2i0yvl4r5c-gcc-5.4.0/libexec/gcc/x86_64-unknown-linux-gnu/5.4.0/lto-wrapper
Target: x86_64-unknown-linux-gnu
Configured with: 
Thread model: posix
gcc version 5.4.0 (GCC)

Seperti yang Anda perhatikan pada output di atas, gcc telah berada di sub-direktori bernama "dyj2k6ch35r1ips4vr97md2i0yvl4r5c-gcc-5.4.0" di bawah /nix/store . Di sini, kami memanggil dyj2k6ch35r1ips4vr97md2i0yvl4r5c-gcc-5.4.0 sebagai pengenal unik. Subdirektori ini menampung semua dependensi dan pustaka yang diperlukan dari paket gcc.

Menguji paket tanpa menginstal

Fitur penting lainnya dari manajer paket Nix adalah Anda dapat menguji sebuah paket tanpa menginstalnya di sistem Anda. Lihat panduan berikut untuk mengetahui cara menguji paket tanpa menginstalnya.

  • Cara Menguji Paket Tanpa Menginstalnya di Linux

Mengupgrade paket

Untuk memutakhirkan paket ke versi berikutnya yang tersedia, jalankan saja:

$ nix-env --upgrade vim

Atau, cukup:

$ nix-env -u vim

Perintah di atas hanya akan meningkatkan vim paket jika ada versi "lebih baru".

Selain itu, Anda dapat meningkatkan semua paket yang diinstal sekaligus dengan menjalankan perintah berikut:

$ nix-env -u

Paket rollback

Anda menginstal sebuah paket, tetapi paket tersebut tidak berguna atau tidak berfungsi dengan baik. Anda memerlukan versi yang lebih rendah dari paket yang sama. Apa yang akan kamu lakukan? Sederhana. Kembalikan saja ke versi kerja sebelumnya menggunakan perintah berikut:

$ nix-env --rollback

Mencopot pemasangan paket

Untuk mencopot pemasangan paket, jalankan:

$ nix-env -e gcc

Perintah di atas akan menghapus paket yang disebut gcc dari sistem Anda.

Anda dapat menghapus beberapa paket seperti yang ditunjukkan di bawah ini.

$ nix-env -e gcc vim

Contoh keluaran:

uninstalling ‘vim-8.0.0442’
uninstalling ‘gcc-5.4.0’
building path(s) ‘/nix/store/mxpikbq3l08379h8ik8mrj3fcw6mh6y4-user-environment’
created 6 symlinks in user environment

Menghapus paket yang tidak digunakan

Ketika sebuah paket dicopot, paket tersebut tidak dihapus dari Nix Store (yaitu direktori /nix/store/). Hanya saja, symlink akan dihapus dari profil Anda.

Untuk benar-benar menghapus paket yang dihapus, jalankan:

$ nix-collect-garbage -d

Contoh keluaran:

finding garbage collector roots...
deleting garbage...
deleting ‘/nix/store/s4jr4dc9gghldr3xza23rw0gm9kp21kl-nix-prefetch-scripts.drv’
deleting ‘/nix/store/km2gyzlvs9vkrr52wxfyhinv4r52ksrj-nix-prefetch-bzr.drv’
deleting ‘/nix/store/7mi73sdc1p349vmpb5nyxsrv8ayk5hly-bazaar-2.7.0.drv’

[...]

deleting ‘/nix/store/8ckmcs9hx1qm0yxdnv892vrvx49zm1sq-setup-hook-2.0.sh’
deleting ‘/nix/store/trash’
deleting unused links...
note: currently hard linking saves -0.00 MiB
1447 store paths deleted, 12.65 MiB freed

Anda harus menjalankan perintah ini secara berkala untuk menghapus paket yang tidak digunakan dari sistem Anda.

Dan, itu saja untuk saat ini. Saya harap Anda memiliki ide tentang penggunaan dasar manajer paket Nix. Apa yang baru saja saya bahas di sini sudah cukup untuk memulai dengan manajer paket Nix. Tentu saja, ada banyak perintah. Untuk mempelajari lebih lanjut perintah Nix, lihat manual resmi Nix yang diberikan di akhir panduan ini.

Jika Anda merasa panduan ini bermanfaat, silakan bagikan di jejaring sosial, profesional, dan dukung OSTechNix Anda. Lebih banyak barang bagus akan datang. Tetap disini!

Semangat!


Linux
  1. Memulai dengan Zsh

  2. Memulai dengan ls

  3. Memulai PostgreSQL di Linux

  1. Memulai Pengelola File Plesk

  2. Memulai SSH di Linux

  3. Cara:Memulai dengan Ansible

  1. Memulai dengan GnuCash

  2. Memulai pengelola jendela i3 di Linux

  3. Memulai Samba untuk interoperabilitas