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

Offline-Update mit Synaptic?

calim

Newbie
Hallo!

Ich habe inzwischen Synaptic und Apt bei mir zum Laufen bekommen und so weit so gut. Leider bin ich in der Situation das ich mit meinem Computer nur über Modem am Netz hänge und das zu etwas längeren Ladezeiten führt :cry: . Aber glücklicherweise habe ich an der Uni ja einen dicken Draht und Brenner. Meine Frage ist nun ob ich mit Synaptic vielleicht ein Script oder eine Linkliste erstellen kann mit der ich dann zur Uni gehe, die Pakete herunterlade (unter W2k/XP), mit nachause nehme und dort mit Synaptic wieder installieren kann? (Ist es möglich die Pakete dort einfach in das Verzeichnis zu kopieren in dem Synaptic sowieso alle heruntergeladenen Pakete ablegt?) Meine bisherige Methode: Paket suchen,laden,Zuhause die Installation(mit Kpackage) probieren, neue Abhängigkeiten erfahren,wieder zur Uni,.... ist auf die Dauer etwas frustrierend.

Für Hinweise vielen Dank!

calim
 

oc2pus

Ultimate Guru
ja das geht ;)

Variante 1:
1.) erzeuge ein Verzeichnis /local/EigenePakete-9.1
2.) kopiere deine downloads dorthin, oder mount deine CD dorthin
3.) installiere apt4rpm
apt-get install apt4rpm
4.) editiere /etc/aptate.conf
Beispiel:
Code:
<?xml version='1.0' encoding="iso-8859-1"?>
<!DOCTYPE opt SYSTEM "/usr/share/apt4rpm/aptate.dtd">

<opt signed-pkgs-only="no">
  <topdir>/local</topdir>
  <sources-list-file>file:/local//ftp/pub/linux/suse/apt</sources-list-file>
  <sources-list-ftp>ftp://ftp.gwdg.de/pub/linux/suse/apt</sources-list-ftp>
  <sources-list-http>http://ftp.gwdg.de/pub/linux/suse/apt</sources-list-http>

  <distribution id="suse91">
    <name>SuSE</name>
    <version>9.1</version>
    <architecture>i386</architecture>

    <component>
      <name>EigenePakete-9.1</name>
      <url>EigenePakete-9.1</url>
    </component>
  </distribution>
</opt>

5.) in /etc/apt/sources.list fügst du ein:
Code:
rpm file:/local/apt SuSE/9.1-i386 EigenePakete-9.1

6.) aptate aufrufen
7.) apt-get update
8.) jetzt kennt apt deine "lokalen Pakete" und du kannst sie mit apt-get install installieren ;)

für jede neue CD (bzw Änderungen an deinem lokalen Repository musst du apt-get update aufrufen!
 
OP
C

calim

Newbie
Danke, werde ich mal ausprobieren.
Die bekomme ich aber die Liste der Pakete die ich benötige? Ich habe die Paketliste in Synaptic. Was fehlt ist eben das ich quasi dort meine gewünschten Pakete auswähle und ich irgendwie eine Liste rausbekomme in der die ganzen Pakete drinstehen (am besten mit Link zu den gwdg.de Dateien im Netz) die ich wirklich brauche, d.h. mit aufgelösten Abhängigkeiten.?
 

oc2pus

Ultimate Guru
calim schrieb:
Danke, werde ich mal ausprobieren.
Die bekomme ich aber die Liste der Pakete die ich benötige? Ich habe die Paketliste in Synaptic. Was fehlt ist eben das ich quasi dort meine gewünschten Pakete auswähle und ich irgendwie eine Liste rausbekomme in der die ganzen Pakete drinstehen (am besten mit Link zu den gwdg.de Dateien im Netz) die ich wirklich brauche, d.h. mit aufgelösten Abhängigkeiten.?

du kannst doch die "Dependencies" eines jeden Paketes abfragen
apt-cache depends <paket>
apt-cache showpkg <paket>

in synaptic, kann man das auch sehen: in der Lasche "hängt ab von"
 
OP
C

calim

Newbie
Werde ich mal nachschauen wenn ich wieder Zuhause bin. Vielleciht kann ich mir dann auch gleich eine Linkliste machen auf der ich in der Uni nur noch "Rechtsklick-->speichern unter" machen muß.

Danke!

calim :)
 

herbk

Member
Ich würde das so machen
in Synaptik einen Quellen-Pfad zu einem webserver im Netz legen und einen zu meinem eigenen Verzeichnis.
Zum nachsehen was aktuallisiert wurde, den eigenen Pfad aus und den Webpfad einschalten.
Online gehen und refresh klicken. Jetzt wird nachgesehen was es neueres gibt.
von der Liste notieren was ich möchte, in der Uni downloaden und ins eigene verzeichnis Kopieren
webserver aus-, eigenens Verzeichnis einschalten und installieren...
 

oc2pus

Ultimate Guru
HerbK schrieb:
Ich würde das so machen
in Synaptik einen Quellen-Pfad zu einem webserver im Netz legen und einen zu meinem eigenen Verzeichnis.
Zum nachsehen was aktuallisiert wurde, den eigenen Pfad aus und den Webpfad einschalten.
Online gehen und refresh klicken. Jetzt wird nachgesehen was es neueres gibt.
von der Liste notieren was ich möchte, in der Uni downloaden und ins eigene verzeichnis Kopieren
webserver aus-, eigenens Verzeichnis einschalten und installieren...

synaptic/apt kann nicht mal eben so einen eigenen Quellenpfad einlesen ;)

deshalb musst du erst die Meta-Informationen für apt-Repositories im state und cache Verzeichnis erstellen und genau das wird so gemacht, wie es in meinem Posting steht.
 

herbk

Member
synaptic/apt kann nicht mal eben so einen eigenen Quellenpfad einlesen
Deshalb habe ich ja auch geschrieben: ...legen
ich habe mir Pfade zu verschieden Webservern und mit verschiedenen Verzeichnisen gelegt und "schalte" je nach bedarf um...
 

tobi_318

Newbie
Hallo Leute, hallo oc2pus.
Da ich auch ständig an ein Windowsrechner muß wenn ich ins Internet möchte,
wäre es für mich auch wichtig diese offline Methode zu benutzen,
doch muß ich da was falsch verstehen, denn so geht sie nicht.
Ich habe apt und apt4rpm installiert
Mein Pfad für die lokalen Pakete ist:
/local/packages/SuSE/9.1-i386/pakete

meine aptate.conf :
<?xml version='1.0' encoding="iso-8859-1"?>
<!DOCTYPE opt SYSTEM "/usr/share/apt4rpm/aptate.dtd">

<opt signed-pkgs-only="no">
<topdir>/local</topdir>
<sources-list-file>file:/local//ftp/pub/linux/suse/apt</sources-list-file>
<sources-list-ftp>ftp://ftp.gwdg.de/pub/linux/suse/apt</sources-list-ftp>
<sources-list-http>http://ftp.gwdg.de/pub/linux/suse/apt</sources-list-http>

<distribution id="suse91">
<name>SuSE</name>
<version>9.1</version>
<architecture>i386</architecture>

<component>
<name>pakete</name>
<url>pakete</url>
</component>
</distribution>
</opt>

meine source.list:
rpm file:/local/packages SuSE/9.1-i386 pakete

Ich führe apt-get update durch:
apt-get update
Ignoriere file: SuSE/9.1-i386 release
Ignoriere file: SuSE/9.1-i386/pakete release
Lese Paketlisten... Fertig
Erzeuge Abhängigkeitsbaum... Fertig

Aber apt kann keine meiner Pakete finden
Wo liegt mein Fehler?

Edit: Ein Admin sollte das mal ins Apt Forum verschieben, wenn möglich.
 

oc2pus

Ultimate Guru
@tobi_318
hast du aptate aufgerufen ?

==> damit wird dein pakete-Verzeichnis indiziert und ist damit via apt (sources.list Eintrag file ...) verfügbar

bei JEDER Änderung an deinem lokalen Verzeichnis MUSST du aptate aufrufen.
 

tobi_318

Newbie
oc2pus schrieb:
hast du aptate aufgerufen ?
Wenn ich aptate aufrufe kommt das hier:
Can't locate XML/LibXML/Common.pm in @INC (@INC contains: /usr/share/apt4rpm /usr/lib/perl5/5.8.3/i586-linux-thread-multi /usr/lib/perl5/5.8.3 /usr/lib/perl5/site_perl/5.8.3/i586-linux-thread-multi /usr/lib/perl5/site_perl/5.8.3 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.3/i586-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.3 /usr/lib/perl5/vendor_perl .) at /usr/lib/perl5/vendor_perl/5.8.3/i586-linux-thread-multi/XML/LibXML.pm line 11.
BEGIN failed--compilation aborted at /usr/lib/perl5/vendor_perl/5.8.3/i586-linux-thread-multi/XML/LibXML.pm line 11.
Compilation failed in require at /usr/share/apt4rpm/Aptate/Config.pm line 37.
BEGIN failed--compilation aborted at /usr/share/apt4rpm/Aptate/Config.pm line 37.
Compilation failed in require.
BEGIN failed--compilation aborted.
error: incorrect perl configuration
Was läuft falsch mit perl?
Ich weiß nicht was fehlt, aber der Pfad oben für XML/LibXML existiert schonmal.
:cry:
 

oc2pus

Ultimate Guru
dir fehlen schlicht und einfach ein paar Perl-Module ...(perl-XML-LibXML, perl-XML-SAX, perl-XML-LibXML-Common, perl-XML-GDOME)

das hättest du aber ganz einfach selber herausfinden können:
rpm -q --requires apt4rpm
perl-XML-LibXML
wget
mktemp
apt-server
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(VersionedDependencies) <= 3.0.3-1
/bin/sh
/usr/bin/perl
==> perl-XML-LibXML

rpm -q --requires perl-XML-LibXML
perl = 5.8.3
libxml2
perl-XML-SAX
perl-XML-LibXML-Common
perl-XML-GDOME
/bin/sh
/bin/sh
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(VersionedDependencies) <= 3.0.3-1
libc.so.6
libc.so.6(GLIBC_2.0)
libc.so.6(GLIBC_2.1.3)
libm.so.6
libpthread.so.0
libpthread.so.0(GLIBC_2.0)
libxml2.so.2
libz.so.1

du hast offensichtlich dein apt4rpm nicht mit apt installiert ;)
evtl findet dein apt diese Perlmodule nicht weil dir ein Eintrag in der sources.list (Repository funktronics) fehlt.
 

tobi_318

Newbie
Tut mit leid aber so einfach ist das für mich nicht.
linux:/home/tobias # rpm -q -requires apt4rpm
perl-XML-LibXML
wget
mktemp
apt-server
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(VersionedDependencies) <= 3.0.3-1
/bin/sh
/usr/bin/perl
also das passt doch schon mal.

linux:/home/tobias # rpm -q -requires perl-XML-LibXML
perl = 5.8.3
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(VersionedDependencies) <= 3.0.3-1
libc.so.6
libc.so.6(GLIBC_2.0)
libc.so.6(GLIBC_2.1.3)
libm.so.6
libpthread.so.0
libpthread.so.0(GLIBC_2.0)
libxml2.so.2
libz.so.1
rpmlib(PayloadIsBzip2) <= 3.0.5-1
Und hier fehlts !?
 

oc2pus

Ultimate Guru
egal, installiere trotzdem diese perl-Module und es wird funktionieren:
perl-XML-LibXML, perl-XML-SAX, perl-XML-LibXML-Common, perl-XML-GDOME
und führe aptate aus ...

p.s zur Ermittlung habe ich das Tool apt-iselect eingesetzt (das ist ein Konsolen-Gui für apt-cache Abfragen).
Wo du dieses Tool herkriegst?
schau im apt-Forum, es gibt dazu einen eigenen Thread ;)
 

tobi_318

Newbie
@oc2pus
da du die perlpakete genannt hast ist es auch kein Problem die zu installieren.
Aber, wenn ich mit apt apt4rpm installieren möchte wird auch nur wieder das perl-XML-LibXML installiert:
linux:/home/tobias # apt-get install apt4rpm
Lese Paketlisten... Fertig
Erzeuge Abhängigkeitsbaum... Fertig
Die folgenden zusätzlichen Pakete werden installiert werden:
perl-XML-LibXML
Die folgenden NEUEN Pakete werden installiert werden:
apt4rpm perl-XML-LibXML
0 upgraded, 2 newly installed, 0 entfernt und 0 nicht upgegradet.
Muss 0B/391kB an Archiven holen.
Nach dem Auspacken werden 1272kB zusätzlicher Plattenplatz benutzt werden.
Wollen Sie fortsetzen? [J/n]
Was ist mit den anderen, warum sieht apt die nicht als abhängig?
 

oc2pus

Ultimate Guru
der "Fehler" liegt eher im Paket perl-XML-LibXML, dort sind die Abhängigkeiten auf die anderen RPMs nicht drin in der Version die du verwendest .... aber installiere sie jetzt einfach ;)

wahrscheinlich verwendest du das falsche ... das von SuSE aus base, nimm das von funktronics!!!

apt policy perl-XML-LibXML
perl-XML-LibXML:
Installed: 1.58-1
Candidate: 1.58-1
Version Table:
*** 1.58-1 0
500 http://ftp.gwdg.de SuSE/9.1-i386/funktronics pkglist
100 RPM Database
1.57-32 0
500 http://ftp.gwdg.de SuSE/9.1-i386/base pkglist
 

tobi_318

Newbie
Ok, perl hat sich erledigt
ähm...?
linux:/home/tobias # aptate
Distribution(s) to be processed: suse91
Processing: suse91
Archive structure: 1 => SuSE/9.1-i386
Entering cache build stage
error: not existing rpm repository directory for component: Pakete.
Expected directory: "/local//packages/SuSE/9.1-i386/pakete".
warning: other aptate instance active, waiting 8 minutes...
na ich warte dann mal 8min um weiter zu probieren
 

tobi_318

Newbie
Ich bin jetzt schon ein kleinen Schritt weiter,
in der aptate.conf
<url>/packages/SuSE/9.1-i386/pakete</url>
hatte ich den Fehler die url mit / zu beginnen, das ist also falsch.
Nun siehts so aus:
Distribution(s) to be processed: suse91
Processing: suse91
Archive structure: 1 => SuSE/9.1-i386
Entering cache build stage
pakete -> RPMs added: 3
-> RPMs removed: 03.i586.rpm: V3 DSA signature: NOKEY, keywarning: other aptate instance active, waiting 6 minutes...
Aber warum immer diese Wartezeiten, da hab ich noch etwas falsch gemacht?
EDIT: Aha, also kommt der komplette Pfad in <topdir>/local/packages/...</topdir> und unten nur der letzte Ordner <url>pakete</url> , so ungefähr?
 

oc2pus

Ultimate Guru
aptate hat einen kleinen Bug ;)

wenn ein bestimmtes Verzeichnis existiert, denkt es, eine andere Instanz läuft schon/noch. Da du vorher abgestürzt bist wegen Fehler, existiert diese Sperrdatei noch.

Warte also einfach ab...
 
Oben