23 उपयोगी PKG कमांड उदाहरण FreeBSD में संकुल प्रबंधित करने के लिए


इस ट्यूटोरियल में हम बताएंगे कि FreeBSD प्री-संकलित बाइनरी पैकेज एप्लिकेशन को पोर्ट्स के माध्यम से PKG नामक पैकेज प्रबंधन टूल की सहायता से कैसे प्रबंधित करें। > सॉफ्टवेयर संग्रह भंडार।

पोर्ट्स रिपॉजिटरी स्रोत कोड से अनुप्रयोगों को संकलित करने के लिए आवश्यक उपकरण प्रदान करता है, उनकी निर्भरता के साथ, लेकिन पूर्व-संकलित पैकेजों का एक विशाल संग्रह भी रखता है, वर्तमान में 24.000 पैकेज से अधिक, जिसे pkg कमांड के साथ FreeBSD सिस्टम पर इंस्टॉल किया जा सकता है।

  1. FreeBSD 11.x Installation

FreeBSD में पोर्ट्स ट्री में एप्लिकेशन खोजें और खोजें

1। पोर्ट रिपॉजिटरी को फ्रीबीएसडी श्रेणियों में विभाजित किया गया है, प्रत्येक श्रेणी को /usr/पोर्ट/ फ़ाइल सिस्टम पथ में एक निर्देशिका द्वारा दर्शाया जा रहा है।

निर्देशिका की एक सरल लिस्टिंग /usr/पोर्ट/ सभी उपलब्ध श्रेणियों को प्रदर्शित करेगी जैसा कि नीचे स्क्रीनशॉट में दिखाया गया है।

# ls /usr/ports/

2। किसी श्रेणी से संबंधित सभी उपलब्ध अनुप्रयोगों को देखने के लिए, श्रेणी निर्देशिका के खिलाफ एक ls कमांड जारी करें।

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

# ls /usr/ports/databases/ | less

3। किसी श्रेणी में कितने पैकेज उपलब्ध हैं, यह देखने के लिए, श्रेणी निर्देशिका को सूचीबद्ध करें और परिणाम को wc कमांड के माध्यम से पाइप करें जैसा कि नीचे दिए गए उदाहरण में दिखाया गया है।

# ls /usr/ports/databases/ | wc -l

जैसा कि आप उपरोक्त स्क्रीनशॉट में देख सकते हैं, FreeBSD डेटाबेस श्रेणी में 1000 डेटाबेस पूर्व-संकलित पैकेजों से अधिक है।

4। यह देखने के लिए कि क्या कोई विशिष्ट एप्लिकेशन किसी श्रेणी में उपलब्ध है, फिर से, ls कमांड का उपयोग करें और कस्टम एप्लिकेशन की खोज करने के लिए grep उपयोगिता के माध्यम से परिणाम को फ़िल्टर करें।

नीचे दिए गए उदाहरणों में mongodb डेटाबेस उपलब्ध पैकेज और क्लैम एंटीवायरस सुरक्षा पैकेज की खोज करेंगे।

# ls /usr/ports/databases/ | grep mongodb
# ls /usr/ports/security/ | grep clam

जैसा कि आप देख सकते हैं, एक एप्लिकेशन के कई संस्करण FreeBSD पोर्ट्स में उपलब्ध हो सकते हैं।

5। अगर आपको पता नहीं है कि सॉफ्टवेयर किस श्रेणी का है, तो आप सॉफ्टवेयर श्रेणी खोजने के लिए दूसरे दृष्टिकोण का उपयोग कर सकते हैं। पूरे पोर्ट्स निर्देशिका ट्री के माध्यम से एक पैटर्न की खोज करने के लिए शेल ग्लोबिंग वाइल्डकार्ड <कोड> * चरित्र का उपयोग करें।

यह मानते हुए कि आप किस श्रेणी में mailx उपयोगिता के लिए सॉफ़्टवेयर पैकेज पा सकते हैं, आप निम्न कमांड चला सकते हैं।

# ls /usr/ports/*/*mailx

6। सॉफ़्टवेयर पैकेज और श्रेणी जिस पैकेज से संबंधित है, उसे खोजने के लिए एक और तरीका है, एक स्ट्रिंग पैटर्न के खिलाफ खोज कमांड का उपयोग करके।

खोज स्ट्रिंग करने से पहले, आपको निम्नलिखित कमांड के साथ डेटाबेस का पता लगाना चाहिए।

# /usr/libexec/locate.updatedb

7। आपके द्वारा डेटाबेस का अद्यतन करने के बाद, पैकेज के नाम से कीवर्ड पैटर्न का उपयोग करके एक विशिष्ट सॉफ़्टवेयर पैकेज की खोज करें। उदाहरण के लिए, यदि आप mailx उपयोगिता की खोज करना चाहते हैं, तो आप नीचे दिए गए आदेश को चला सकते हैं।

# locate mailx

जैसा कि आप देख सकते हैं, mailx उपयोगिता के लिए दो पैकेज उपलब्ध हैं, दोनों /usr/port/mail/ श्रेणी में स्थित हैं।

8। पता लगाने के आदेश के साथ एक पैकेज खोजने के समान, आप आवेदन की श्रेणी को देखने के लिए जहां आदेश का उपयोग कर सकते हैं।

# whereis mailx

FreeBSD में PKG कमांड के माध्यम से सॉफ्टवेयर खोजें

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

# pkg search package_name

10। यदि आप यह देखना चाहते हैं कि पैकेज किस श्रेणी का है, तो नीचे दिए उदाहरणों में चित्रण के अनुसार -o झंडे के साथ ऊपर दिए गए कमांड को चलाएं।

# pkg search -o package_name

FreeBSD में सॉफ़्टवेयर प्रबंधित करें

11। FreeBSD में पोर्ट रिपॉजिटरी से प्री-संकलित पैकेज स्थापित करने के लिए, नीचे दिए गए उदाहरण में सचित्र के रूप में pkg कमांड जारी करें।

# pkg install package_name

12। सिस्टम में एक विशिष्ट स्थापित पैकेज के बारे में जानकारी क्वेरी करने के लिए, नीचे दिए गए आदेश को जारी करें।

# pkg info package_name

13। pkg जानकारी कमांड स्विच संदेश को प्रदर्शित करेगा " कोई पैकेज (s) पैकेज_नाम मेल नहीं खा रहा है " यदि सॉफ्टवेयर पैकेज पहले से स्थापित नहीं है आपका सिस्टम, जैसा कि नीचे स्क्रीनशॉट में दिखाया गया है।

# pkg info tcpdump

14। FreeBSD में सभी इंस्टॉल किए गए सॉफ़्टवेयर पैकेजों को सूचीबद्ध करने के लिए, किसी भी विकल्प या स्विच के बिना pkg जानकारी कमांड निष्पादित करें।

pkg info कमांड के खिलाफ grep फ़िल्टर आपको दिखा सकता है कि सिस्टम में कुछ विशिष्ट पैकेज या एप्लिकेशन पहले से मौजूद हैं, जैसा कि नीचे दिए गए उदाहरण में दिखाया गया है।

# pkg info | grep ftp

15। सिस्टम से पैकेज निकालने के लिए, नीचे दिए गए आदेश जारी करें।

# pkg remove package_name
or
# pkg delete package_name

16। यदि आप किसी संस्थापित पैकेज के निष्कासन या संशोधन को रोकना चाहते हैं, तो आप नीचे दिए गए चित्र में दिखाए अनुसार pkg कमांड के लिए लॉक स्विच का उपयोग कर सकते हैं।

# pkg lock package_name

अनलॉक करें pkg कमांड स्विच आपको पैकेज प्रतिबंध को हटाने और पैकेज को संशोधित या अनइंस्टॉल करने की अनुमति देगा।

# pkg unlock package_name

17। यह पता लगाने के लिए कि कौन सा स्थापित पैकेज एक कमांड या एक निष्पादन योग्य फ़ाइल है, निम्न कमांड जारी करता है, जैसा कि नीचे स्क्रीनशॉट उदाहरणों में चित्रित किया गया है।

# pkg which /path/to/executable

18। सिस्टम पर पैकेज स्थापित किए बिना, स्थानीय रूप से पोर्ट रिपॉजिटरी से एक पैकेज डाउनलोड करने के लिए, के साथ pkg कमांड चलाएं। लाने के लिए स्विच करें।

डाउनलोड किया गया पैकेज बाइनरी, जो एक संपीड़ित .txz फ़ाइल है, /var/cache/pkg/ सिस्टम पथ में पाया जा सकता है।

# pkg fetch package_name
# ls /var/cache/pkg/ | grep package_name

19। यह जांचने के लिए कि क्या स्थापित पैकेज आम कमजोरियों के संपर्क में हैं या बग नीचे का आदेश जारी करते हैं।

# pkg audit -F

पुरानी कमजोरियों की एक सूची देखने के लिए जहां पहले के संस्करणों में सॉफ़्टवेयर पैकेज को प्रभावित करना नीचे दिए गए आदेश को जारी करता है।

# pkg audit package_name

नीचे सभी ज्ञात भेद्यताओं का एक अंश है जो कि Nginx वेब सर्वर में पाया जाता है, जिसे NBSD के लिए संकलित किया गया है।

# pkg audit nginx

सॉफ़्टवेयर की कमजोरियाँ ढूंढें

nginx is vulnerable:
Affected versions:
<= 0.8.41 : > 1.4.4,1
nginx -- Request line parsing vulnerability
CVE: CVE-2013-4547
WWW: https://vuxml.FreeBSD.org/freebsd/94b6264a-5140-11e3-8b22-f0def16c5c1b.html

nginx is vulnerable:
Affected versions:
< 1.0.15
nginx -- Buffer overflow in the ngx_http_mp4_module
CVE: CVE-2012-2089
WWW: https://vuxml.FreeBSD.org/freebsd/0c14dfa7-879e-11e1-a2a0-00500802d8f7.html

nginx is vulnerable:
Affected versions:
< 1.4.7
nginx -- SPDY heap buffer overflow
CVE: CVE-2014-0133
WWW: https://vuxml.FreeBSD.org/freebsd/fc28df92-b233-11e3-99ca-f0def16c5c1b.html
...

FreeBSD में पैकेज प्रबंधन उपयोगिता बनाए रखें

20। यह सुनिश्चित करने के लिए कि सॉफ़्टवेयर रिपॉजिटरी और आपके सभी इंस्टॉल किए गए पैकेज और नवीनतम संस्करणों या सुरक्षा पैच के साथ अद्यतित हैं, निम्न आदेश जारी करें।

# pkg update
# pkg upgrade

21। दूरस्थ रिपॉजिटरी और स्थानीय पैकेज के आँकड़े दिखाने के लिए, जैसे कि आपके सिस्टम में कितने पैकेज स्थापित हैं और इंस्टॉल किए गए सॉफ़्टवेयर द्वारा कितनी डिस्क स्पेस भरी गई है, निम्न कमांड को निष्पादित करें।

# pkg stats

22। सिस्टम में स्थापित संकुल द्वारा पीछे छोड़ दिए गए सभी निर्भरता को हटाने के लिए नीचे दिए गए आदेश जारी करें।

# pkg autoremove

23। दूरस्थ डाउनलोड पैकेज के लिए पैकेज प्रबंधन स्थानीय कैश निर्देशिका को स्वचालित रूप से मिटाने के लिए, नीचे दिए गए आदेश को चलाएं। आपको पहले स्थानीय रूप से डाउनलोड किए गए बाइनरी पैकेज की सूची को सत्यापित करना चाहिए।

# pkg clean -a -n  
# pkg clean -a -y

बस इतना ही! जैसा कि आप देख सकते हैं, फ्रीबीएसडी में एक प्रभावशाली पैकेज संग्रह प्रणाली है, जो लिनक्स वितरण जैसे कि यम, आरपीएम और एपीटी में उपयोग किए जाने वाले पैकेज प्रबंधन उपकरण के समान है, जिसमें बड़ी संख्या में पूर्व संकलित सॉफ्टवेयर बायनेरिज़ और एक सरल है प्रभावी कमांड लाइन, pkg, जिसका उपयोग सॉफ्टवेयर को सभ्य तरीके से प्रबंधित करने के लिए किया जा सकता है।