FreeBSD पोर्ट: मैं एक पोर्ट के लिए सभी निर्भरता, और उन निर्भरताओं के लिए सभी उपनिर्भरता कैसे देख सकता हूं?


9

मैं एक पोर्ट बनाने की कोशिश कर रहा हूं जो निर्भर करता है apache-ant

मैंने सोचा था कि मैं make build-depends-listइस बंदरगाह द्वारा अपेक्षित सभी निर्भरताओं को देखने के लिए दौड़ सकता हूं :

# make build-depends-list
/usr/ports/devel/apache-ant
/usr/ports/java/jdk16
/usr/ports/math/gmp

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

apache-ant-1.8.1 desktop-file-utils-0.15_2 gamin-0.1.10_4 gettext-0.18.1.1 gio-fam-backend-2.26.1 glib-2.26.1_1 gmp-5.0.1 inputproto-2.0 javavmwrapper-2.3.5 kbproto-1.0.4 libX11-1.3.3_1,1 libXau-1.0.5 libXdmcp-1.0.3 libXext-1.1.1,1 libXi-1.3,1 libXtst-1.1.0 libiconv-1.13.1_1 libpthread-stubs-0.3_3 libxcb-1.7 pcre-8.12 perl-5.10.1_3 pkg-config-0.25_1 python26-2.6.6 recordproto-1.14 unzip-6.0 xextproto-7.1.1 xproto

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

मैं एक पोर्ट के लिए सभी निर्भरताएं, और सभी उप-निर्भरताएं कैसे देख सकता हूं?

जवाबों:


17

आप बहुत करीब हैं। इसके बजाय यह प्रयास करें:

make all-depends-list

यह सभी निर्भरताओं के माध्यम से पुनरावृत्ति करेगा और उन्हें आपके लिए प्रिंट करेगा। विभिन्न बिल्ड परिदृश्यों का परीक्षण करने के लिए और वे निर्भरता सूची को कैसे प्रभावित करते हैं, जैसी चीजों की कोशिश करें:

make NOPORTDOCS=yes NOPORTEXAMPLES=yes all-depends-list

make WITHOUT_X11=yes all-depends-list

यहाँ निर्भरता प्रिंट लक्ष्यों का पूरा सेट है:

all-depends-list
build-depends-list
run-depends-list
package-depends-list
pretty-print-build-depends-list
pretty-print-run-depends-list

चीयर्स, ग्रेग


हाय ग्रेग, क्या आप जानते हैं कि निर्भरता प्रिंट लक्ष्य कहां प्रलेखित हैं? क्या कोई विशिष्ट आदमी फ़ाइल है? मेरे पास कोई सवाल नहीं है ... यह सिर्फ एक गहरी समझ के लिए है। धन्यवाद।

कोई बात नहीं। में वे प्रलेखित हैं man ports

1

आपको पुन: सभी उप-निर्भरताएँ भी प्राप्त करनी होंगी। शायद इसके लिए कुछ उपकरण पोर्ट-एमजीएमटी श्रेणी में हैं ...

मैं पोर्ट प्रबंधन के लिए पोर्टमास्टर (8) का उपयोग करता हूं । किसी पोर्ट को संकलित करने और स्थापित करने से पहले यह हमेशा (उप) निर्भरता को इकट्ठा करता है:

~> portmaster --show-work devel/apache-ant
===>>> Port directory: /usr/ports/devel/apache-ant
===>>> Starting check for all dependencies
===>>> Gathering dependency list for devel/apache-ant from ports

===>>> Installed converters/libiconv
===>>> Installed devel/gettext
===>>> NOT INSTALLED            devel/gmake
===>>> Installed devel/libcheck
...

1

अधिकांश निर्भरता सूचियों को एक नज़र में पार्स करना मुश्किल है। मैं हेल्मुट @charlieroot.de द्वारा इस रैपर स्क्रिप्ट का उपयोग करना पसंद करता हूं, क्योंकि यह ऊपर और नीचे दोनों निर्भरताओं के साथ एक अच्छी, नेस्टेड सूची प्रदर्शित करता है:

$ pkg_depends.pl ruby18-bdb-0.6.5_1
Package ruby18-bdb-0.6.5_1 depends on:
    db41-4.1.25_4
    ruby-1.8.7.248_5,1
Package ruby18-bdb-0.6.5_1 is required by:
    portupgrade-2.4.7,2

तर्कों के बिना इसे चलाना बहुत लंबी सूची का उत्पादन कर सकता है, क्योंकि यह सभी फाइलों के लिए सभी निर्भरता श्रृंखलाओं को दर्शाता है, इसलिए मैं आमतौर पर केवल एक विशेष पोर्ट के लिए इसे चलाने की सलाह देता हूं।


1

उन बंदरगाहों को सूचीबद्ध करना जिन पर निर्भर करता है:

pkg_info -rx "port-name"

उन बंदरगाहों को सूचीबद्ध करने के लिए जिनकी आवश्यकता है:

pkg_info -Rx "port-name"

- इस वेबसाइट से उत्तर: http://daemon-notes.com/tips (रॉस के लिए धन्यवाद)


जवाब देने के लिए धन्यवाद। हालाँकि, मुझे यह इंगित करने की आवश्यकता है कि pkg_*उपकरणों को हटा दिया गया था और उन्हें pkgng से
स्टीफन लासवर्स्की

आज्ञा काम करती है; pkgng में आपको केवल अंडरस्कोर निकालना होगा:pkg info -Rx 'port-name'
एरिक
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.