उबंटू को कैसे बताएं कि एक प्रोग्राम कहां स्थापित करें और कैसे बताएं कि एक मौजूदा प्रोग्राम कहां स्थापित किया गया था?


10

मैं उबंटू / लिनक्स के लिए पूरी तरह से नया हूं, फिलहाल उबंटू सर्वर का उपयोग कर रहा हूं। बस कुछ बुनियादी जानने की कोशिश कर रहा है।

आप कैसे बता सकते हैं कि आप कहां प्रोग्राम स्थापित कर रहे हैं। उदाहरण के लिए, मैंने अभी-अभी Sphinx सर्च इंजन स्थापित किया, जिसमें मैंने अपनी साइट से अपने द्वारा डाउनलोड किए गए टारबॉल को रखा:

/home/sphinx

निर्देशिका। मैंने उस तारकोल को रखने के लिए स्फिंक्स डायरेक्टरी बनाई। फिर मैंने ये कमांडें चलाईं:

tar xvzf sphinx-0.9.8.1.tar.gz
cd sphinx-0.9.8.1/
./configure --with-mysql-includes=/usr/include/mysql --with-mysql-libs=/usr/lib/mysql

और फिर ये:

make
sudo make install

अब मेरे पास निर्देशिका में बहुत सारी फाइलें हैं, जहां मैंने इन कमांडों को चलाया। यह मेरा Spynx स्थापना है या यह कहीं और स्थापित किया है?

अगर आप प्रोग्राम में कहीं भी इंस्टॉलर (.exe फ़ाइल) चलाते हैं, तो प्रोग्राम अभी भी आपके C: \ Program Files डायरेक्टरी में इंस्टॉल होगा। क्या कुछ ऐसा ही लिनक्स पर भी लागू होता है, जहां सभी प्रोग्राम केंद्रीय स्थान पर स्थापित होते हैं, या आप सिस्टम पर कहीं भी प्रोग्राम इंस्टॉल कर सकते हैं।

प्रशन

  1. मैं अपने सभी स्थापित कार्यक्रमों को एक स्थान पर रखना पसंद करूंगा, ताकि सर्वश्रेष्ठ अभ्यास के संदर्भ में इसके लिए सही जगह क्या हो। दूसरे शब्दों में, लिनक्स C: \ Program Files के समतुल्य है?

  2. और कोई हमेशा इस स्थान पर कैसे स्थापित होता है, क्या यह सिर्फ टारबॉल रखने और इस स्थान से इंस्टॉल कमांड चलाने की बात है?

  3. अगर मैं एक पैकेज को स्थापित करने के लिए sudo apt-get का उपयोग करता हूं तो क्या होगा। मैं इस स्थान को इंगित करने के लिए कैसे कह सकता हूं कि वहां हमेशा स्थापित होने के लिए?

जवाबों:


15

क्या कुछ समान लिनक्स पर लागू होता है जहां सभी कार्यक्रम एक केंद्रीय स्थान पर स्थापित होते हैं

लगभग विंडोज के समकक्ष लिनक्स में निर्देशिका स्थापित

  • \Windows = /bin
  • \Windows\System32= /libऔर/sbin
  • \Program Files= /usr/binऔर/usr/lib

मैं अपने सभी स्थापित कार्यक्रमों को एक स्थान पर रखना पसंद करूंगा, ताकि सर्वश्रेष्ठ अभ्यास के संदर्भ में इसके लिए सही जगह क्या हो। दूसरे शब्दों में, लिनक्स C: \ Program Files के समतुल्य है?

यह /usrविशेष रूप से /usr/binऔर के तहत निर्देशिका होगी /usr/lib

और कोई हमेशा इस स्थान पर कैसे स्थापित होता है, क्या यह सिर्फ टारबॉल रखने और इस स्थान से इंस्टॉल कमांड चलाने की बात है?

  • नहीं। जब आप इंस्टॉल कमांड चलाते हैं तो आप लगभग कभी भी मायने नहीं रखते।

  • आपके द्वारा स्थापित apt-get(या aptitude) प्रोग्राम लगभग हमेशा उचित रूप से समाप्त होंगे /usr। लेकिन कार्यक्रमों आप स्रोत से संकलन और make installअधिक बार में खत्म हो जाएगा /usr/local/bin, /usr/local/lib, आदि, और आप उस के साथ समस्या हो सकती है के बाद से Debian / Ubuntu में उपयोगकर्ता द्वारा इंस्टॉल किए मार्ग है /usrऔर नहीं /usr/local

  • स्रोत से संकलन करते समय, इस स्विच को कॉन्फ़िगर करने के लिए जोड़ें ./configure --prefix=/usr:। इस तरह जब आप make installफ़ाइलें सही निर्देशिका में समाप्त हो जाएगा

  • checkinstallप्रोग्राम में भी देखें , जो स्रोत इंस्टाल से संकलित फाइलों का ट्रैक रखता है, एक डिबेट फाइल बनाता है, और आसान स्थापना रद्द / पुनर्स्थापना की अनुमति देता है।

अगर मैं एक पैकेज को स्थापित करने के लिए sudo apt-get का उपयोग करता हूं तो क्या होगा। मैं इस स्थान को इंगित करने के लिए कैसे कह सकता हूं कि वहां हमेशा स्थापित होने के लिए?

apt-get/ dpkgइसका ख्याल अपने आप रखें। आप dpkg -L name-of-packageएक पैकेज द्वारा स्थापित सभी फाइलों को देखने के लिए उपयोग कर सकते हैं और जहां वे स्थापित किए गए थे।


विस्तृत जवाब के लिए धन्यवाद, सिर्फ एक सवाल। चूँकि आपने "नहीं। आप कहाँ हैं जब आप इंस्टॉल कमांड चलाते हैं। यह लगभग कभी मायने नहीं रखता है।", इसका मतलब यह है कि अब मैंने प्रोग्राम स्थापित किया है जो मैं Sphinx फ़ोल्डर को / home / sphinx / में सुरक्षित रूप से हटा सकता हूं या जिसे मैंने tarball से निकाला है। और स्थापित किया और कमांड बनाया? क्या यह अब एक इंस्टॉलर के बराबर है जिसे मैं पहले से ही प्रोग्राम इंस्टॉल करने के लिए दौड़ा रहा हूं और अब इसका कोई उपयोग नहीं है?
जाकेरॉव्हज

1
हां, आप टारबॉल से निकाले गए फ़ोल्डर को हटा सकते हैं - यह अनिवार्य रूप से एक "अस्थायी" फ़ोल्डर की तरह है जिसे इंस्टॉलर को निकाला गया था और अब बेकार है। यह एक महान प्रश्न था, मैं इस जानकारी को शामिल करने के लिए उत्तर को संपादित करूंगा।
ish

आप कर सकते हैं, लेकिन तब आपको उन्हें 'अनइंस्टॉल' करने के साथ अनइंस्टॉल करने में समस्या होगी। डेबियन / उबंटू में आपको अपने सॉफ़्टवेयर को कभी भी उपसर्ग / या / usr में स्थापित नहीं करना चाहिए, आपको उपयोग करना चाहिए / usr / स्थानीय। क्यों, क्योंकि / usr / स्थानीय स्थानीय प्रशासकों के लिए बनाया गया है, कि आप JakeRow123 हैं, अपने स्वयं के कार्यक्रमों को स्थापित करने के लिए। / / / usr केवल डेबियन पैकेज के लिए है। यदि आप वहां स्थापित करते हैं, तो मंत्र बड़े हैं कि आपको समस्याएं मिलेंगी। इसलिए जब आप स्वयं को संकलित करते हैं तो कमांड कॉन्फ़िगर करने के लिए स्विच '--prefix = / usr / लोकल' का उपयोग करें। फिर बनाएँ; sudo make install 'आपको वहां प्रोग्राम इंस्टॉल करेगा।
एंडर्स

@ एंडर्स, make uninstallएक मानक विशेषता नहीं है और बहुत सारे प्रोग्राम स्रोतों में नहीं पाया जाता है। इसके अलावा, /usr/localअक्सर उबंटू के रास्ते में नहीं होता है और प्रोग्राम चलाने की कोशिश करने या संकलन (क्योंकि इसमें शामिल है /usr/local) की कोशिश करने पर समस्या हो सकती है ।
ईश

आपको गलत जगह पर सॉफ़्टवेयर स्थापित नहीं करना चाहिए, जैसे कि / usr के तहत और सही जगह पर नहीं जैसे / usr / स्थानीय। यदि कंप्यूटर / उपयोगकर्ताओं का वातावरण ठीक से सेट नहीं किया गया है, तो आपको PATH के साथ दोष को ठीक करना चाहिए। के तहत स्थापित / या usr आप मुसीबत में मिल जाएगा। इस पर मुझे विश्वास करो। वहां था और वो किया। यह कोई मज़ा नहीं था। बिल्कुल भी। कुछ प्रोग्राम, सभी ऑटोकॉन्फ़िग के साथ, जो आप कॉन्फ़िगर कमांड के साथ सेट करते हैं, उन्हें अनइंस्टॉल मिला। दूसरों के पास जो नहीं है वह सहायक नहीं है, और बग की सूचना दी जानी चाहिए ...
एंडर्स

4

आमतौर पर कार्यक्रम को एक शीर्ष निर्देशिका के तहत कुछ निर्देशिकाओं में स्थापित किया जाता है, जिसे उपसर्ग कहा जाता है । डायन उद्देश्य के लिए कौन शीर्ष निर्देशिका का उपयोग कर रहा है, कौन स्थापित कर रहा है, यह निर्भर करता है और सॉफ्टवेयर का प्रबंधन कौन करेगा।

उपसर्ग /usrका उपयोग आपके वितरण द्वारा पैक किया गया सॉफ़्टवेयर है। आपको किसी अन्य सॉफ़्टवेयर को वहां स्थापित नहीं करना चाहिए , क्योंकि वितरण द्वारा पैक किए गए सॉफ़्टवेयर को इंस्टॉल और अपग्रेड करते समय यह वितरण को भ्रमित करेगा । इसलिए कृपया अपना स्वयं का संकलित सॉफ़्टवेयर वहाँ स्थापित न करें। यह एक अच्छा विचार नहीं है, जब तक कि आप वास्तव में नहीं जानते कि आप क्या करते हैं। और जब तक आप एक डेबियन या Ubunut डेवलपर नहीं हैं, आप आमतौर पर नहीं करते हैं। मैं वैसे भी ऐसा नहीं करूंगा।

व्यावसायिक सॉफ्टवेयर के लिए, उपसर्ग /optका उपयोग किया जाता है। यह उनके लिए वितरण और स्थानीय प्रणाली प्रशासक के साथ कम से कम हस्तक्षेप करने के लिए आरक्षित है।

सॉफ़्टवेयर के लिए सिस्टम व्यवस्थापक सभी उपयोगकर्ताओं के लिए इंस्टॉल करता है, उपसर्ग /usr/localका उपयोग किया जाता है। वहाँ यह वाणिज्यिक या वितरण स्थापना दोनों से बाहर है और उनके साथ हस्तक्षेप नहीं करेगा। इसलिए एक सिस्टम प्रशासक के रूप में आप इसका उपयोग करते हैं (यदि आपके पास रूट विशेषाधिकार हैं तो आप सिस्टम एडमिनिस्ट्रेटर हैं)।

यदि आप अपने लिए एक सामान्य उपयोगकर्ता सॉफ़्टवेयर स्थापित कर रहे हैं, तो आप उपसर्ग निर्देशिका "या " के साथ --prefixविकल्प का उपयोग करके अपने घर निर्देशिका का उपयोग उपसर्ग के रूप में कर सकते हैं । जब मैं एक छात्र था, तो मैंने इसका इस्तेमाल किया था। :-)configure~/$HOME/

आमतौर पर सॉफ्टवेयर सही काम करते हैं जब आप सही मूल्य के साथ configureविकल्प के --prefixसाथ निष्पादित करते हैं और फिर make; make install

इनमें से किसी भी उपसर्ग के तहत, आप आमतौर पर इन निर्देशिकाओं को एक मानक स्थापना में पाते हैं।

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

उन निर्देशिकाओं में से अधिकांश का उपयोग सुरक्षा बढ़ाने के लिए लिखित संरक्षित फाइल सिस्टम के साथ किया जा सकता है। केवल एक जिसे उपयोगकर्ताओं को लिखने की आवश्यकता होती है वह है var/निर्देशिका। जब सॉफ़्टवेयर को इन निर्देशिकाओं को अपडेट किया जाता है तो स्पष्ट रूप से (?) को लेखन विशेषाधिकार प्राप्त करने की आवश्यकता होती है। यह स्थापना के दौरान लिखने के विशेषाधिकारों के साथ एक रिमाउंट के साथ किया जा सकता है और फिर स्थापना के बाद ही पढ़ा जा सकता है। लेकिन यह उन्नत है, और मैं इसे केवल उन्नत पैकेज प्रबंधन के उदाहरण के रूप में देता हूं।

वहाँ सीधे नीचे भी कुछ निर्देशिका हैं /(रूट निर्देशिका) जो किसी अन्य उपसर्ग तहत मौजूद नहीं है, की तरह /dev, /tmp, /procऔर /srv(सर्वर डेटा निर्देशिकाओं के लिए है, लेकिन वे के तहत आम तौर पर कर रहे हैं /var/libया /var/wwwऔर ऐसे ही निर्देशिका है, तो आप करने के लिए परिवर्तन विन्यास की जरूरत है इस निर्देशिका का उपयोग करें। मेरा सुझाव है कि जब आप एक सर्वर चला रहे हों तो आप ऐसा करें। केवल /var/मानक स्थापना का परीक्षण करने के लिए उपयोग करें )।

  1. लिनक्स एमएस विंडोज नहीं है। आपके द्वारा इंस्टॉल किए गए प्रोग्राम को रखने के लिए कई स्थान हैं। यह निर्भर करता है कि कौन स्थापित करता है और किसके लिए। इसे मेरी पोस्ट में पढ़ें सूचना। RedHat /usrDebian / Ubuntu उपयोग करता है /usr/local। अपने वितरण को जानें।
  2. अलग-अलग प्रोग्राम में अलग-अलग इंस्टॉलेशन मेथड होते हैं। --prefixका उपयोग कर कार्यक्रमों के लिए उपयोगी हैं configure। पता करने का सबसे अच्छा तरीका संभवतः README.txtफ़ाइल या ऐसा कुछ पढ़ना है, जो आपको संभवतः टार संग्रह में प्रदान किया गया है। टार आर्काइव को आपके होम डायरेक्टरी की तरह किसी भी स्थान पर निकाला जा सकता है। इंस्टॉलेशन चरण पूरा होने के बाद, आप निकाले गए टार आर्काइव को हटा सकते हैं, यदि आप स्टोरेज से कम हैं। लेकिन जब तक आप अपनी स्थापना का सही परीक्षण नहीं कर लेते हैं, तब तक ऐसा न करें।
  3. वितरण के साथ उचित स्थान पर स्थापित apt-getया aptitudeहमेशा स्थापित किए गए कार्यक्रम । आप उस जगह को बदल नहीं सकते।

2

जब आप सामान्य इंस्टॉल का उपयोग करके एक रिपॉजिटरी से प्रोग्राम इंस्टॉल करते हैं, तो यह सही जगह पर इंस्टॉल हो जाएगा, सही जगह पर कॉन्फ़िगरेशन फाइलें (कार्यात्मक रूप से विंडोज रजिस्ट्री के समान) बना देगा, और मेनू प्रविष्टियों को स्वचालित रूप से बनाएगा।

जब आप एक फ़ाइल डाउनलोड करते हैं (गैर-पसंदीदा, लेकिन अक्सर आवश्यक होता है जब ऐप रिपॉजिटरी में नहीं होता है), तो आपने जो सबसे पहला काम किया था, वह विंडोज पर अनज़िप के बराबर टार को चलाना था। यह उन फ़ाइलों को बनाता है जिन्हें आप सबसे अधिक संभावना देख रहे हैं।

फिर, जब आप रन बनाते हैं, तो यह आमतौर पर परिणामों को सही स्थान पर रखता है, शायद मेनू बना सकता है, लेकिन यह अन-टर्ड फ़ाइलों को मिटा नहीं देगा। आप ज्यादातर ऐसा कर सकते हैं, लेकिन हो सकता है कि आप उन्हें अस्थायी रूप से बचाना चाहें।

यहाँ डेबियन निर्देशिका संरचना पर एक दिलचस्प लेख है ।


अच्छा लेख, सिवाय इसके कि इसका कोई संदर्भ / usr / स्थानीय नहीं था जहां आप सिस्टम द्वारा स्थापित सॉफ़्टवेयर के साथ संघर्ष नहीं करने के लिए अपना सॉफ़्टवेयर स्थापित करते हैं और आप (जैसे Ubuntu) पैकेज वितरित करते हैं। आपको अपने सॉफ़्टवेयर को / या usr में स्थापित करने के लिए समस्याओं के बारे में पूछना है, समस्याओं को जो शायद केवल सॉलेन्स है, सिस्टम को फिर से स्क्रैच से स्थापित करना है ...
एंडर्स
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.