Portupgrade liest /etc/profiles und /etc/csh.cshrc nicht richtig aus???

cabriofahrer

Well-Known Member
Habe die o.g. Konfigurationsdateien so editiert, daß meine Pakete von den 7-stable Packages bezogen werden:

]$ more csh.cshrc
# $FreeBSD: src/etc/csh.cshrc,v 1.3.52.1 2008/11/25 02:59:29 kensmith Exp $
#
# System-wide .cshrc file for csh(1).
setenv PACKAGESITE ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-7-stable/Latest/
setenv PKG_SITES ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-7-stable/

und

[werner@elvis69 /etc]$ more profile
# $FreeBSD: src/etc/profile,v 1.14.26.1 2008/11/25 02:59:29 kensmith Exp $
#
# System-wide .profile file for sh(1).
#
# Uncomment this to give you the default 4.2 behavior, where disk
# information is shown in K-Blocks
# BLOCKSIZE=K; export BLOCKSIZE
#
# For the setting of languages and character sets please see
# login.conf(5) and in particular the charset and lang options.
# For full locales list check /usr/share/locale/*
# You should also read the setlocale(3) man page for information
# on how to achieve more precise control of locale settings.
#
# Read system messages
# msgs -f
# Allow terminal messages
# mesg y
PACKAGESITE=ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-7-stable/Latest/; export PACKAGESITE
PKG_SITES=ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-7-stable/Latest/; export PKG_SITES


Soweit so gut. Bei einem pkg_add -r funktioniert das auch:

[root@elvis69 /etc]# pkg_add -r lynx
Fetching ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-7-stable/Latest/lynx.tbz... Done.

Ein portupgrade -PP funktioniert jedoch nicht, weil portupgrade die Adresse falsch erkennt, es fehlt einfach ein slash. Wie ist das möglich?

fetch: ftp://ftp.freebsd.orgpub/FreeBSD/ports/i386/packages-7-stable/Latest/docbook-xsl.tgz: No address record
** The command returned a non-zero exit status: 1
** Failed to fetch ftp://ftp.freebsd.orgpub/FreeBSD/ports/i386/packages-7-stable/Latest/docbook-xsl.tgz
** Failed to fetch docbook-xsl
** Listing the failed packages (-:ignored / *:skipped / !:failed)
! docbook-xsl@ (fetch error)
** Could not find the latest version (1.74.0_1)
** No package available: textproc/docbook-xsl
 
Tut mir leid, aber ich weiß nicht, was Du mir damit sagen willst.
Es ist doch offensichtlich, daß portpgrade oder meinetwegen auch pkg_fetch die in den Konfigurationsdateien angegebenen Adressen nicht richtig liest.
Er macht "orgpub" anstatt "org/pub". Darin scheint der Fehler zu liegen, nur warum?
 
Was liest "pkg_add -r" und "portupgrade -PP" wenn in den Konfigurationsdateien nichts eingetragen ist?
Was liest "pkg_add -r" und "portupgrade -PP" wenn in den Konfigurationsdateien, statt "... ftp.freebsd.org ..." z. B. "... ftp.at.freebsd.org ..." eingetragen ist?
 
Ein portupgrade -PP funktioniert jedoch nicht, weil portupgrade die Adresse falsch erkennt, es fehlt einfach ein slash. Wie ist das möglich?
Das selbe habe ich erst vor ein paar Tagen als Bug (bisher ohne Reaktion) gemeldet.

Code:
PACKAGESITE=ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-7-stable/Latest/; export PACKAGESITE
PKG_SITES=ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-7-stable/Latest/; export PKG_SITES
PACKAGESITE solltest du IMHO gar nicht nehmen, weil das ein force ist und alles andere überschreibt.

Ansonsten sieht mein lokaler Fix so aus, dass ich halt ein zusätzliches "/" selbst einfüge:
Code:
PACKAGEROOT ftp://ftp.freebsd.org/; export PACKAGEROOT
PKG_SITES ftp://ftp.freebsd.org//pub/FreeBSD/ports/i386/packages-7-stable/; export PKG_SITES
 
Ansonsten sieht mein lokaler Fix so aus, dass ich halt ein zusätzliches "/" selbst einfüge:
Code:
PACKAGEROOT ftp://ftp.freebsd.org/; export PACKAGEROOT
PKG_SITES ftp://ftp.freebsd.org//pub/FreeBSD/ports/i386/packages-7-stable/; export PKG_SITES

Habe ich auch probiert, jedoch ohne Erfolg. pkg_fetch hat dann trotz der beiden slashes zwischen org und pub immernoch nach orgpub gesucht.
Komischerweise hat pkg_add -r org//pub gelesen, doch es hat funktioniert.

Mein Workaround: pkg_deinstall -rRf portupgrade, die Zeilen aus den Dateien profile und csh.cshrc mit # auskommentieren, Neustart, pkg_add -r portupgrade (kommt dann aus den 7.1-Release-Packages, # aus den Dateien wieder entfernen und dabei richtige Schreibweise (also org/pub), Neustart und jetzt geht's wieder.

Allerdings: In den Stable-Packages fehlen z.Zt. mal wieder die wichtigsten Metaports, wie gnome2, xorg, xfce4, kde, kde-lite, kde4...
Es läßt sich also auch deswegen kaum ein portupgrade nur mit Packages durchfürhren oder so etwas Wichtiges wie xorg oder irgendein Desktopenvironment mittles Paketen überhaupt installieren.
Das ist ja wohl echt ziemlich mies. Würde gerne wissen, wer für die Erstellung der Stable-Packages verantwortlich ist und ob man diesen Mißstand melden könnte.
 
Habe ich auch probiert, jedoch ohne Erfolg. pkg_fetch hat dann trotz der beiden slashes zwischen org und pub immernoch nach orgpub gesucht.
Die "csh.cshrc" auch entsprechend angepasst, und nach einem neuen Login überprüft das das auch korrekt gesetzt ist?

Allerdings: In den Stable-Packages fehlen z.Zt. mal wieder die wichtigsten Metaports, wie gnome2, xorg, xfce4, kde, kde-lite, kde4...
Auch wenn ich keines dieser Anwenungen benutz, ist das auch ein Grund PKG_SITES anstatt PACKAGESITE zu nehmen. PKG_SITES ist ja ein Hash wo man mehrere Server/Locations angeben kann. Als z.B. den für die normalen FreeBSD-Stable-Packages (Da hab ich aber auch schon 2/3 drin, weil die öfters unterschiedlich bestückt sind), und dann noch z.B: den für die Gnome2-Stable-Packages. Die werden dann nacheinander durchsucht ob es dort das Package gibt.

Sobald du PACKAGESITE gesetzt hast, was nur einen Server unterstützt, wird nur noch exclusiv dieser benutzt. Egal was du evtl. noch in PKG_SITES angegeben hast.

Ansonsten ist das tatsächlich ein "Problem" mit Stable-Packages, wenn man aktuell bleiben will/muss, dass man doch vieles selbst kompilieren muss. Selbst wenn es beim Stable-Server ein neueres Package geben könnte, könnte ja die Versionsnummer im Portstree vom letzten portsnap schon wieder noch neuer sein und der Server hat dies evtl. noch nicht gebaut.. Hier fehlen irgendwie zuverlässige Angaben, wann, auf welchen Zeitpunkt des Porttrees, die Stable-Packages gebaut werden.
 
Die "csh.cshrc" auch entsprechend angepasst, und nach einem neuen Login überprüft das das auch korrekt gesetzt ist?

Ja, nehme ich schon an. Wie gesagt, danach auch einen Neustart gemacht.

Ansonsten: Könntest Du mir Deine etc/csh.cshrc und Deine etc/profile mit den verschiedenen PKG_SITES posten?
Woher bekommt man überhaupt die verschiedenen Adressen mit Stable-Packages heraus?
 
@cabriofahrer:

Du kannst auch keine Einträge in die /etc/csh.cshrc und in die /etc/profile machen und statt dessen in die /usr/local/etc/pkgtools.conf, Folgendes (Server je nach dem wo Du wohnst) eintragen:

Code:
PKG_SITES = [
    sprintf('ftp://ftp.freebsd.ch//pub/FreeBSD/ports/i386/packages-7-stable/', OS_MAJOR),
    sprintf('ftp://ftp.at.freebsd.org//pub/FreeBSD/ports/i386/packages-7-stable/'),
    sprintf('ftp://ftp.de.freebsd.org//pub/FreeBSD/ports/i386/packages-7-stable/'),
    pkg_site_mirror(),
  ]

Danach ist ein Reboot erforderlich.
 
OK, vielen Dank! Alledrings gibt es unter den Adressen auch nicht die gewünschten Megaports...
Und nachdem ich soviel Ärger hatte, und ein portupgrade -PrRf auch nicht richtig geklappt, und mein X dann nur noch Mist gemacht hat, habe ich alles weggehauen und neu von meiner 7.1-Release DVD wieder aufgespielt. Jetzt habe ich wenigstens ein bestens funktionierendes System mit xorg7.3 und gnome2.22...
 
morromett schrieb:
Du kannst auch keine Einträge in die /etc/csh.cshrc und in die /etc/profile machen
Also ich kann das. Bin natürlich auch Admin meiner Server... Als ordinärer User kann man das natürlich auch in seiner .cshrc oder .profile machen.

morromett schrieb:
und statt dessen in die /usr/local/etc/pkgtools.conf, Folgendes (Server je nach dem wo Du wohnst) eintragen:
Die Server die man in der pkgtools.conf einträgt (oder nicht), werden um die Server aus der Umgebungsvariable $PKG_SITES ergänzt. Es funktioniert also beides.

Da "pkg_add -r" (pkg_fetch) aber nur die Env-Variable $PACKAGEROOT berücksicht, mach ich es halt auch gleich für portinstall/upgrade mit einer Env-Variable (portinstalll/pkg_fetch berücksichtigt diese Variable aber auch).

Allerdings sollte man sich beim benutzen der pkgtools eh abgewöhnen "pkg_add -r" zu nehmen. Statt dessen halt "portinstall -P" (wenn man alternativ das Neueste selber bauen will), oder "portinstall -PP" wenn man nur Packages benutzen will (dann könnte aber evtl. eine ältere Version installiert werden.).

cabriofahrer schrieb:
Alledrings gibt es unter den Adressen auch nicht die gewünschten Megaports...
Da könntest die diesen noch deiner PKG_SITES hinzufügen:
"http://www.marcuscom.com/tb/packages/7-STABLE-FreeBSD/"
 
Die Server die man in der pkgtools.conf einträgt (oder nicht), werden um die Server aus der Umgebungsvariable $PKG_SITES ergänzt. Es funktioniert also beides.

Ja, so steht es auch in der pkgtools.conf:
# PKG_SITES: array
#
# This is a list of URI's to get packages from. Each site directory
# must contain directories named 'All' and 'Latest'. The value of
# the environment variable `PKG_SITES' is automatically prepended to
# the list. (default: [pkg_site_mirror()])

Aber auch nur dann, wenn die Umgebungsvariable $PKG_SITES definiert ist;):
Code:
# echo $PKG_SITES
PKG_SITES: Undefined variable.
 
Aber auch nur dann, wenn die Umgebungsvariable $PKG_SITES definiert ist
Und eben darum ging es ja in diesem Thread. $PKG_SITES ist vom OP gesetzt (siehe sein erster Post, bzw. die Nachrage ob sie wirklich gesetzt ist), nur wird sie falsch für pkg_fetch übernommen.
 
Ich nutze auch die KSH und bei mir wird wohl das gleiche Problem auftreten wie hier beschrieben.

Funktioniert es mit einem Eintrag in die pkgtools.conf oder ist dieser Eintrag dann doch wieder verlinkt, so das der gleiche Fehler mit "fehlendem /" wieder auftritt?


Allerdings sollte man sich beim benutzen der pkgtools eh abgewöhnen "pkg_add -r" zu nehmen. Statt dessen halt "portinstall -P" (wenn man alternativ das Neueste selber bauen will), oder "portinstall -PP" wenn man nur Packages benutzen will (dann könnte aber evtl. eine ältere Version installiert werden.).

Warum sollte man sich denn abgewöhnen "pkg_add -r" zu nutzen und statt dessen "portinstall -PP" wo liegt da der unterschied?
 
Zurück
Oben