파일이 NixOS에 속하는 (설치되지 않은) 패키지를 찾는 방법은 무엇입니까?


13

NixOS 에서 Nix 패키지 관리자 를 사용하고 있습니다. 파일을 제공하는 패키지를 설치하려고한다고 가정합니다 . 다른 GNU / Linux 배포판 과 비슷한이 파일을 제공하는 패키지를 어떻게 찾을 수 있습니까?libgtk-x11-2.0.so.0

현재 파일을 Google로 가져와 어떤 패키지가 속해 있는지 파악하고 Nix 저장소에서 해당 패키지를 찾아야하지만 더 관용적 인 방법을 원합니다.


1
포기하기 전에 "ctags 데이터베이스 설정 ..." nixos.org/wiki / ... 까지 도달 했습니다.
thrig

일부 패키지 관리자 (예를 들면 yumdnfRPMland의)는 그들이 올바른 패키지를 파악하고 그 하나를 설치하면 "파일을 설치합니다"라고 할 수 있습니다.
vonbrand

2
우리는 ATM ( $ command-not-found foo) 실행 파일에 대해서만 이것을 가지고 있습니다 . nix 파일 검색 (예 : ctags)은 도움이되지 않습니다. 설치 대상을 찾으려면 빌드를 수행해야합니다.
Vladimír Čunát

왜? 다른 패키지 관리자는 실제로 그러한 기능을 가지고 있습니까? 보다 " INSTALL동일한 "방법은 환경을 작성하려는 패키지 파일, 즉 사전 설치해야하는 패키지 의 Requirements/ Dependencies섹션 을 읽는 것 입니다. 그런 다음에서 패키지 를 찾으십시오 nixpkgs. (즉, 패키지 관리자는 파일이 아닌 패키지에 관한 것입니다 ...)
Andrew Miloradovsky

3
@AndrewMiloradovsky는 명령 이름 (또는 다른 파일 이름)을 알고 있지만 명령 이름을 제공하는 패키지 이름은 알지 못하기 때문입니다. 예, 다른 패키지 관리자는 이러한 기능을 제공합니다 (예 : yum provides '*/bin/grep'또는 dnf provides '*/bin/grep또는) apt-file search 'fprintf.3.gz'.
maxschlepzig

답변:


9

nix-index 가 필요합니다.

색인을 설치하고 빌드하십시오.

nix-env -iA nixos.nix-index
nix-index

찾기 libgtk-x11-2.0.so.0:

nix-locate -w libgtk-x11-2.0.so.0

산출:

(zed.out)                                             0 s /nix/store/bc4mngklj2j7hmm21jra4641x4pm9r8z-node-webkit-env/lib/libgtk-x11-2.0.so.0
(thrust.out)                                          0 s /nix/store/wzg0k4i2cy0qsm3hwxlywxxbga019hbq-env-thrust/lib/libgtk-x11-2.0.so.0
(nwjs_0_12.out)                                       0 s /nix/store/js6klvzjfi5q4djmwb0bqzfb4x0vzm6g-nwjs-env/lib/libgtk-x11-2.0.so.0
(node_webkit_0_11.out)                                0 s /nix/store/30vm6a7bmc56ckl575rqassw60ccxjpg-node-webkit-env/lib/libgtk-x11-2.0.so.0
(mumble_overlay.out)                                  0 s /nix/store/wayx023w1nslqg2z0c5v4n0b4jxn5n06-gtk+-2.24.31/lib/libgtk-x11-2.0.so.0
gnome2.gtk.out                                        0 s /nix/store/3iqchhncghm5s458lzy99c3prfymrnp2-gtk+-2.24.31/lib/libgtk-x11-2.0.so.0

마지막 줄은 gtk+-2.24.31속성 경로 gnome2.gtk가 있는 패키지 에이 파일이 포함되어 있다고 말합니다 .


2

문서를 살펴보면 쉬운 방법이 아닌 것 같습니다.

yum 기반 배포판을 사용하면 yum provides $fileapt-get 배포판을 사용하여 apt 파일을 설치할 수 apt-file $file있지만에서 동등한 것을 볼 수는 없습니다 nix-env -q.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.