Hi!
Ich bin jetzt einige Zeit mit FreeBSD am friemeln, habe aber immer noch diverse Fragen bzw. Dinge festgestellt, die mich doch immer wieder überlegen lassen doch noch einmal nach einem anderem System zu schauen. Ich schildere das einfach einmal, evtl. kann ja hier jemand das ein oder andere Problem davon lösen / mich wieder "beruhigen" :-)
1) Updatemöglichkeiten von FreeBSD. Mein Lieblingswutausbruchsthema.
a) klassische mit make install clean etc
Ich weiss nicht ob das mit make überall so ist, dass man ein Makefile hat was Kompilieroptionen "-WITH..." bla enthält. Aber es nervt doch schon wenn man dort oft nur einen Teil der wirklich verfügbaren Optionen des Ports findet. Gut, bei grossen Programmen mag das viel sein, aber so oft ändern sich diese Optionen dann nicht, dass man die einmal eingeben kann. Das ist aber nicht das richtige Problem.
Will man dann diese anderen Optionen nutzen muss man das file editieren, sonst kennt make diese nicht. Darauf muss man das Makefile des Ports auch noch in der refuse Datei setzen, damit nicht wieder alles beim alten ist nach einem cvsup. Daraus folgt, dass ich aber nicht die restlichen Änderungen des Makefile aktualisiert bekomme, wie download Pfade.
Meine Frage: Wieso kann ich nicht Kompilieroptionen angeben die dann direkt an ./configure durchgereicht werden, egal ob die im Makefile sind oder nicht?
b) portupgrade -> gibt es noch was anderes???
Das ist ja schon echt gut. Aber auch mit Nachteilen, die ich nicht abstellen konnte.
- bricht portupgrade bei der installation eines ports ab irgendwo bei den Abhängigkeiten, dann sind z.B bereits 3 Abhängigkeiten installiert, nicht aber der eigentliche Port den ich haben wollte. Ok, aber jetzt kann ich diese brachliegenden "unter"programme nicht automatisch wieder deinstallieren. Das geht nur wenn ich den Port komplett durchinstalliert habe. Also muss ich per Hand gucken mit pkg_info etc was da jetzt verweist rumliegt.
- man kann kein portupgrade per cron ausführen, egal wie.
Warum konnte mir bis heute keine Mensch auf der Erde beantworten. Es wird sogar noch besser. Portupgrade startet zwar fein und läuft auch erst, bricht dann aber ohne gescheite Fehlermeldung ab und die Ports die es updaten wollte sind dann immer GELÖSCHT. Extrem schlecht. Sicher ist automatisches updaten Geschmackssache, aber bei einigen ports würde ich das schon gerne machen weil die zu buggy sind und ich nicht die Zeit habe das immer von Hand zu machen.
- portupgrade lässt sich auch auf keine andere Weise von remote starten und entkoppeln. Heisst, sobald ich meine ssh session beende, bricht auch irgendwann portupgrade ab und genau wie bei cron start sind dann die zu updatenden Programme GELÖSCHT. Der einzige Weg einen Portupgrade Lauf sauber zum Ende zu bringen ist entweder mich direkt vor den Rechner an die Konsole zu setzen oder meine Remote seession nicht zu schließen bis es fertig ist. Klasse, ich muss also immer die mein ssh Fenster auflassen für evtl. Stunden oder zu dem Server laufen und es von da starten. Das kann es doch nicht sein.
Mit Screen soll es gehen, ich verstehe aber echt nicht wieso nicht ohne!
- portupgrade nimmt anscheinend bei der Option "-m" mit der man make Argumente überreichen kann nicht genau. Wenn ich mehrere -m flags nutze erscheint immer nur glaube das letzte im make Lauf, die anderen werde nicht übergeben. Also muss ich in das Portsverzeichnis und da mittels make deinstall && make -D bla bla bla install clean es selber machen. Auch nicht gerade so schön.
3) /usr/local/etc -> der Saustall schlechthin
Es scheint als ob jedes Programm dort sein Konfigdateien installieren kann wie es lustig ist. Da ist null Struktur drin, mal ist es ein file, mal 4. Mal heissen die sample files so, mal so, einige Ports installieren direkt ein Startskript in rc.d, einge legen da nur ein sample ab. Wieso wird nicht jedes file z.B mit ".sample" benannt und sobald es mehr als ein Konfig file gibt, dann wird direkt alles in einem Unterordner angelegt? Sowas gibt es z.B. bei debian meines Wissen nicht. Da wird das von denen vorgeschrieben. Finde ich gut :-)
4) kaputte Ports im Allgemeinen
Also ich habe doch echt einige Defekte Ports erlebt, ich würde fast sagen, das sind 10% die nicht ohne Probleme durchlaufen. Letztes Bsp. ist bei mir hier auf einem 4.8er und auf einem 5.1 System mldonkey-core wo da intern nen Skript gestartet wird was eigentständig ocaml-3.06 lädt aber nicht enpacken kann, und das obwohl als dependency bereits ocaml aus den ports (3.07) installiert ist, Ich kann aber nicht abschätzen ob das jetzt an Makefiles liegt oder an was anderem, da habe ich nicht genug Ahnung. Ich finde nur, dass es dort schon einiges an Problemen gibt.
Nun, ich will jetzt nicht sagen, dass alles "sch....." ist, es gibt ja auch sehr viel Gutes. Aber es die oben genannten Punkte ärgern mich fast täglich und ich verstehe einfach nicht wieso das so ist.
Mich würde da sehr interessieren ob es z.B eine Alternative zu portupgrade gibt und überhaupt jede Lösung zu einem der Probleme wäre toll. Oder wie ist es damit unter OpenBSD / NetBSD bestellt?
In diesem Sinne, frohe Weihnachten, auf das alles besser werde :-)
Gruß, incmc
Ich bin jetzt einige Zeit mit FreeBSD am friemeln, habe aber immer noch diverse Fragen bzw. Dinge festgestellt, die mich doch immer wieder überlegen lassen doch noch einmal nach einem anderem System zu schauen. Ich schildere das einfach einmal, evtl. kann ja hier jemand das ein oder andere Problem davon lösen / mich wieder "beruhigen" :-)
1) Updatemöglichkeiten von FreeBSD. Mein Lieblingswutausbruchsthema.
a) klassische mit make install clean etc
Ich weiss nicht ob das mit make überall so ist, dass man ein Makefile hat was Kompilieroptionen "-WITH..." bla enthält. Aber es nervt doch schon wenn man dort oft nur einen Teil der wirklich verfügbaren Optionen des Ports findet. Gut, bei grossen Programmen mag das viel sein, aber so oft ändern sich diese Optionen dann nicht, dass man die einmal eingeben kann. Das ist aber nicht das richtige Problem.
Will man dann diese anderen Optionen nutzen muss man das file editieren, sonst kennt make diese nicht. Darauf muss man das Makefile des Ports auch noch in der refuse Datei setzen, damit nicht wieder alles beim alten ist nach einem cvsup. Daraus folgt, dass ich aber nicht die restlichen Änderungen des Makefile aktualisiert bekomme, wie download Pfade.
Meine Frage: Wieso kann ich nicht Kompilieroptionen angeben die dann direkt an ./configure durchgereicht werden, egal ob die im Makefile sind oder nicht?
b) portupgrade -> gibt es noch was anderes???
Das ist ja schon echt gut. Aber auch mit Nachteilen, die ich nicht abstellen konnte.
- bricht portupgrade bei der installation eines ports ab irgendwo bei den Abhängigkeiten, dann sind z.B bereits 3 Abhängigkeiten installiert, nicht aber der eigentliche Port den ich haben wollte. Ok, aber jetzt kann ich diese brachliegenden "unter"programme nicht automatisch wieder deinstallieren. Das geht nur wenn ich den Port komplett durchinstalliert habe. Also muss ich per Hand gucken mit pkg_info etc was da jetzt verweist rumliegt.
- man kann kein portupgrade per cron ausführen, egal wie.
Warum konnte mir bis heute keine Mensch auf der Erde beantworten. Es wird sogar noch besser. Portupgrade startet zwar fein und läuft auch erst, bricht dann aber ohne gescheite Fehlermeldung ab und die Ports die es updaten wollte sind dann immer GELÖSCHT. Extrem schlecht. Sicher ist automatisches updaten Geschmackssache, aber bei einigen ports würde ich das schon gerne machen weil die zu buggy sind und ich nicht die Zeit habe das immer von Hand zu machen.
- portupgrade lässt sich auch auf keine andere Weise von remote starten und entkoppeln. Heisst, sobald ich meine ssh session beende, bricht auch irgendwann portupgrade ab und genau wie bei cron start sind dann die zu updatenden Programme GELÖSCHT. Der einzige Weg einen Portupgrade Lauf sauber zum Ende zu bringen ist entweder mich direkt vor den Rechner an die Konsole zu setzen oder meine Remote seession nicht zu schließen bis es fertig ist. Klasse, ich muss also immer die mein ssh Fenster auflassen für evtl. Stunden oder zu dem Server laufen und es von da starten. Das kann es doch nicht sein.
Mit Screen soll es gehen, ich verstehe aber echt nicht wieso nicht ohne!
- portupgrade nimmt anscheinend bei der Option "-m" mit der man make Argumente überreichen kann nicht genau. Wenn ich mehrere -m flags nutze erscheint immer nur glaube das letzte im make Lauf, die anderen werde nicht übergeben. Also muss ich in das Portsverzeichnis und da mittels make deinstall && make -D bla bla bla install clean es selber machen. Auch nicht gerade so schön.
3) /usr/local/etc -> der Saustall schlechthin
Es scheint als ob jedes Programm dort sein Konfigdateien installieren kann wie es lustig ist. Da ist null Struktur drin, mal ist es ein file, mal 4. Mal heissen die sample files so, mal so, einige Ports installieren direkt ein Startskript in rc.d, einge legen da nur ein sample ab. Wieso wird nicht jedes file z.B mit ".sample" benannt und sobald es mehr als ein Konfig file gibt, dann wird direkt alles in einem Unterordner angelegt? Sowas gibt es z.B. bei debian meines Wissen nicht. Da wird das von denen vorgeschrieben. Finde ich gut :-)
4) kaputte Ports im Allgemeinen
Also ich habe doch echt einige Defekte Ports erlebt, ich würde fast sagen, das sind 10% die nicht ohne Probleme durchlaufen. Letztes Bsp. ist bei mir hier auf einem 4.8er und auf einem 5.1 System mldonkey-core wo da intern nen Skript gestartet wird was eigentständig ocaml-3.06 lädt aber nicht enpacken kann, und das obwohl als dependency bereits ocaml aus den ports (3.07) installiert ist, Ich kann aber nicht abschätzen ob das jetzt an Makefiles liegt oder an was anderem, da habe ich nicht genug Ahnung. Ich finde nur, dass es dort schon einiges an Problemen gibt.
Nun, ich will jetzt nicht sagen, dass alles "sch....." ist, es gibt ja auch sehr viel Gutes. Aber es die oben genannten Punkte ärgern mich fast täglich und ich verstehe einfach nicht wieso das so ist.
Mich würde da sehr interessieren ob es z.B eine Alternative zu portupgrade gibt und überhaupt jede Lösung zu einem der Probleme wäre toll. Oder wie ist es damit unter OpenBSD / NetBSD bestellt?
In diesem Sinne, frohe Weihnachten, auf das alles besser werde :-)
Gruß, incmc