pkg_add, portinstall, portmaster ?

gargamel

Well-Known Member
Hallo Leute,

kann das bitte jemand von euch auf einen Punkt bringen.

Soweit ich das verstanden habe ....

mittels
Code:
pkg_add -r Paketname
installiere ich auf jeden Fall ein Paket aus der Gegend von der definierten PACKAGESITE
Code:
portsnap fetch extract bzw. update
aktualisiere ic "nur" die Ports, die dann mittels zB. portsversion auf ihr Aktualität überprüft werden können.
Code:
portinstall -pP Programmname
installiert jetzt ein Programm wenn es geht aus einem Package (von der PACKAGESITE) oder wenn der Port aktueller ist, dann eben wird das Programm kompilliert

Ist das bis jetzt soweit richtig ?

1.) Wie kann ich zB. bei einer Installation sagen, dass er das Programm kompillieren darf, aber OHNE mich mit so einem nervigen Menü zu fragen. mittels der Option -y (yes to all Questions) geht das nicht, er geht trotzdem in das Kompillierungsmenü (wenn es von dem Programm so gemacht wurde)

2.) dieses pkg_add installiert das auch Abhängigkeiten mit ?

3.) Welche PACKAGESITE soll man eigentlich angeben ?
-->ftp://ftp.de.freebsd.org/pub/FreeBSD/ports/packages/
ODER
-->ftp://ftp.de.freebsd.org/pub/FreeBSD/ports/packages/i386/packages-8.0-release/Latest/ bzw. die spezielle Release bzw. stable usw. ....

lg Martin
 
pkg_add muss nicht zu einem entfernten Ort gehen, es kann auch lokal gespeicherte Pakete einbauen und dann natürlich dort keine weiteren Abhängigkeiten auflösen. Der Ort muss dann dem Kommando mitgegeben werden, es kann auch ein von den Umgebungsvariablen abweichender Ort im Netz genannt werden. Ich glaube aber (bin nicht ganz sicher), dass es dann auch Abhängigkeiten berücksichtigt, wenn die passenden Pakete gefunden werden.
Nach einem Portsnap fetch update sollten die Ports akutell sein. Also habe ich dann noch nie überprüft, ob sie es auch sind und vor dem Bau von (größeren) Programmen solltest du immer aktuallisieren.
portinstall verhält sich, wie du es beschreibst (ob es -P, -kP, -kfP oder so heißen soll, musst du halt wissen).
Ein guter Weg, die Konfiguration durchzuführen, ist die Kopie der /var/db/ports eines bereits installierten Systems. Hier stehen die Optionen und können so transportiert werden. Wenn sich die Optionen dann für neue Versionen ändern, nutzt einem das natürlich nicht mehr. Immer YES zu sagen, halte ich auch nicht für sinnvoll und habe das in der make.conf nicht ausprobiert.
Einen Weg, die Konfigurationen vorab zu durchlaufen, bietet portmaster, das auch moderner ist und dem vielleicht der Vorzug gegenüber portupgrade (portinstall) gegeben werden sollte. Portmaster hatte aber auch einen gravierenden Nachteil, als ich es mal probierte. Ich glaube, er stoppte einfach wenn einmal der Bau eines Ports misslungen war, während dann portupgrade weiter macht und am Ende eine Zusammenfassung der gescheiterten Ereignisse liefert.
Ein guter Weg, nur Pakete zu installieren und sauber Abhängigkeiten aufzulösen, ist pkg_upgrade(1) von Kamikaze und ich glaube, das gehört zu den bsdadmin-scripts (Schreibweise ungewiss, doch zum Suchen sollte das genügen). Bislang habe ich es nur unzureichend getestet, aber doch ein kleines System ausschließlich damit erweitert und keinerlei Problem bekommen.

Edit: vergessen: die Environment-Variablen mit dem Vorzugspfad von pkg_add -r können auch in der shell-Konfiguration erfolgen. Der Weg über Einträge in die /usr/local/etc/pkgtools.conf erscheint mir sinnvoller und besser; es kann dann auch eine Reihenfolge mit mehreren Servern als Auswahl festgelegt werden. ..../packages/Latest oder packages-N-stable sind sinnvolle Einträge und als Server sollten schnelle und aktuelle Spiegel in deiner Nähe genommen werden. Bei mir wäre das etwa France-5 und damit habe ich mehrfach Probleme gehabt, weshalb ich schließlich doch bei den Schweizern blieb. In Deutschland gibt es sicher gute Adressen, die vielleicht sogar besser verfügbar sind.
 
Zuletzt bearbeitet:
Hallo,

habe da mal eine Frage wie ich in Portmaster diese Kompillierungsmenüs ausschalten kann. Dass er mich nicht immer bei den diversen Programmen nach Einstellungen fragt und ich so und so zu 99% die Defaultwerte nehme.

Versuche:
Code:
BATCH=yes in der /etc/make.conf

Code:
portmaster -daP -m BATCH=yes -B --no-confirm

Code:
env BATCH=yes portmaster -daP -B --no-confirm

Code:
env BATCH=yes portmaster -daP -m BATCH=yes -B --no-confirm

nichts funktioniert, ich hoffe einer von euch kann mir da mal weiterhelfen

lg MArtin
 
BATCH=yes in der make.conf sollte gehen. Alle Ports bei denen das nicht funktioniert, kannst du als broken reporten.
 
Zurück
Oben