कैसे पता करें कि कौन सा (स्थापित नहीं) पैकेज निक्सन पर है?


13

मैं निक्स पर एक निक्स पैकेज प्रबंधक का उपयोग कर रहा हूं । मान लीजिए मैं एक पैकेज स्थापित करना चाहता हूं जो एक फ़ाइल प्रदान करता है libgtk-x11-2.0.so.0। मैं अन्य GNU / Linux वितरणों के समान इस फ़ाइल को प्रदान करने वाला पैकेज कैसे ढूँढ सकता हूँ ?

वर्तमान में मुझे फाइल को गूगल करना है और यह पता लगाना है कि यह किस पैकेज से संबंधित है और निक्स रिपॉजिटरी पर संबंधित पैकेज ढूंढ सकता है, लेकिन मैं एक अधिक मुहावरेदार तरीका चाहूंगा।


1
मुझे देने से पहले "सेटअप एक ctags डेटाबेस ..." nixos.org/wiki/… मिला
तेरह

कुछ पैकेज मैनेजर (उदाहरण के लिए yumऔर dnfRPMland में) आपको "फ़ाइल इंस्टॉल करने" की अनुमति देते हैं, वे सही पैकेज का पता लगाते हैं और उस एक को स्थापित करते हैं।
वॉनब्रांड

2
हमारे पास केवल निष्पादक ATM ( $ command-not-found foo) के लिए है। ध्यान दें कि निक्स फ़ाइलों (जैसे ctags के साथ) की खोज वहाँ मदद नहीं करेगी। आपको यह स्थापित करने के लिए बिल्ड को निष्पादित करना होगा।
व्लादिमीर tunát

क्यों? क्या अन्य पैकेज प्रबंधकों के पास वास्तव में ऐसा कार्य है? अधिक "मुहावरेदार" विधि INSTALLपैकेज की फाइल को पढ़ने के लिए है (जिसके लिए आप पर्यावरण बनाना चाहते हैं), अर्थात् उन पैकेजों के लिए Requirements/ Dependenciesअनुभाग जिन्हें आपको पहले से इंस्टॉल करना है। तो देखने के लिए संकुल में nixpkgs। (दूसरे शब्दों में, पैकेज प्रबंधक फाइलों के बारे में नहीं हैं ...)
एंड्रयू मिलोरादोवस्की

3
@AndrewMiloradovsky, क्योंकि कभी-कभी आप एक कमांड (या किसी अन्य फ़ाइलनाम) का नाम जानते हैं, लेकिन पैकेज का नाम नहीं जो इसे प्रदान करता है। और हाँ, अन्य पैकेज प्रबंधकों में ऐसी सुविधा होती है, जैसे yum provides '*/bin/grep'या dnf provides '*/bin/grepया apt-file search 'fprintf.3.gz'
मैक्सक्लेपजिग

जवाबों:


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 $fileऔर apt-get distro में आप apt-file इंस्टॉल कर सकते हैं और कर apt-file $fileसकते हैं, लेकिन मैं इसमें समतुल्य नहीं देख सकता nix-env -q

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.