FreeBSD Bağlantı Noktaları: Bir bağlantı noktasının tüm bağımlılıklarını ve bu bağımlılıkların tüm alt bağımlılıklarını nasıl görebilirim?


9

Ben bağlı bir liman inşa etmeye çalışıyorum apache-ant.

make build-depends-listBu bağlantı noktasının gerektirdiği tüm bağımlılıkları görmek için çalışabileceğimi düşündüm :

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

Ancak her şeyi yükledikten sonra, limanın bir mil uzunluğunda bir bağımlılık listesi vardı:

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

Bu bağımlılık listesi kaba bir sürpriz ve bir bağlantı noktası kurmadan önce bunu bilmek istiyorum.

Bir bağlantı noktasının tüm bağımlılıklarını ve tüm alt bağımlılıklarını nasıl görebilirim?

Yanıtlar:


17

Çok yakınsın. Bunun yerine şunu deneyin:

make all-depends-list

Bu, tüm bağımlılıkları ortadan kaldıracak ve sizin için basacaktır. Farklı derleme senaryolarını ve bunların bağımlılık listesini nasıl etkilediğini test etmek için aşağıdakileri deneyin:

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

make WITHOUT_X11=yes all-depends-list

İşte bağımlılık yazdırma hedeflerinin tamamı:

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

Şerefe, Greg


Merhaba Greg, bağımlılık yazdırma hedeflerinin nerede belgelendiğini biliyor musunuz? Belirli bir adam dosyası var mı? Bir sorum yok ... Sadece daha derin bir anlayış için. Teşekkürler.

Boşver. Bunlar belgelenmiştir man ports.

1

Tüm alt bağımlılıkları da tekrar tekrar almanız gerekir. Muhtemelen port-mgmt kategorisinde bunun için bazı araçlar var ...

Port yönetimi için portmaster (8) kullanıyorum . Bir bağlantı noktasını derlemeden ve kurmadan önce her zaman bağımlılıkları toplar:

~> 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

Çoğu bağımlılık listesinin bir bakışta ayrıştırılması zordur. Yukarı ve aşağı bağımlılıkları ile güzel, iç içe bir liste görüntüler, çünkü helmut@charlieroot.de tarafından bu sarmalayıcı komut dosyası kullanmayı tercih :

$ 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

Bağımsız değişkenler olmadan çalıştırmak çok uzun bir liste oluşturabilir, çünkü tüm dosyalar için tüm bağımlılık zincirlerini gösterir, bu yüzden genellikle yalnızca belirli bir bağlantı noktası için çalıştırmanızı öneririm.


1

Aşağıdakilere bağlı olan bağlantı noktalarını listelemek için:

pkg_info -rx "port-name"

Gereken bağlantı noktalarını listelemek için:

pkg_info -Rx "port-name"

- Bu web sitesinden cevap: http://daemon-notes.com/tips (Ross sayesinde)


Yanıt için teşekkürler. Ancak, pkg_*araçların kullanımdan kaldırıldığını ve pkgng
Stefan Lasiewski

Komut çalışır; pkgng sadece alt çizgi kaldırmak zorunda:pkg info -Rx 'port-name'
Eric
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.