Ports halbwegs komfortabel - brauche mal hilfe

meti

Member
Servus beinander,

ich arbeite mich gerade in FreeBSD ein. Und hab dabei ein paar Probleme. Hoffentlich kann mir da jemand helfen.

Mit den Ports komm ich nicht wirklich klar. Und daher hab ich noch kein FreeBSD als produktive Maschine laufen.
Gibts ne Möglichkeit das Ports System auch einigermassen komfortabel benutzen zu können?

So in etwa würde ich mir das vorstellen, wie es bei den Macports gelöst ist, incl automatischer Abhängigkeitenauflösung.
z.B. port install gewünschteSoftware

Ein zentraler Befehl, dann ne Anweisung und dann die entsprechende Software die bearbeitet werden soll. Auflösung von Abhängigkeiten erwarte ich vollkommen automatisch.

Gibts da Möglichkeiten/Tools die ich vielleicht bisher nicht gefunden habe oder die ich bisher einfach nicht gecheckt hab?
 
Hallo meti,

die Ports unter FreeBSD sind eine geordnete Sammlung von Make-Files und Patches. Die Vorgehensweise ist im Grunde immer gleich:
  • cd /usr/ports/<Kategorie>/<Anwendung>
  • make config
    Aufrufen einer GUI zur Konfiguration von Compiler-Einstellungen, eventuelle zusätzliche Bibliotheken oder Programme und Grundeinstellungen der Anwendung
  • make install
    Starten des Compiler-Laufs; dabei werde auch alle Abhängigkeiten automatisch gezogen und compiliert. Gegebenenfalls werden auch Konfigurationsparameter erfragt (siehe make config)
  • make clean
    Aufräumen
  • Die so erstellten Anwendungen werden in einer Datenbank im System registriert
  • Ports kannst Du hier finden: https://www.freebsd.org/ports/index.html
Ich hoffe das hilft dir ein wenig weiter.

Grüßle

Jürgen
 
Nun, die Frage ist inzwischen natürlich "Wieso eigentlich Ports?". Denn inzwischen scheint der Konsenz zu sein,dass man tunlichst Binärpakete mit 'pkg' nutzen sollte und die Ports nur noch für Anwendungen, die man aus verschiedenen Gründen selbst übersetzen möchte. Man bekommt einmal den Vorteil, dass Binärpakete wesentlich schneller zu installieren sind. Man muss sie halt nur herunterladen und nicht noch zusätzlich übersetzen. Außerdem hat pkg eine echte Verfolgung von Abhängigkeiten, was das Leben deutlich vereinfacht. Ein 'pkg upgrade' macht inzwischen eigentlich immer das Richtige, während man bei Ports früher oder später Probleme nachvollziehen und lösen muss.

Wenn du aber wirklich Ports nutzen willst, suchst du wahrscheinlich das Tool 'portmaster': http://www.freshports.org/ports-mgmt/portmaster/
 
Also, ich verwende langweilig starrsinnig fast nur ports (langweilig und starrsinnig make install clean) und bin zufrieden mit der Abhängigkeitsauflösung.

Aber darum geht's dem TE glaube ich nicht. Der scheint eher sowas wie setup.exe oder apt-get install zu suchen. Hamma ja bei FreeBSD . Heisst "pkg install". Kocht nachdem was ich so von Kollegen höre einwandfrei, jede Suppe schnell, lecker und mit allen nötigen Gewürzen und Zutaten.
 
OK, jetzt bin ich neugierig.

Yagami, Du erwähnst Binärpakete. Bisher ist doch aber die überall zu lesende und zu hörende Folklore das bei *BSD ein sinnvolles arbeiten eigentlich nur mit den Ports möglich wäre weil viel Software überhaupt nicht anders verfügbar sein soll. In den Büchern und sonstigen Lektüren zu FreeBSD stehts genau so immer wieder drin. Daher auch meine gezielte Frage nach den ports.

rmoe, ja ich wäre lieber auf der Schiene der Binärpakete wenn es sowas wie eine vernünftige Paketverwaltung unter FreeBSD geben würde. Also wie apt-get bzw. aptitude unter Debian. Davon hab ich bislang nur leider nix gehört bzw. sollen diese Ansätze noch nicht ausgereift sein.
 
Tja, meti, das ist halt das Problem mit "man hört", "jeder weiss doch" u.ä. - es ist meist wenig Fakt und viel Mist.

Also: ports tun nix anderes als packages bauen, also Binärpakete. Die Gründe warum manche (wie ich) lieber ports mögen sind unterschiedlich, drehen sich aber oft um zwei Punkte. a) man kann die software for sein System/CPU optimiert gebaut haben und b) man hat in aller Regel die configure Optionen der Originalsourcen, während die binary packages halt mit den default Optionen gebaut sind.
Mal ein aktuelles Beispiel, "evilvte", ein sehr hübscher, kleiner, sehr schlanker Terminalemulator. Wie willst du's bei sowas jedem recht machen? Was ist da "default"? Also selber bauen, weil man sich das Dingelchen dann genau so bauen kann, wie man's gerne hätte.

Du kannst also sehr wohl FreeBSD mit "apt-get install" haben, nur dass es bei FreeBSD halt "pkg install" heisst.

Und man kann - entgegen anderslautender Gerüchte - auch lustig wechseln zwischen pkg und ports. Solange man die ports mit den defaults baut oder aber genau weiss, was man tut. Das Pendant zu "apt-get update && apt-get upgrade" gibt's auch, aber ich weiss den Befehl nicht, weil ich's nicht verwende. Vermutlich "pkg update" oder so. Ein Blick ins ziemlich gute FreeBSD Handbuch bzw in "man pkg" sollte das aber in nullkommanix klären.
 
Bisher ist doch aber die überall zu lesende und zu hörende Folklore das bei *BSD ein sinnvolles arbeiten eigentlich nur mit den Ports möglich wäre weil viel Software überhaupt nicht anders verfügbar sein soll. In den Büchern und sonstigen Lektüren zu FreeBSD stehts genau so immer wieder drin. Daher auch meine gezielte Frage nach den ports.

Ich sag's mal so : Die Port's (bzw ihre Verwendung) wird einfach deshalb häufiger erwähnt (-als Binärpakete), weil's da Arbeit zu tun gibt, diese unterschiedlich erfolgen kann und es je nach zu intallierendes Programm unterschiedlich erfolgen braucht.

ich wäre lieber auf der Schiene der Binärpakete wenn es sowas wie eine vernünftige Paketverwaltung unter FreeBSD geben würde. Also wie apt-get bzw. aptitude unter Debian. Davon hab ich bislang nur leider nix gehört bzw. sollen diese Ansätze noch nicht ausgereift sein.
Doch, doch die sind schon ausgereift. Bin selber zwar kein typischer, versierter "Portbauer" (und auch nur zwei Mal bisher auf OpenBSD).

Dinge die sich nicht so verhalten wie sie sollten, werden unter Fachkundigen wohl häufiger debattiert. Warum sollte also etwas besprochen werden, das einfach zu bewerkstelligen ist und kaum Probleme bereitet?
In meinem über fünfhundert Seiten starken Buch über OpenBSD wird auch seitenlang die Verwendung von Ports erläutert, während pkg_add lediglich ein Absatz wert ist.

Wie rmoe eben gerade meinte, dient die Programminstallation per Ports der Möglichkeit, diese möglichst an das bestehende System oder persönlichen Vorstellungen anzupassen.
Für ein Grossteil - wenn nicht sogar überwiegender Anteil - BSD Nutzer sind denn auch genau solche Dinge einer der Hauptgründe welhalb die Wahl überhaupt auf ein BSD Derivat getroffen wurde.
Aber : Es geht natürlich auch anders - es geht auch einfacher.
Bis hin so einfach dass man zu Derivaten wie GhostBSD oder PC-BSD greifen kann bei denen man schon per default mit einer GUI begrüsst wird.

Aber es gibt auch den Mittelweg ein klassiches BSD zu installieren und dann eben auch jene Bequemlichkeiten zu nutzen, die zur Verfügung stehen.
Im Unterschied zu OpenBSD trifft dies für FreeBSD bei Programmen sogar auf die Aktualisierung zu.
Umgekehrt dafür für OpenBSD auf X Org welches man wahlweise inkl GUI installieren kann.

Alle vier klassischen, freien BSD Derivate haben ihre speziellen Vorzüge und Eigenheiten. Bei FreeBSD würde ich die PaketVerwaltung gar zu den Vorzügen rechnen.
 
meti schrieb:
Yagami, Du erwähnst Binärpakete. Bisher ist doch aber die überall zu lesende und zu hörende Folklore das bei *BSD ein sinnvolles arbeiten eigentlich nur mit den Ports möglich wäre weil viel Software überhaupt nicht anders verfügbar sein soll. In den Büchern und sonstigen Lektüren zu FreeBSD stehts genau so immer wieder drin. Daher auch meine gezielte Frage nach den ports.
Nun, bis vor inzwischen schon fast 3 Jahren galt das auch. Die alten pkg_install Pakettools hatten keine richtige Abhängigkeitsverfolgung und sahen Updates nur sehr eingeschränkt vor. Beides machte sie in der Praxis nahezu unbenutzbar, weshalb von ihnen meist abgeraten wäre. Inzwischen hat FreeBSD allerdings mit 'pkg' ein neues Binärpkatsystem, was sich auch vor den neueren Linux-Paketmanagern wie 'yum' oder 'zybber' nicht verstecken muss. Vor den älteren Systemen wie 'dpkg' mit seinen diversen Frontend ebenfalls nicht. In der Folge sind die meisten FreeBSDler dazu übergegangen, Binärpakete zu nutzen.
 
Ich mische mal hier mit, weil ich auch noch "gewisse" Schwierigkeiten mit der Aktualisierung von Packages und Ports habe. Ich nutze zwar überwiegend Binärpakete, aber manchmal ist es auch nötig etwas aus den Ports zu compilieren, z.B. weil es etwas nicht als Binärpaket gibt (gestern bei net-p2p/btsync erlebt), oder weil man andere Config-Optionen als den Default haben möchte (qt4-core mit GTK-Style, oder irgendwelche Linux-Müll (z.B. HAL) weglassen).

Unklar ist mir immer noch, wie man dabei mit den Aktualisierungen vorgeht. Yamagi hat zwar schonmal was dazu gesagt, aber so ganz habe ich das noch nicht verinnerlicht. Mein Verständnisproblem:

Ein "pkg update" aktualisiert mir auch die Pakete die ich wegen geänderter Optionen aus den Ports gebaut habe. Und zwar nicht nur wenn es eine neuere Version davon gibt, sondern auch bei unveränderter Version, wegen der geänderten Optionen. Das ist natürlich blöd wenn der immer meine Arbeit zunichte machen will. Yamagi hat empfohlen solche Pakete mit "pkg lock" zu sperren. Aber wie kriege ich dann mit dass es eine neuere Version gibt, die ich dann wieder aus den Ports bauen muss?

Und das zweite Problem: wie aktualisiere ich solche Pakete aus den Ports, ohne dass auch die abhängigen Pakete ebenfalls aus den Ports gebaut werden?

Kurz gesagt: was ich erreichen möchte ist: alles was binär installiert wurde soll auch binär aktualisiert werden, alles was aus der Source installiert wurde soll auch aus der Source aktualisiert werden. Wie geht man da vor?
 
Zurück
Oben