Andere PACKAGESITE als default einstellen?

SolarCatcher

Well-Known Member
Ich habe jetzt zum x-ten Mal gesucht und wieder nix gefunden: Was wäre der richtige Ort, um eine andere als die voreingestellte PACKAGESITE als default einzustellen. Mache ich das über .profile oder über eine /usr/local/etc/pkgtools.conf?
 
Danke, Kamikaze, das kannte ich nicht. Allerdings bekomme ich es damit noch nicht richtig hin.

Also ich habe mal zum Test folgendes in /root/.login_conf geschrieben
Code:
me:\
        :setenv=PACKAGESITE=http://ftp1.de.freebsd.org/freebsd/ports/i386/packa
ges-8-stable/Latest/:

Wenn ich ich dann pkg_upgrade -an starte bekomme ich
Code:
fetch: http/INDEX: Invalid URL scheme

Auf dem Terminal dagegen klappt es aber hiermit:
Code:
#setenv PACKAGESITE http://ftp1.de.freebsd.org/freebsd/ports/i386/packa
ges-8-stable/Latest/
#pkg_upgrade -an

Was muss ich also in die .login_conf schreiben, damit dieser Wert korrekt übernommen wird?

[EDIT]Ich nehme an, dass das Problem beim Doppelpunkt in der .login_conf liegt, aber auch mit Anführungszeichen habe ich das nicht hinbekommen[/EDIT]
 
Last edited:
Aus- und wieder einloggen?

Habe ich immer schön brav gemacht. Das Problem ist nicht, dass das System die Änderung nicht animmt. Aber es schneidet halt alles ab dem Doppelpunkt nach http ab.

#printenv gibt daher
Code:
...
PACKAGESITE=http
...

Ich finde einfach nirgends ein Code-Beispiel, wo sowas wie eine URL in die .login_conf eingebaut ist. Ich hab's mit Anführungszeichen, mit Backslash probiert... aber das bringt nicht den gewünschten Erfolg.
 
Danke, Kamikaze, das kannte ich nicht. Allerdings bekomme ich es damit noch nicht richtig hin.

Also ich habe mal zum Test folgendes in /root/.login_conf geschrieben
Code:
me:\
        :setenv=PACKAGESITE=http://ftp1.de.freebsd.org/freebsd/ports/i386/packa
ges-8-stable/Latest/:
...

[EDIT]Ich nehme an, dass das Problem beim Doppelpunkt in der .login_conf liegt, aber auch mit Anführungszeichen habe ich das nicht hinbekommen[/EDIT]
Die Annahme ist Korrekt Doppelpunkte kannst du mit \c (wie colon) ersetzen. Also:
Code:
me:\
        :setenv=PACKAGESITE=http\c//ftp1.de.freebsd.org/freebsd/ports/i386/packages-8-stable/Latest/:

#cap_mkdb ~/.login.conf ausgeführt?
Das ist bei der ~/.login_conf (nicht ~/.login.conf) nicht notwendig.
 
Code:
me:\
        :setenv=PACKAGESITE=http\c//ftp1.de.freebsd.org/freebsd/ports/i386/packages-8-stable/Latest/:
Vielen Dank - das war's! Jetzt funktioniert's!


Das ist bei der ~/.login_conf (nicht ~/.login.conf) nicht notwendig.
Nach meinen diversen Tests kann ich sagen, dass das nicht ganz korrekt ist. Wenn man einmal cap_mkdb verwendet hat, gibt es eine ~/.login_conf.db Datei. Und wenn es die gibt, nutzen die pkg_tools die dort angegebenen Infos. Daher muss man dann diese Datei mit einem erneuten cap_mkdb aktualisieren; oder die db-Datei einfach löschen.
 
das trifft es nun nicht ganz genau, aber die Antwort, die ich mal auf eine ähnliche Anfrage erhielt sagt:
/usr/local/etc/pkgtools.conf
und zwar nämlich mit der PKG_SITES anstatt PACKAGESITE.

Beides kannst du natürlich global in der /etc/csh.cshrc oder /etc/profile für die jeweiligen shells setzen, oder eben lokal pro user im jeweiligen home-Verzeichnis und der betreffenden shell-konfiguration oder eben auch der .login....

Der Vorteil von PKG_SITES ist aber, dass dort nicht nur eine Quelle möglich ist.
Da kann eben die entsprechende Sektion der /usr/local/etc/pkgtools.conf genommen werden und dann eine Liste von gut erreichbaren Mirrors dort eingepflegt werden.
Deshalb finde ich das besser.
 
Beides kannst du natürlich global in der /etc/csh.cshrc oder /etc/profile für die jeweiligen shells setzen, oder eben lokal pro user im jeweiligen home-Verzeichnis und der betreffenden shell-konfiguration oder eben auch der .login....
Wenn Zentral für alle Benutzer dann doch in der /etc/login.conf, dann gilt es wenigstens für alle Shells.

Der Vorteil von PKG_SITES ist aber, dass dort nicht nur eine Quelle möglich ist.
Da kann eben die entsprechende Sektion der /usr/local/etc/pkgtools.conf genommen werden und dann eine Liste von gut erreichbaren Mirrors dort eingepflegt werden.
Deshalb finde ich das besser.
Aber die pkgtools.conf gehört zu portupgrade. Wenn du wie der OP pkg_upgrade verwendest, würde ich eher PACKAGESITE_MIRRORS setzen.
 
Das ist eigentlich gar kein so lockeres Thema, wie es auf den ersten Blick scheinen will. Vielleicht könnte man da mal eine Art Aufstellung machen, wer was braucht und woher nimmt oder welche Möglichkeiten es da gibt.

Das pkg_upgrade war mir tatsächlich entgangen, sonst hätte ich nämlich noch auf die /usr/local/etc/uma.conf (/usr/local/etc/uma.conf.sample) aufmerksam gemacht.

Weil ich gar nicht auf die Idee gekommen wäre, die Zuweisung von Variablen über die /etc/login.conf zu regeln, suchte ich da immer nach passenden Konfigurationsdateien für die einzelnen Tools oder nahm die Konfiguration für die shells.
Ob das Verhalten bei mir einfach falsch erlernt oder durch eine nie hinterfragte Regel begründet ist, weiß ich auch nicht. Da habe ich nie lange nachgedacht, für mich "gehört es sich so", dass eine Anwendung eine Konfigurationsdatei hat in der individuelle Einstellungen vorgenommen werden.

Nun weiß ich auch nicht, welche Reihenfolge da jeweils genommen wird und was tatsächlich empfehlenswert ist, um das Überschreiben und die eindeutige Zuweisung der Variablen zu gewährleisten.
Aber alleine eine entsprechende Auflistung für die portupgrade, portinstall, pkg_upgrade oder wie sie alle heißen und die ähnlich lautenden Variablen PACKAGEROOT PACKAGEROOT_MIRRORS PACKAGESITE PACKAGESITE_MIRRORS oder PKG_SITES, könnte vielleicht hilfreich sein.
 
Back
Top