====== FreeBSD - PortMaster ====== [[https://docs.freebsd.org/de/books/handbook/ports/]] ===== Vorbereitungen ===== * [[https://docs.freebsd.org/en/books/handbook/ports/]] * [[::freebsd:FreeBSD - PKG]] * [[::freebsd:FreeBSD - Update]] * [[::freebsd:FreeBSD - Upgrade]] * [[::freebsd:FreeBSD - Ports-Tree]] * [[::freebsd:FreeBSD - PortUpgrade]] ===== Installation ===== * [[http://www.freebsd.org/doc/de/books/handbook/ports-using.html]] //PortMaster// verwendet nur Werkzeuge, die bereits im Basissystem vorhanden sind (ist also nicht von weiteren Ports abhängig). Es verwendet Informationen in ''/var/db/pkg/'', um festzustellen, welche Ports aktualisiert werden sollen. Damit ist es weiterhin möglich Pakete mit //make install// zu installieren. > cd /usr/ports/ports-mgmt/portmaster > make install clean einen Port (Bash) installieren: > portmaster shells/bash einen Port (Bash) installieren und gleichzeitig auch als Paket (für andere Hosts) ablegen: > portmaster -g shells/bash > ls -lha /usr/ports/packages/ total 10 drwxr-xr-x 3 root wheel 3B Mar 3 21:35 . drwxr-xr-x 71 root wheel 89B Mar 2 00:09 .. drwxr-xr-x 2 root wheel 3B Mar 3 21:35 portmaster-download > ls -lha /usr/ports/packages/portmaster-download/ total 1502 drwxr-xr-x 2 root wheel 3B Mar 3 21:35 . drwxr-xr-x 3 root wheel 3B Mar 3 21:35 .. -rw-r--r-- 1 root wheel 1.5M Feb 3 02:18 bash-5.1.16.pkg zeigt alle installierten Ports an: > portmaster -L ===>>> Root ports (No dependencies, not depended on) ===>>> base64-1.5_2 ===>>> bsdhwmon-20151206 ===>>> New version available: bsdhwmon-20151206_1 ===>>> bsdinfo-0.22_2 ===>>> bsdstats-7.0_3 ===>>> cdparanoia-3.9.8_10 ... ===>>> zeroer-0.1_2 ===>>> 111 leaf ports ===>>> 630 total installed ports ===>>> 125 have new versions available aktualisiert alle installierten und veralteten Ports: > portmaster -a einen Port/Paket löschen, auch die danach nicht mehr benötigten Abhängigkeiten: > portmaster -e editors/nano bereinigt die veralteten Ports, die früher benötigt wurden aber jetzt nicht mehr: > portmaster -s Nur Distfiles abrufen: > portmaster -F überprüft die Abhängigkeiten: > portmaster --check-depends Checking all packages: 100% p5-DBD-Pg has a missing dependency: postgresql15-client p5-DBD-Pg is missing a required shared library: libpq.so.5 php81-pdo_pgsql has a missing dependency: postgresql15-client php81-pdo_pgsql is missing a required shared library: libpq.so.5 php81-pgsql has a missing dependency: postgresql15-client php81-pgsql is missing a required shared library: libpq.so.5 py39-psycopg2 has a missing dependency: postgresql15-client py39-psycopg2 is missing a required shared library: libpq.so.5 löscht alle veralteten Einträgen in ''/var/db/ports'': > portmaster --check-port-dbdir -y ===>>> Building list of installed port names ===>>> Checking /var/db/ports ===>>> archivers_7-zip does not seem to be installed ===>>> archivers_p7zip does not seem to be installed ===>>> archivers_rpm4 does not seem to be installed ===>>> archivers_unzip does not seem to be installed ... so wird immer ein ''make config'' vorher gemacht: > portmaster -aG wenn ein Fehler aufgetreten ist, kann man mit dem Schalter "''-f''" __alle__ installierten Ports neu (und aktuell) bauen: > portmaster -afG > portmaster -af **so mache ich das (Beispiele):** > portmaster -ybgtwR shells/bash-static editors/vim sysutils/screen misc/mc > portmaster -ybgtwRa ===== Extras ===== sauber machen: > portmaster ports-mgmt/portupgrade > portsclean -CDL ===== Problem ===== > pkg-static: Unable to access file /var/ports/usr/ports/lang/python27/work/stage/usr/local/lib/python2.7/lib-dynload/_hashlib.so:No such file or directory ==== Lösung ==== > /var/ports/usr/ports/ports-mgmt/pkg > make clean deinstall install > make clean > cd /ports/usr/ports/lang/python27/ > make makeplist > pkg-plist.2 > sdiff pkg-plist /tmp/pkg-plist | grep -F '<' > rm /tmp/pkg-plist > make clean > git pull > make clean deinstall install > make clean