Wir haben eine Entwicklungsumgebung für FreeBSD 10.3. Ich habe gehört, dass FreeBSD Paketabhängigkeiten auf diese Weise verwaltet und immer nach der neuesten Version aller Pakete sucht, von der das Hauptpaket abhängt. Und es sieht aus wie wahr. Meine Fragen sind also:
- Ist das wahr? Gibt es offizielle Dokumente, die dies belegen?
- Der beste Weg, um dieses Problem zu überwinden?
package-management
freebsd
dependencies
Sergius
quelle
quelle
pkg lock
es und dann alles andere installieren, was Sie wollen.Antworten:
Wie FreeBSD Pakete erstellt
Das FreeBSD-Projekt wurde verwendet, um Pakete nur für Releases und gelegentlich für die STABLE-Zweige zu erstellen. Die alten Paketersteller verwendeten ein verteiltes System namens Portbuild. Es würde einen großen Cluster kleinerer 2 GB-4 GB-Computer verwenden, um Pakete zu erstellen. Dies war fehleranfällig und langsam, hauptsächlich aufgrund der älteren Maschinen. Ein vollständiger Build kann noch eine Woche dauern. Heutzutage werden Pakete mit Poudriere auf einzelnen großen Maschinen erstellt. (Von der Webseite von Brian Drewery ).
Siehe auch: So aktualisieren Sie eine Mischung aus Paketen und Ports unter FreeBSD
FreeBSD hat ein sich entwickelndes ABI (und API), ebenso wie Solaris und Windows, während Linux ein stabiles (stagnierendes?) ABI (und eine API) hat. Unter Linux werden alte Binärdateien weiterhin auf einer neueren Betriebssystemversion ausgeführt, während dies unter Nicht-Linux-Betriebssystemen nicht der Fall ist. t immer der Fall (manchmal ist es).
Mit
pkg lock
noch zu Kopfschmerzen führen , während es sperrt (bietet eine Warnung) , wenn Sie versuchen , ein Upgrade mitpkg upgrade
immer noch davon aus, dass mit höheren Nummern Versionen sind besser (wünschenswert) , und dass es etwas , was Sie tun wollen würden - so es die Erlaubnis fragt, und Sie können zulassen, aber es garantiert nicht, dass etwas anderes nicht kaputt geht. Siehe obige URL oder diese Diskussion: " Möchten Sie, dass FreeBSD Versionen von über pkg verteilten Binärpaketen für eine Betriebssystemversion sperrt? ".Wenn ein Paket manchmal gesperrt ist, müssen Sie die Erlaubnis geben, es zu entsperren und das Upgrade durchzuführen. Während dies für das eine Paket (und alle seine Abhängigkeiten) funktioniert , kann nicht garantiert werden, dass etwas anderes nicht mit den neuen Bibliotheken inkompatibel ist ( und benötigen daher auch ein Upgrade, falls eines derzeit verfügbar ist).
Brian Drewerys Blog: " FreeBSD Journal: Poudriere " meint:
Aber das Problem ...
So ...
Die Lösung:
Durch das Einrichten eines eigenen Repositorys mit poudriere haben Sie die Flexibilität von Ports und die einfache Verwaltung von Paketen.
quelle