• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Problem mit apt-get upgrade [ geloest ]

ulimobil

Newbie
Hallo an alle,
ich bin ein Neuling in Sachen Linux und muss einen zentralen update-Server mit apt fuer unsere Arbeitsplatzrechner einrichten.
Das OS ist Suse 9.3 x_64 auf AMD Opteron Maschinen.
Ich habe die letzten Wochen damit verbracht dieses und diverse andere Foren durchzuarbeiten, um mich mit apt vertraut zu machen, aber es bleiben noch viele Unklarheiten. Ich hoffe ich finde hier etwas Hilfe und wenn es nur ein Verweis auf ein Posting ist, dass ich uebersehen habe.
Mein jetziger Stand mit apt ist Folgender:
habe mir - install-apt4suse.rpm - gezogen, mit rpm -Uhv install-apt4suse installiert und danach install-apt4suse aufgerufen. Alles lief problemlos ab.
Ich habe auch schon einige rpms mit apt-get install installiert und auch die mp3 -Funktionen in Suse 9.3 mit apt-get und wenigen einzelnen rpms nachinstalliert - funktioniert alles.
Nun aber die grosse Aufgabe update-Server:
Nach dem HOWTO von oc2pus - zentrales Update fuer verschieden PCs mit apt - habe ich meine lokalen Verzeichnisse angelegt und die apt.conf entsprechend angepasst. Ein- apt-get update - laeuft durch und ein nachfolgendes - apt-get upgrade --download-only -V - schreibt alle Daten in die richtigen Verzeichnisse.
So weit, so gut.
Leider weiss ich nun aber nicht mehr weiter, wie ich mit den lokal gespeicherten Dateien mein System upgraden kann, Eine Aenderung in der - sources.list - auf das lokale Verzeichnis - rpm file: home/... - funktioniert nicht.

Vorher hatte ich auch schon folgenden Versuch gestartert:
Ein lokales Verzeichnis angelegt und von dort einen Download der Dateien aus den apt-mirror der GWDG mit - weget -r --retr-symlinks ftp://ftp4.gwdg.de SuSE/9.3-x86_64/ - gestartet. Funktionert und die Dateien liegen in der selben Verzeichnisstruktur vor wie bei der GWDG. Dann die Pfade in - sources.list, basesystem.list und die security.list auf die lokalen Verzeichnisse gelegt. Leider kommt - apt-get ugrade - nicht damit zurecht.

Bei beiden Versuchen meldet mit apt-get upgrade -V damit
Reading Package Lists... Done
Building Dependency Tree... Done
0 upgraded, 0 newly installed, 0 removed and xxx not upgraded.

Danach habe ich das Posting: Offline-Update mit Synaptic gefunden.
Leider gibt es kein aptate fuer Suse 9.3 x_64.
Die nachinstallierten apt-rpms von jmorris haben nichts gebracht.
Damit faellt diese Moeglichkeit auch flach....

Hoffentlich hat jemand von euch eine Loesung.
Danke schon mal im voraus
ulimobil
 

oc2pus

Ultimate Guru
ulimobil schrieb:
...Leider gibt es kein aptate fuer Suse 9.3 x_64.
Die nachinstallierten apt-rpms von jmorris haben nichts gebracht.
Damit faellt diese Moeglichkeit auch flach....
Veto ;)

Das Paket apt4rpm ist ein noarch-Paket ==> du kannst es immer verwenden, es enthält nur bash-scripte und Dokumentationen...
In diesem Paket ist aptate enthalten, das benötigst du um einen apt-index zu erstellen für deinen Server, damit die Clients aus diesen apt-Verziechnissen lesen können.
 
OP
U

ulimobil

Newbie
Hallo oc2pus,

danke fuer die schnelle Antwort. Leider kannn ich erst heute antworten.
Ich habe mir apt4rpm geholt und installiert. Bevor ich aptate angepasst habe ist mir etwas aufgefallen ( erst nachdem ersten Posting von mir ), das ich mir mit meinen wenigen Linux-Kenntnissen nicht erklaeren kann. Die Dateien werden in die richtigen Verzeichnis geschrieben, aber an vielen Stellen wird der Dateiname falsch geschrieben. Es wird statt eines Unterstrichs (_) die Zeichjenfolge - %5f - geschrieben, zB.

Nach einem > apt-get update < steht in der /var/state/apt/lists-9.3/ zB.
ftp4.gwdg.de_pub_linux_suse_apt_SuSE_9.3-x86%5f64_base_pkglist.packman
statt
ftp4.gwdg.de_pub_linux_suse_apt_SuSE_9.3-x86_64_base_pkglist.packman

wenn ich mit > apt-get upgrade --download-only -V < die RPMs hole stehen sie in /var/cache/apt :
yast2-packager_2.11.41-0.1_x86%5f64.rpm
statt
yast2-packager_2.11.41-0.1_x86_64.rpm.

Ich weiss nicht woran das liegen kann. Ich moechte natuerlich nicht jedesmal ein Script ueber die gespeicherten Dateien laufen lassen (Scriptschreiben ist ebenfalls neu fuer mich ).

Mit diesen Dateinamen kommt > aptate < natuerlich nicht zurecht.

Vielleicht kennt jemand schnelle Abhilfe,
Vielen Dank fuer eure Bemuehungen
Ulimobil
 

oc2pus

Ultimate Guru
das ist so richtig, apt Speicher die Pakete im Cache mit "angepassten" Namen ab. Das Schema lautet:
paketname_version_arch.rpm, damit können auch Sonderzeichne in Paketnamen enthalten sein (libstdc++, OpenOffice_org-de, ...)

damit du den Cache nutzen kannst musst du dir einen "lokalen" Apt-Index erzeugen für diese Pakete. Oder du denkst darüber nach, diesen Cache auf einem NFS-Export für alle Rechner mit gleicher Distri-Version zu nutzen.
Dazu musst du nur in der apt.conf die entsprechenden Verzeichnisse einsetzen/bearbeiten.
 
OP
U

ulimobil

Newbie
Hi oc2pu,
das ging aber schnell, machst du das Hauptberuflich?
Also, die Situation ist folgende: Wir haben hier ein Cluster mit z,Zt. 80 Knotenrechnern ( Doppel-Opteron) und z.Zt. 20 Arbeitsplatz-PCs ( Doppel- bzw. Einzel-Opteron Rechner mit OS Suse 9.3. Damit nicht jeder Rechner ins Internet gehen muss sollen auf einem Knotenrecner die updates gespeichert werden. Alle anderen sollen sich dann von diesem Ort aus updaten.

Es ist schon mal gut zu wissen, das die Dateinamen nicht falsch sind.
Liege ich da richtig, wenn ich den Speicherort per NFS freigebe kann ich mir die Version mit > aptate < sparen?

Wenn nicht, muss ich leider sagen, das > aptate < genau die Dateinamen anmekert, die einen veraenderten Unterstrich im Namen haben.

Gruss ulimobil
 

oc2pus

Ultimate Guru
wenn du NFS einsetzt, sehen die Clients den cache so wie wenn er lokal wäre
==> schnelle einfache Lösung (nutze ich selber so)
==> kein aptate erforderlich (höchstens für eigene Pakete oder Pakete welche nicht im Cache stehen)

in der /etc/apt/apt.conf.d/apt.conf kannst du dann die Pfade deines NFS einstellen (im Beispiel /local ist meine Freigabe)
Code:
// Directory layout
Dir "/"
{
  // Location of the state dir
  State "local/state/apt/"
  {
     lists "lists-10.0/";
     xstatus "xstatus";
     userstatus "status.user";
     status "/local/status";
     cdroms "cdroms.list";
  };

  // Location of the cache dir
  Cache "local/cache/apt/" {
     archives "archives-10.0/";
     srcpkgcache "srcpkgcache-10.0.bin";
     pkgcache "pkgcache-10.0.bin";
  };

  // Config files
  Etc "etc/apt/" {
     sourcelist "sources.list";
     main "apt.conf";
     preferences "preferences";
  };

  // Locations of binaries
  Bin {
     methods "/usr/lib/apt/methods/";
     gzip "/bin/gzip";
     //dpkg "/usr/bin/dpkg";
     //dpkg-source "/usr/bin/dpkg-source";
     //dpkg-buildpackage "/usr/bin/dpkg-buildpackage"
     apt-get "/usr/bin/apt-get";
     apt-cache "/usr/bin/apt-cache";
  };
};

Du kannst dann sogar die gesamte apt-Konfig für alle Clients auf dem Server parken und rufst apt auf den Clients dann entsprechend auf: apt -c <configfile>
 
OP
U

ulimobil

Newbie
Hi oc2pus,
mit diesen Aenderungen aus ( Dein Posting - zentrale Update fuer verschieden PCs mit apt) in meiner apt.conf habe ich auch schon die Dateien in ein extra Verzeichnis gespeichert. Per NFS wird wohl der einfachste Weg sein, ich werde diesen Weg weitergehen.
Danke ulimobil
 
OP
U

ulimobil

Newbie
Hallo alle zusammen,

es scheint fuer mich doch schwieriger zu sein als ich erhoft habe. Ich habe jetzt mal entsprechende Versuche am heimischen Suse 9.3 probiert.
AMD i386, frische Installation, nur apt nachinstalliert.

Ich haben die Verzeichneispfade genauso gewaehlt wie im Beispiel von oc2pus, damit ich es nachvollziehen kann.
apt-get update -V schriebt in /local/state/apt/lists.9.3
apt-get upgrade -V speichert in /local/cache/apt/archives-9.3

Bevor ich bei apt-get upgrade -V mit Y antworten muss kommt der Hinweis:
Code:
175 upgraded, 0 newly installed, 0 removed and 34 not upgraded.
Need to get 505MB of archives.
After unpacking 171MB of additional disk space will be used.
Do you want to continue? [Y/n] Y
Get:1 ftp://ftp4.gwdg.de SuSE/9.3-i386/update glibc 2.3.4-23.4 [2874kB]
Das heisst doch, das 175 Dateien erneuert werden sollen, oder?

Dann am Ende:

Code:
Get:175 ftp://ftp4.gwdg.de SuSE/9.3-i386/base yast2-storage 2.11.31-1.1 [715kB]
Fetched 505MB in 37m54s (222kB/s)
Download complete and in download only mode

Demnach hat er alle Dateien, die upgegradet werden sollen gespeichert, aber wenn ich von /local upgraden will kommt die Meldung:
( habe apt.conf im Standard-Verzeichnis gelassen )

Code:
linux2:/etc/apt/apt.conf.d # apt-get -c apt.conf install -V
Reading Package Lists... Done
Building Dependency Tree... Done
0 upgraded, 0 newly installed, 0 removed and 0 not upgraded.
linux2:/etc/apt/apt.conf.d #

Was ist los, warum macht er kein upgrade ?
Was fehlt hier noch zum Update-server-Glueck??

Gruss ulimobil
 

oc2pus

Ultimate Guru
wenn du die apt.conf im Standardverzeichnis lässt, dann brauchst du keine -c Option.

und was soll "apt-get -c apt.conf install -V" tun?
du meinst bestimmt "apt upgrade".

Tip: gewöhne dir an das Wrapper-Script apt zu verwenden! Es kann alles was apt-get, apt-cache, apt-cdrom können PLUS weitere Optionen (--no-checksig, --force)
 
OP
U

ulimobil

Newbie
allo,
habe noch was vergessen:

im Posting vorher habe ich die Eintraege in der > sources.list < ausgeklammert, um sicher zu sein, das nicht auf ftp zugeriffen wird.

Jetzt habe ich die Eintraege wieder freigegeben, aber es funktionier auch nicht:

Code:
linux2:/etc/apt/apt.conf.d # apt-get -c apt.conf upgrade -V
Reading Package Lists... Done
Building Dependency Tree... Done
The following packages will be upgraded
   MozillaFirefox (1.0.1-17 => 1.5-0.1)
.
.
   zlib (1.2.2-5 => 1.2.2-5.4)
The following packages have been kept back
   amarok (1.2.2-5 => 1.3.8-1.guru.suse93)
.
.
   xine-lib (1.0-10 => 1.0-10.4)
175 upgraded, 0 newly installed, 0 removed and 34 not upgraded.
Need to get 0B/505MB of archives.
After unpacking 171MB of additional disk space will be used.
Do you want to continue? [Y/n] Y
Checking GPG signatures...
Unsigned /local/cache/apt/archives-9.3/OpenOffice%5forg-de_2.0.1-0.1_i586.rpm: s         ha1 md5 OK
Unsigned /local/cache/apt/archives-9.3/OpenOffice%5forg-kde_2.0.1-0.1_i586.rpm:          sha1 md5 OK
Unsigned /local/cache/apt/archives-9.3/OpenOffice%5forg_2.0.1-0.1_i586.rpm: sha1          md5 OK
E: Error(s) while checking package signatures:
3 unsigned package(s)
0 package(s) with unknown signatures
0 package(s) with illegal/corrupted signatures
E: Handler silently failed
linux2:/etc/apt/apt.conf.d #

Hier sieht man genau, das apt auf die lokalen verzeichnisse zugreift.

Die Frage bleibt Was fehlt, oder was mache ich noch falsch ?

Gruss ulimobil
 

oc2pus

Ultimate Guru
E: Error(s) while checking package signatures:
3 unsigned package(s)

grrrrrrrrr, das habe ich nun schon so oft erklärt ....
wenn Pakete KEINE Sigantur haben nimmt apt diese nur mit der Option --no-checksig an!

ansonsten weigert sich apt die gesamten Pakete zu installieren. Alles oder Nichts ist die apt-Parole ;)
 
OP
U

ulimobil

Newbie
Hi oc2pu,

dein grrrr ist berechtigt !!!!
Ich war mit dem letzten Posting zu schnell und hatte deins noch nicht gelesen.

Mache gerade

Code:
inux2:/etc/apt/apt.conf.d # apt  upgrade --no-checksig -V
Reading Package Lists... Done
Building Dependency Tree... Done
The following packages will be upgraded
   MozillaFirefox (1.0.1-17 => 1.5-0.1)
.
.
175 upgraded, 0 newly installed, 0 removed and 34 not upgraded.
Need to get 0B/505MB of archives.
After unpacking 171MB of additional disk space will be used.
Do you want to continue? [Y/n] Y
Committing changes...
Preparing...                ########################################### [100%]
        installing package java-1_4_2-sun-1.4.2.10-2.1 needs 29MB on the / filesystem
        file /opt/kde3/lib/kde3/kcm_kvaio.so from install of kdeutils3-laptop-3.5.0-14 conflicts with file from package kdeutils3-3.4.0-7
.
.
weitere Conflicts
.
.
        installing package suselinux-adminguide_de-9.3-3.2 needs 13MB on the / filesystem
        installing package suselinux-userguide_de-9.3-3.2 needs 25MB on the / filesystem
        installing package sysvinit-2.85-38.4 needs 25MB on the / filesystem
        installing package wget-1.10-1.3 needs 25MB on the / filesystem
.
.
        installing package yast2-storage-2.11.31-1.1 needs 321MB on the / filesystem
E: Error while running transaction
E: Handler silently failed
linux2:/etc/apt/apt.conf.d #

Sieht schon etwas besser aus, oder?
Gruss ulimobil
 

oc2pus

Ultimate Guru
jaa :)

der erste Fehler ist durch die Deinstallation der kdeutils zu lösen (Dateien verschoben innerhalb zweier Pakete)

ansonsten sieht es so aus als ob du zuviel installieren willst und keinen Platz hast auf deiner root-Partition ...
dann solltest du partiell updaten in kleinen Paktegruppen bei dieser Menge.
 
OP
U

ulimobil

Newbie
hi oc2pus,

mir scheint du hast einen 24 Std Tag plus Nacht.

Danke für die Tipps. Mit dem Platz auf root kann hinkommen, da die Suse in einer VMWare läuft. Ich werde morgen oder in den nächsten Tagen deine Ratschläge am Opteron-PC testen und dann Stück für Stück versuchen die Konflikte der Dateien zu lösen, es waren noch viel mehr als oben angezeigt.
Aber auf dem x64 werden diese sicherlich auch anders sein und nur dort ist die Lösung erstmal wichtig.

Linux ist sicherlich ein gutes OS und mir gefällt es, aber es fällt mir noch sehr schwer damit umzugehen. Bin erst seit Sommer dabei, und das Wasser, in das ich freiwillig gesprungen bin ist eisig . . :)

Ich werde sicherlich noch einige nervende Frage an euch haben . . .

Nochmal Danke
ulimobil
 
Oben