![]() |
|
|
|
#1 |
|
Registered User
Registrierungsdatum: Dec 2006
Beiträge: 187
|
Programme installieren
Moin,
ich habe mir FreeBSD 9 installiert, um es zu erlernen und auszuprobieren. Ich halte mich dabei an das deutsche Handbuch. Momentan häng ich an einem Verständnisproblem was di e Installation von Programmen betrifft. Laut Handbuch kann man entweder durch Ports installieren, oder durch fertige Pakete. Meine Ports habe ich mit csup aktualisiert gehabt, aber testweise anschließend noch mit portsnap fetch && portsnap extract && portsnap update. Wenn ich nun etwas bestimmtes suche, dann führe ich ein "whereis programmname" aus und wechsle in das entsprechende Verzeichnis in den Ports. Dort führe ich ein "make install clean" aus, das dauert dann natürlich entsprechend des Programmes da ja alles konfiguriert und kompiliert werden muss. Anschliessend mach ich noch ein "rehash", damit das neu installierte Programm in meiner shell auch auffindbar ist (wegen dem Pfad). Ich hoffe soweit habe ich alles richtig gemacht. Mein Wunsch: ich würde gerne Pakete installieren, ohne auf den langen Kompilierprozess waren zu müssen. Ich möchte pkg_cutleaves als Beispiel installieren. Ich habs mit "pkg_add -r pkg_cutleaves" versucht, aber das klappt wohl so nicht, denn ich krieg die Fehlermeldung: [quote Fetchinf ftp://ftp.freebsd.org/pub/FreeBSD/po..._cutleaves.tbz... Done. Fetching ftp://ftp.freebsd.org/pub/FreeBSD/po...l-5.12.4_3.tbz... Done. pkg_add: package 'perl-5.12.4_3' conflicts with perl-5.14.2_2 pkg_add: please use pkg_delete first to remove conflicting package(s) or -f to force installation pkg_add: pkg_add of dependency 'perl-5.12.4_3' failed! [/quote] Ich versteh was er mir sagt, aber ich versteh nich wieso es dazu kommt. Sollte er mich nicht fragen, ob er das abhängige Paket auch updaten sollte, um so das Programm pkg_cutleaves vollständig installieren zu können? Ist das Verhalten normal? Bitte nicht hauen, ich komm aus der Debian-Ecke (dpkg und apt-get) und daher bin ich noch etwas verwirrt ![]() Danke im Voraus. |
|
|
|
|
|
#2 |
|
Kaffeemann
Registrierungsdatum: Apr 2007
Beiträge: 1.185
|
Du vermischst mit dem pkg_add Pakete und Ports. Das kann gut gehen, das kann aber auch in die Hosen gehen. Die Ports installieren automatisch Abhängigkeiten, bei dir ist so zB perl bereits in einer aktuelleren Fassung installiert als pkg_cutleaves braucht.
Mein Vorschlag: Verwende NUR ports. pkg_cutleaves liegt iirc in ports-mgmt. Ans Herz legen möchte ich dir noch "portmaster", was ebenfalls dort liegt. Damit kannst du bequem deine installierten Ports aktuell halten. Die Pakete sind imho (!) einfach zu alt (ok, bei Debian stable auch) weshalb du dir die Zeit nehmen solltest. Irgendwann in absehbarer Zeit soll woll ein neues Paketsystem für FreeBSD kommen, damit "wird dann alles besser" ![]() HTH! Gruß |
|
|
|
|
|
#3 | |
|
Registered User
Registrierungsdatum: Dec 2006
Beiträge: 187
|
Also du meinst, ich sollte alle Programme die ich installiere mit "make install clena" aus den Ports installieren? Das würde bedeuten, dass wirklich jedes einzelne Programm erst kompiliert werden müsste, richtig? Das dauert ja ewig und vor allem bei GNOME, KDE oder Firefox und so würde das ja ewig dauern. Gibts keine Alternative? Auf Debian kompilier ich ja auch nicht, sondern ich nutze dessen Paketmanager 'dpkg' und installiere mir das Paket. Er erkennt welche Abhängigkeiten von Nöten sind, warnt mich und fragt mich wenn es wichtig ist.
Hmm... EDIT: Ah ich verstehe. Ich hab mir erstmal mit "make install clean" den portmanager installiert. Ich sag jetzt einfachhalber mal frech, dass der portmanager quasi eine Art Frontend für die Ports sei. Mit folgendem Befehl kann ich also das Programm "pkg_cutleaves" installieren. Der Portmanager erkennt dabei automatisch die Abhängigkeiten und installiert die notwendigen Pakete, die für pkg_cutleaves von Nöten wären. Ich setze also ab: Code:
Zitat:
Geändert von Sloop (29.08.2012 um 10:39 Uhr). |
|
|
|
|
|
|
#4 |
|
Lion King Fan
Registrierungsdatum: May 2004
Ort: Pride Rock
Beiträge: 1.328
|
Meinst du mit "FreeBSD 9" Stable, oder FreeBSD 9.0? Mit Stable, oder mit FreeBSD 9.1 RC-1 kannst du schon das "neue" package system tool "pkg" benutzen bzw. das bootstraping tool ist schon im Basissystem vorhanden. Andernfalls muesstes du es erst aus den ports installieren. Dir als Debian Nutzer wird das sicher eher liegen, da es repositories verwendet und im Prinzip die selben Faehigkeiten zur Aufloesung von komplexen Abhaengigkeiten und Updates der Pakete wie die klassischen Linux package manager bietet. Bedenke aber das es inkompatibel zu den klassischen pkg_* tools ist, weil es voellig neuentwicklung wurde, um auf die komplexer gewordenen Probleme der Paketverwaltung einzugehen. Ausserdem befindet es sich im Moment immernoch in der Testphase. Die offiziell erste Version wird wohl erst mit FreeBSD 1.0 erscheinen, aber nach meinen Erfahrungen ist es schon ziemlich ausgereift. pkg_cutleaves wird damit, nebenbei gesagt auch ueberfluessig.
![]() Dein Problem oben, ist wohl das du schon eine aktuellere Perl Version installiert hast als die gegen die die Pakete gebaut wurden. Deshalb versuchte er auch diese Version zu installieren, was natuerlich scheitert, da sie schon installiert ist. Das Phaenomen, das Ports beim zweiten mal erst "durchbauen" kann viele Ursachen haben. Manchmal kommt halt da was durcheinandern, besonders wenn man neu in dem System ist. Ein make clean loescht alle work Verzeichnisse und die evtl. falsch gebaut, oder gelinkt wurden. Deshalb kann es dann nach einem zweiten Lauf funktionieren.
__________________
HP: Simba - The Lion King |
|
|
|
|
|
#5 |
|
Registered User
Registrierungsdatum: Dec 2006
Beiträge: 187
|
öööhm, gute Frage nächste Frage
alsoCode:
FreeBSD 9.0-RELEASE Danke für deine ausführliche Erklärung. pkg scheint also in dem Falle wirklich all diese Probleme zu lösen, ich bin gespannt. |
|
|
|
|
|
#6 |
|
Registered User
Registrierungsdatum: Dec 2006
Beiträge: 187
|
@s-tlk: kannst du mir vllt. noch den Unterschied zwischen FreeBSD9 Stable und 9.0 erklären. Wie verhält sich das nun? und wie überprüfe ich, ob ich den von dir genannten neuen Paketnamanger nutzen kann oder nicht?
|
|
|
|
|
|
#7 |
|
FreeBSD User
|
FreeBSD-STABLE bezeichnet immer die letzte "Spitze" des 9er Zweiges von FreeBSD. Daraus wird dann jeweils zu einem bestimmten Zeitpunkt ein RELEASE erzeugt.
FreBSD 9.0-RELEASE ist dann die offiziell freigegebene Version 9.0. Hier einmal grafisch: ![]() |
|
|
|
|
|
#8 |
|
Registered User
Registrierungsdatum: Dec 2006
Beiträge: 187
|
Hab ich jetzt noch nicht wirklich begriffen wenn ich ganz ehrlich bin. Also ist FreeBSD 9.0-RELEASE undgleich FreeBSD-STABLE (aus heutiger und aktueller Sicht) ? Mein uname -a hat mir FreeBSD 9.0-RELEASE ausgespuckt. Was ist dann FreeBSD-Stable ? Ist es nicht dasselbe?
|
|
|
|
|
|
#9 |
|
FreeBSD User
|
Also: Die eigentliche Entwicklung und alle Neuerungen werden in CURRENT gemacht, der waagerechte Pfeil oben in der Grafik.
Von CURRENT wird dann zu einem Zeitpunkt X ein neuer Zweig erstellt, oben z.B. der 4er Zweig wird dann zum 4.0-RELEASE. An einem RELEASE wird nichts mehr geändert, von Patches für kritische Sicherheitslücken abgesehen. Neuigkeiten, die in CURRENT eingehen, werden dann, sofern möglich, auf die Zweige zurück portiert, ein sog. MFC = Merge From Current, jedoch _nicht_ mehr in ein RELEASE, sondern in STABLE. STABLE bezeichnet den neuesten Stand eines Zweiges, du hast in STABLE also i.d.R. neuere Treiber und Features als im vorherigen RELEASE. Zu einem Zeitpunkt y wird dann aus einem STABLE, nachdem es sich als stabil genug erwiesen hat, ein weiteres RELEASE, also dann z.B. 4.1. Die Grafik ist allerdings schon einige Jahre alt, heute sind wir bei 10-CURRENT und haben noch einen unterstützten 8er und 9er Zweig. |
|
|
|
|
|
#10 |
|
Registered User
Registrierungsdatum: Dec 2006
Beiträge: 187
|
vielen Dank für die ausführliche Erklärung und Veranschaulichung durch die Grafik.
|
|
|
|
|
|
#11 |
|
Registered User
Registrierungsdatum: Jul 2006
Beiträge: 1.611
|
es hat aber niemand bisher pkg_upgrade erwähnt.
portupgrade (portinstall) und portmaster sind sicher die klassischen Tools um Anwendungen aus den Ports zu installieren, aber wenigstens bei portinstall kann man sich auch ausschließlich auf Pakete beschränken. Sie den Auszug aus der man Code:
pkg_add und das neuere und elegantere pkg_upgrade sind ja für den Umgang mit Paketen geschaffen worden und meine eigenen Erfahrungen mit pkg_upgrade sind sehr gut. Es gibt nur eines, das mir gelegentlich Kopfzerbrechen bereitet: es fehlt die Option --keep going um trotzdem weiter zu machen, wenn etwas mal misslingt. Manche Pakete können schon mal Fehlerhaft sein oder werden falsch heruntergeladen und funktionieren erst im nächsten Versuch, wieso auch immer. Weil ich bereits mehrere FreeBSD Systeme habe, kenne ich meine Auswahl an installierten und gewünschten Paketen relativ gut und kann diese als ein Textfile ausgeben und dann über xargs an pkg_upgrade oder auch pkg_add weiterleiten und so mehr oder weniger das komplette System in einem Rutsch fix und fertig bekommen. Es geht also durchaus auch heute bereits, Systeme nahezu komplett aus Paketen zu installieren. Das hörte sich meiner Ansicht nach bisher leicht anders an. Das Problem, das du nun hast, kommt dadurch, dass du einiges aus den Ports genommen hast und dazu gibt es nicht die passenden Versionen in den Pakten. Du kannst das ignorieren (was niemand ernsthaft empfehlen wird) und einfach die Versionen kreuz und quer betreiben. Vieles wird trotzdem gut und richtig laufen und bei manchem kann oft einfach repariert werden. Gelegentlich kann das sogar der Ausweg der Wahl sein, wenn plötzlich ein Paket fehlt, das in einer älteren Version noch vorhanden war und nun nicht alles gleich aus Ports gebaut werden soll. Meiner Meinung nach lohnt sich ein solcher Versuch, aber man nennt das nicht umsonst ein unsauberes System. Willst du ein sauberes System, brauchst du entweder alles aus den Ports, oder alles aus den Paketen, damit deine Versionen stimmen. Du könntest also einfach deinstallieren, was du nun aus den Ports genommen hast und die Pakete dafür verwenden. Eine gute Wahl ist make config vor einem make install clean aus den Ports. Wenn es Optionen gibt, müssen die gesetzt werden. portmaster kann eine Art Kontroll-Lauf machen (habe ich mir notiert: portmaster -n -D --no-confirm) und mehr oder weniger alle aufgelösten Ports nach deren Optionen fragen. Damit kannst du vor dem eigentlichen Loslegen, diese schon mal bestimmen. Du kannst auch (durch einen Eintrag in der make.conf) alles auf YES stellen, was ich nicht sinnvoll finde, denn dafür will ich ja gerade die Optionen haben, um darüber bestimmen zu können.
__________________
“Two of the most famous products of Berkeley are LSD and Unix. I don’t think that this is a coincidence.” From: The UNIX-HATERS Handbook, ISBN 1-56884-203-1 |
|
|
|
![]() |
| Dieses Thema betrachten zurzeit 1 Personen. (0 registrierte Benutzer und 1 Gäste) | |
| Themen-Optionen | |
| Ansicht | Thema bewerten |
|
|
Ähnliche Themen
|
||||
| Thema | Erstellt von | Forum | Antworten | Letzter Beitrag |
| Probleme mit FTP am Router - kann keine Programme installieren | DonTermi | OpenBSD - Allgemein | 4 | 03.06.2009 12:32 |
| OpenBSD 4.2; Programme lassen sich nicht installieren | Columbo0815 | OpenBSD - Pakete und Anwendungen | 5 | 13.11.2007 09:01 |
| FreeBSD Samba PDC Howto | Highfish | Howtos | 103 | 25.09.2006 21:14 |
| Kann programme via ports nicht installieren | piotr | FreeBSD - Anwendungen und Ports | 2 | 24.03.2006 09:24 |
| Wie Programme aus /usr/src installieren? | marty | OpenBSD - Installation | 2 | 11.03.2006 14:40 |