Saya menggunakan manajer paket Nix di NixOS . Misalkan saya ingin menginstal paket yang menyediakan file libgtk-x11-2.0.so.0
. Bagaimana cara menemukan paket yang menyediakan file ini, mirip dengan distribusi GNU / Linux lainnya ?
Saat ini saya harus mencari di Google file dan mencari tahu paket mana yang mungkin dimiliki dan menemukan paket yang sesuai pada repositori Nix, tapi saya ingin metode yang lebih idiomatis.
package-management
nixos
nix
Mirzhan Irkegulov
sumber
sumber
yum
dandnf
di RPMland) memungkinkan Anda untuk mengatakan "instal file", mereka mencari paket yang tepat dan menginstal yang itu.$ command-not-found foo
). Perhatikan bahwa mencari file nix (misalnya dengan ctag) tidak akan membantu di sana. Anda harus melakukan build untuk menemukan apa yang diinstalnya.INSTALL
file paket (yang ingin Anda buat lingkungannya), yaitu bagianRequirements
/Dependencies
untuk paket-paket yang harus Anda instal sebelumnya. Kemudian cari paket dinixpkgs
. (Dengan kata lain, manajer paket adalah tentang paket bukan file ...)yum provides '*/bin/grep'
ataudnf provides '*/bin/grep
atauapt-file search 'fprintf.3.gz'
.Jawaban:
nix-index adalah yang Anda butuhkan.
Pasang dan bangun indeks:
Temukan
libgtk-x11-2.0.so.0
:Keluaran:
Baris terakhir mengatakan bahwa paket
gtk+-2.24.31
dengan path atributgnome2.gtk
berisi file ini.sumber
Melihat melalui dokumentasi itu sepertinya tidak ada cara mudah untuk melakukan ini.
Dengan distro berbasis yum Anda dapat melakukan
yum provides $file
dan dalam distro apt-get Anda dapat menginstal apt-file dan melakukanapt-file $file
tetapi saya tidak dapat melihat yang setara dinix-env -q
.sumber