लिनक्स के तहत एक सॉफ्टवेयर के लिए इंस्टॉलेशन पथ कैसे खोजें?


71

लिनक्स के तहत, मैं टाइप करके एक सॉफ्टवेयर लॉन्च करता हूं, जैसे, फ्लुइडप्लॉट। मैं इस सॉफ़्टवेयर के लिए इंस्टॉलेशन पाथ कैसे पा सकता हूं?


जवाबों:


62

आप उपयोग कर सकते हैं:

which fluidpoint

यह देखने के लिए कि यह कहाँ से निष्पादित हो रहा है (यदि यह आपके $ पेट में है)। या:

find / -name fluidpoint 2> /dev/null

वर्चुअल फाइल सिस्टम पर फ़्लुइपॉइंट और रीडायरेक्ट त्रुटियों नामक फ़ाइल को देखने के लिए।

आमतौर पर वे एक छिपी हुई निर्देशिका के रूप में /sbin, में /usr/sbin, /usr/local/binया होते हैं ~

मैनुअल से:

NAME
       which - shows the full path of (shell) commands.

SYNOPSIS
       which [options] [--] programname [...]

पूर्ण मैनुअल: https://linux.die.net/man/1/which


4
या यह देखने के लिए कि क्या कार्यक्रम वास्तव में एक उपनाम है, उदाहरण के लिए alias fluidpoint,
चाड फेलर

2
के कुछ संस्करणों @Chad which(जैसे ZSH करने के लिए बनाया एक) ऐसा कर देगा के लिए
माइकल Mrozek

@ मिचेल उत्कृष्ट जानने के लिए। आपकी टिप्पणी के कारण, मुझे अभी पता चला है कि बैश के नए संस्करण भी ऐसा करते हैं। आपकी टिप्पणी के लिए +1।
चाड फेलर

"वे आम तौर पर कर रहे हैं ..." लाइन बहुत कपटी है, अतिरिक्त सॉफ्टवेयर में होना चाहिए /opt/*या /usr/local/bin~आपकी होम निर्देशिका है, मैं उलझन में हूं कि आप इसे "छिपा" क्यों कहते हैं।
स्टीव-ओ

क्षमा करें, अस्पष्ट है, मेरा मतलब है ~/.dir। छिपी निर्देशिका होम निर्देशिका के नीचे है। और मैं पूरी तरह से /usr/local/binडोप के बारे में भूल गया ।
n0pe

13

यदि आप RPM आधारित वितरण (CentOS, RHEL, SUSE, openSUSE) का उपयोग करते हैं, तो आप rpm -ql का उपयोग कर सकते हैं

उदाहरण:

rpm -ql findutils
/bin/find
/usr/bin/find
/usr/bin/xargs
/usr/share/doc/packages/findutils
/usr/share/doc/packages/findutils/AUTHORS
/usr/share/doc/packages/findutils/COPYING
/usr/share/doc/packages/findutils/NEWS
/usr/share/doc/packages/findutils/README
/usr/share/doc/packages/findutils/THANKS
/usr/share/doc/packages/findutils/TODO
/usr/share/info/find.info.gz
/usr/share/man/man1/find.1.gz

चीजें लिनक्स / यूनिक्स दुनिया में उन स्थानों पर स्थापित नहीं हैं, जैसे वे विंडोज में हैं (और मैक में भी कुछ हद तक)। वे अधिक वितरित हैं। बायनेरिज़ /binया में हैं /sbin, लाइब्रेरीज़ में हैं /lib, आइकन / ग्राफिक्स / डॉक्स / शेयर में हैं, कॉन्फ़िगरेशन में है /etcऔर प्रोग्राम डेटा में है /var

/bin, /lib, /sbinकोर अनुप्रयोगों बूटिंग के लिए आवश्यक होते हैं और /usrसभी अन्य उपयोगकर्ता और सिस्टम अनुप्रयोगों में शामिल है।


5

whereisआदेश एक आदेश के लिए बाइनरी, स्रोत और मैनुअल-पेज फ़ाइलों का पता लगाता है, और typeकमांड बताता है कि जब आप एक निश्चित कमांड चलाते हैं तो शेल वास्तव में क्या निष्पादित करता है। अपने मामले में
प्रयास करें whereis -l fluidplot

यदि यह केवल "फ्लुइडप्लॉट:" लौटाता है, लेकिन कोई रास्ता नहीं है, तो इसका मतलब है कि सॉफ़्टवेयर स्थापित नहीं है।

ध्यान दें कि इसमें वे फ़ाइलें शामिल नहीं हैं जो होम फ़ोल्डर के भीतर ~/.local/share/(मेरे मामले में) छिपी हो सकती हैं ।

लिनक्स पेंच पर पाया गया


पुन: "यह शामिल नहीं है ...", यह स्पष्ट नहीं है कि क्या यह टाइप करने के लिए संदर्भित करता है , कहां , या दोनों।
1

4

बस @ djsumdog के उत्तर में कुछ बिंदु जोड़ने के लिए, यदि आप DPKG आधारित डिस्टर्ब का उपयोग कर रहे हैं, जैसे कि Ubuntu, आप उपयोग कर सकते हैं

dpkg --status some_package

यह जाँचने के लिए कि यह क्या है, और

dpkg --listfiles some_package

यह जाँचने के लिए कि क्या फ़ाइलें शामिल हैं / इस पैकेज के लिए प्रासंगिक हैं। यह उन पैकेजों के लिए है जिनमें बाइनरी नहीं है जैसे, चलाने के लिए libnss3। तथा

dpkg --search some_file

यह जानने के लिए कि किस पैकेज में यह फ़ाइल शामिल है।

उदाहरण के लिए, dpkg --listfiles libnss3मुझे देता है:

/.
/usr
/usr/lib
/usr/lib/i386-linux-gnu
/usr/lib/i386-linux-gnu/libssl3.so
/usr/lib/i386-linux-gnu/nss
/usr/lib/i386-linux-gnu/nss/libsoftokn3.chk
/usr/lib/i386-linux-gnu/nss/libnssckbi.so
/usr/lib/i386-linux-gnu/nss/libnsssysinit.so
/usr/lib/i386-linux-gnu/nss/libfreebl3.chk
/usr/lib/i386-linux-gnu/nss/libnssdbm3.chk
/usr/lib/i386-linux-gnu/nss/libnssdbm3.so
/usr/lib/i386-linux-gnu/nss/libsoftokn3.so
/usr/lib/i386-linux-gnu/nss/libfreebl3.so
/usr/lib/i386-linux-gnu/libnssutil3.so
/usr/lib/i386-linux-gnu/libsmime3.so
/usr/lib/i386-linux-gnu/libnss3.so
/usr/share
/usr/share/doc
/usr/share/doc/libnss3
/usr/share/doc/libnss3/copyright
/usr/share/doc/libnss3/changelog.Debian.gz
/usr/share/lintian
/usr/share/lintian/overrides
/usr/share/lintian/overrides/libnss3

ध्यान दें कि फ़ोल्डर्स न केवल इस पैकेज के स्वामित्व में हैं, बल्कि अन्य लोगों द्वारा भी। बस फाइलों की जांच करें।

और इसके विपरीत, dpkg --search libnss3.soमुझे देता है:

firefox: /usr/lib/firefox/libnss3.so
thunderbird: /usr/lib/thunderbird/libnss3.so
libnss3:i386: /usr/lib/i386-linux-gnu/libnss3.so
libnss3-1d:i386: /usr/lib/i386-linux-gnu/libnss3.so.1d

0

का उपयोग करने के बजाय which( जो शायद सही विकल्प नहीं है जब तक कि आप csh का उपयोग नहीं कर रहे हैं ) आप command -v fluidplotशेल को शेप करने के लिए शेल का उपयोग कर सकते हैं यह बताने के लिए कि यदि आप इसे कमांड चलाने के लिए कहेंगे तो क्या होगा ( fluidplotइस उदाहरण में) ।

मेरे लिए कुछ उदाहरण:

$ command -v ls
alias ls='ls --color=auto'
$ command -v cat
/bin/cat
$ test_func() {
> :
> }
$ command -v test_func
test_func
$ which test_func
/usr/bin/which: no test_func in (/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin)
$ if command -v noSuchFile; then echo "It exists"; else echo "does not exist"; fi
does not exist

इसलिए आप इसका उपयोग यह परखने के लिए भी कर सकते हैं कि क्या कोई कमांड मिलेगी और चलाने का प्रयास किया जाएगा। चूंकि हम में से अधिकांश बॉर्न-जैसे गोले का उपयोग करते हैं (उदाहरण के लिए, बाश या zsh) यह अक्सर बेहतर होता हैwhich

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