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

Suse 9.1 DVD in Apt integrieren

ojkastl

Hacker
Hallo allerseits,

mit Hilfe der super HowTos (Danke noch mal!) ist es mir gelungen, meine Suse-DVD einzubinden. D.h. ich hoffe es. Aber der Reihe nach.

- Die DVD hab ich nach /Daten4/DVD_Suse_91/ kopiert
- apt4rpm ist installiert
- in der aptate.conf steht:
------------------------------------------------------------
?xml version='1.0' encoding="iso-8859-1"?>
<!DOCTYPE opt SYSTEM "/usr/share/apt4rpm/aptate.dtd">
<opt signed-pkgs-only="no">

<topdir>/var/cache/apt/OJs_Repository</topdir>

<distribution id="suse91-i386">
<name>Suse</name>
<version>9.1</version>
<architecture>i386</architecture>
<component>
<name>Suse_DVD_RPMs</name>
<url>/Daten4/DVD_Suse_91</url>
</component>
</distribution>
<distribution id="suse91-i586">
<name>Suse</name>
<version>9.1</version>
<architecture>i586</architecture>
<component>
<name>Suse_DVD_RPMs</name>
<url>/Daten4/DVD_Suse_91</url>
</component>
</distribution>

</opt>
---------------------------------------------------------
D.h. das Repository soll nach /var/cache/apt/OJs_Repository, der Name soll Suse_DVD_RPMs sein.

Was die beiden Einträge sollen, verrat ich euch gleich...

In der /etc/apt/sources.list steht jetzt
------------------------------------------------------------
rpm file:/var/cache/apt/OJs_Repository/apt Suse/9.1-i386 Suse_DVD_RPMs
------------------------------------------------------------

was auch erstmal passen sollte.

Dann hab ich ein "aptate" aufgerufen, das auch recht lange die Pakete überprüft hat. Komischerweise sind in /var/cache/apt/OJS_Repository/apt/Suse/9.1-i386/RPMS.Suse_DVD_RPMs
keine Dateien. Aber naja, es gab keine Fehlermeldung, also sollte es gegangen sein.
Nach einem "apt update" hab ich dann mal ein "apt search" probiert, nach einem RPM das auf der DVD ist:
----------------------------------------------------------------
ojkastl@RobinLinux:/Daten4/DVD_Suse_91/suse/i586> ls -1 3*
3d_chess-0.8.1-1024.i586.rpm
3ddiag-0.716-108.i586.rpm
3dpong-0.4-647.i586.rpm
3dto3d-3.5-19.i586.rpm
-----------------------------------------------------------------

also: apt search 3d_chess

FAZIT: Da wird nix gefunden. Auch nicht wenn ich nur nach chess suche.
Ich hab dann ein RPM von mir rein, eines das ein i386 im Namen hat. Nach erneutem "aptate" und "apt update" hab ich danach gesucht, und es war da.
Hä?

Meine Bitte an euch: Hab ich da nen Denkfehler? Oder ist da wirklich der Wurm drin? Oder hab ich nur was vergessen? Oder oder ...

Danke im Voraus,
Saber
 

oc2pus

Ultimate Guru
ok, zunächst eine Bitte, die config-Datei nicht mit "Quote" sondern mit "Code" klammern, dann bleibt die Einrückung erhalten. Das macht es einfacher lesbar :)

also dein topdir ist: /var/cache/apt/OJs_Repository
deine eigenen RPMs sollten laut deiner Konfig dann in /var/cache/apt/OJs_Repository/Daten4/DVD_Suse_91 stehen

Ist es das was du willst? Ich denke nicht :)

Dann hast du noch einen kleinen Denkfehler:
du hast 2 Dsitributionen konfiguriert, jede Distribution enthält eine Komponente Suse_DVD_RPMs. Ich kann nur ahnen was du erreichen willst: du willst die RPMs nach i386 und i586 aufteilen?

Das Filtern nach bestimmten Kriterien wird mit einem <reject> Tag durchgeführt. Beispiel:
Code:
<reject>*i686</reject>.
Siehe die Dokumentation von apt4rpm in /usr/share/doc/packages/apt4rpm/dtd-manual.

Aber bevor ich jetzt wieter meine Glaskugel befrage ... warte ich erst mal auf deine Antwort :)

hier noch ein Thread mit einem ähnlichen Problem:
http://www.linux-club.de/viewtopic.php?t=11914
 
OP
O

ojkastl

Hacker
Hallo,

erstmal Danke für die Antwort.


2. zuerst: Das mit den beiden Distributionen war nur ein Versuch, eigentlich stand da nur die erste mit i386, wie in deinem HowTO. Dachte mir schon dass das wohl so nicht geht. Aber war nur ein Versuch.

1. Alsoooo. Aptate durchsucht ja das Verzeichnis /Daten4/DVD_Suse_91 nach RPMs, wo ja die RPMs auch liegen, die ich von der DVD kopiert hab.
D.h. ich hätte erwartet, dass er evtl. Links in /var/cache/apt/OJs_Repository/apt/Sue/9.1-i386/RPMS_Suse_DVD_RPMs erstellt. Macht er nicht, findet aber trotzdem eines meiner eigenen RPMs die ich auch in den DVD Ordner (also /Daten4/DVD/...) kopiert hab.

Was mich wundert ist dass er dieses eine RPM findet, und die anderen nicht. Oder hab ich da vielleicht ein doofes Paket erwischt, dass "nicht so einfach zu installieren" ist, also nur eine Abhängigkeit o.ä.


Vielleicht hab ich auch nen Denkfehler. Sieht aptate das
Code:
<name>Suse_DVD_RPMs</name>
<url>/Daten4/DVD_Suse_91</url>
als Pfadangabe ausgehend vom TopDir an? Also das /Daten4 nicht im "Wurzelverzeichnis" ist (da wo auch /dev und /root liegen) sondern in /var/cache/apt/OJs_Repository/?
Wenn das stimmt dann ist mir klar warums nicht geht.
Aber es geht ja, bei einem RPM?

Im puzzled.

Saber

P.S. Danke für deine Mühe!
 

oc2pus

Ultimate Guru
Saber_Rider schrieb:
2. zuerst: Das mit den beiden Distributionen war nur ein Versuch, eigentlich stand da nur die erste mit i386, wie in deinem HowTO. Dachte mir schon dass das wohl so nicht geht. Aber war nur ein Versuch.
:)
Stell das mal zurück, bis der Rest läuft. Dann erkläre ich dir das auch noch.

Saber_Rider schrieb:
Aptate durchsucht ja das Verzeichnis /Daten4/DVD_Suse_91 nach RPMs, wo ja die RPMs auch liegen, die ich von der DVD kopiert hab.
nö, es sucht in /var/cache/apt/OJs_Repository/Daten4/DVD_Suse_91.

Saber_Rider schrieb:
D.h. ich hätte erwartet, dass er evtl. Links in /var/cache/apt/OJs_Repository/apt/Sue/9.1-i386/RPMS_Suse_DVD_RPMs erstellt.
die links würden bei deiner Konfiguration in <topdir>/apt/<name>/<version>-<architecture>/RPMS.Suse_DVD_RPMs stehen.

Saber_Rider schrieb:
Macht er nicht, findet aber trotzdem eines meiner eigenen RPMs die ich auch in den DVD Ordner (also /Daten4/DVD/...) kopiert hab.
apt hat Recht :)

Saber_Rider schrieb:
Vielleicht hab ich auch nen Denkfehler. Sieht aptate das
Code:
<name>Suse_DVD_RPMs</name>
<url>/Daten4/DVD_Suse_91</url>
als Pfadangabe ausgehend vom TopDir an? Also das /Daten4 nicht im "Wurzelverzeichnis" ist (da wo auch /dev und /root liegen) sondern in /var/cache/apt/OJs_Repository/?
Wenn das stimmt dann ist mir klar warums nicht geht.
genau, wir kommen der Sache näher ....

Saber_Rider schrieb:
Aber es geht ja, bei einem RPM?
magic, oder es steht im Cache drin durch ein apt update
 
OP
O

ojkastl

Hacker
Aja, da tut sich doch was.

- Warum braucht aptate dann solange beim Aufrufen, und ändert knapp 3500 Pakete, wenn es nix findet. Also wenn die Pfadangaben falsch sind, sollte er doch gar nix finden?

- Sollte ich dann das Repository nicht uner /var... sondern unter /Daten4/DVD_Suse_91 erstellen lassen? Und wenn ja, wo genau? Also da ist ja die originale DVD-Struktur drauf, mit /media.1, /suse etc.

- Warum erstellt aptate unter /var/cache/... dann die Struktur mit Suse/i386/..., wenn da gar nix hinkopiert wird? Oder ist dass nur für den ersten Durchlauf, dann kopiert man die RPMs da hin, und dann gehts?

Fragen über Fragen.

Ich werd mal probieren, ob ich es schaffe. Und schreib dann Rückmeldung, obs geklappt hat. Andernfalls nerv ich dich halt weiter ;-)

Saber
 

oc2pus

Ultimate Guru
Saber_Rider schrieb:
Warum braucht aptate dann solange beim Aufrufen, und ändert knapp 3500 Pakete, wenn es nix findet. Also wenn die Pfadangaben falsch sind, sollte er doch gar nix finden?
aptate erstellt einen Index (eine Metainformation) für apt.

Saber_Rider schrieb:
Sollte ich dann das Repository nicht uner /var... sondern unter /Daten4/DVD_Suse_91 erstellen lassen? Und wenn ja, wo genau? Also da ist ja die originale DVD-Struktur drauf, mit /media.1, /suse etc.
du hast es immer noch nicht verstanden, apt arbeitet mit Metainformationen welches Paket von welchem Paket wie abhängt und wo das Paket zu finden ist. Der physikalische Speicherort eines Paktes ist apt egal, es kann die Datei auf einem Server via ftp, http, rsync oder https erreichen oder eben lokal auf Platte.
aptate interessiert sich nur für die RPMs auf deiner DVD, mit dem Rest hat apt nix am Hut, diese Verzeichnisstruktur wird von SuSE-YaST benötigt.

Saber_Rider schrieb:
Warum erstellt aptate unter /var/cache/... dann die Struktur mit Suse/i386/..., wenn da gar nix hinkopiert wird?
in /var/cache/apt stehen die Downloads von apt. Nicht mehr nicht weniger. Du kannst dieses Ordnerinhalt komplett löschen, es wird apt nicht stören ... nur deine Online-Zeiten werden grösser bei Re-Installationen :)
apt interessiert sich viel mehr für /var/state/apt/* - dort stehen die benötigten Informationen.

Saber_Rider schrieb:
Oder ist dass nur für den ersten Durchlauf, dann kopiert man die RPMs da hin, und dann gehts?
nein, wie gesagt, cache ist cache. Deine eigenen RPMs werden ja woanders stehen, z.Bsp in deinem angegebenen Verzeichnis...

Ich empfehle dir nochmal wärmstens die Dokumentation zu aptate und apt zu lesen.
 
OP
O

ojkastl

Hacker
Hallo nochmal,

Saber_Rider hat folgendes geschrieben:
Warum braucht aptate dann solange beim Aufrufen, und ändert knapp 3500 Pakete, wenn es nix findet. Also wenn die Pfadangaben falsch sind, sollte er doch gar nix finden?
aptate erstellt einen Index (eine Metainformation) für apt.

Saber_Rider hat folgendes geschrieben:
Sollte ich dann das Repository nicht uner /var... sondern unter /Daten4/DVD_Suse_91 erstellen lassen? Und wenn ja, wo genau? Also da ist ja die originale DVD-Struktur drauf, mit /media.1, /suse etc.
du hast es immer noch nicht verstanden, apt arbeitet mit Metainformationen welches Paket von welchem Paket wie abhängt und wo das Paket zu finden ist. Der

Für welche RPMs erstellt aptate denn die Metainformationen, wenn er keine findet? Also, da er so lange werkelt, findet er ja was. Das wollte ich damit sagen. Wenn die Pfade nicht stimmen würden, wäre die Sache ja ganz schnell vorbei.



aptate interessiert sich nur für die RPMs auf deiner DVD, mit dem Rest hat apt nix am Hut, diese Verzeichnisstruktur wird von SuSE-YaST benötigt.

Dass die Verzeichnisstruktur der DVD für Yast ist, weiss ich. Nur weshalb erstellt aptate eine Struktur (bei mir) in /var/cache/apt/OJs_Repository/apt/Suse/i386/RPMS.SUSE_DVD_RPMs und schreibt da nix hin?
Müsste ich da die RPMs hinkopieren?

Sorry falls ich jetzt blöd frage, aber trotz RTFM hab ich grad nen Knoten im Hirn.
P.S. Und Rechtschreibprobleme.
 

oc2pus

Ultimate Guru
Nur weshalb erstellt aptate eine Struktur (bei mir) in /var/cache/apt/OJs_Repository/apt/Suse/i386/RPMS.SUSE_DVD_RPMs und schreibt da nix hin?
Müsste ich da die RPMs hinkopieren?

weil du das so konfiguriert hast. Was btw FALSCH ist.
und NEIN du sollst deine RPMs nicht dorthin kopieren.
 
OP
O

ojkastl

Hacker
Danke!

Dank deiner langen Bemühungen hab ich es jetzt geschafft. Auch wenn es mir nicht leicht gefallen ist, das alles zu kapieren, aber jetzt ist glaub ich der Knoten raus.

Also, ich hab als TopDir /Daten4/DVD_suse_91 genommen. Ich hab nur noch eine Distribution drin, die andere aus meinem ersten Posting war ja eh Blödsinn. Als URL hab ich dann suse/i586 genommen, also die Verzichnisse relativ zu /Daten4/DVD_Suse_91. Das ist die Struktur die die DVD hat, da kann dann Yast drauf zugreifen.

Dann hab ich in der sources.list ein

Code:
rpm      file:/Daten4/DVD_Suse_91/apt Suse/9.1-i386  Suse_DVD_RPMs
drin. Nach einem aptate gibt es /Daten4/DVD_suse_91/apt/Suse/9.1-i386 und die zugehörigen Metadaten.
Ich hab dann mal /var/cache/apt bis auf archives gelöscht.
Dann ein apt update, und er findet sowohl mein eigenes Paket als auch die vorher nicht gefundenen (3d_chess, ...).

Voila.

Also nochmal DANKEDANKEDANKEDANKE an dich für deine Engelsgeduld. Ich glaub ohne dich hätt ich das nicht hingekriegt.
 

oc2pus

Ultimate Guru
na also, was lange währt wird endlich gut :)

es wäre nett von dir wenn du jetzt noch deine "finale" aptate.conf posten würdest. Dann könnten andere die DVD genauso leicht einbinden :)
 

corwin42

Newbie
Saber_Rider schrieb:
Als URL hab ich dann suse/i586 genommen, also die Verzichnisse relativ zu /Daten4/DVD_Suse_91. Das ist die Struktur die die DVD hat, da kann dann Yast drauf zugreifen.
Jetzt fehlen Dir allerdings noch die Verzeichnisse i686 und noarch der DVD, die Du evtl. noch als eigene Komponenten in die aptate.conf (Analog zum i586-Verzeichnis) eintragen musst.

Ich bin mir jetzt allerdings nicht sicher, ob Du innerhalb eines Component Objektes mehrere URLs definieren kannst oder ob Du für jede URL (also jedes Verzeichnis) ein eigenes Component definieren musst. ggf. ausprobieren.
 

oc2pus

Ultimate Guru
corwin42 schrieb:
Jetzt fehlen Dir allerdings noch die Verzeichnisse i686 und noarch der DVD, die Du evtl. noch als eigene Komponenten in die aptate.conf (Analog zum i586-Verzeichnis) eintragen musst.
Das würde über einen <accept>-Tag bzw <reject>-Tag realisiert. Es stehen gewöhnliche reguläre Ausdrücke dort.

Beispiele:
Code:
<accept>/9\.1.*i386/|/9\.1.*i586/|/9\.1.*i686/|/9\.1.*noarch/|IBM/java</accept>

um Verzeichnisse auszuschliessen:
Code:
<reject>subversion|apache|mod_php4|flood|neon|arcfour|betatest</reject>
 
OP
O

ojkastl

Hacker
Hallo,

werd ich noch machen, und die aptate.conf werd ich auch noch reinstellen, wenn ich wieder an der Linuxkiste hocke.

Wenn ich alle Verzeichnisse erwischen möchte, schreibe ich deine Zeile rein, und muss dann aber das Verzeichnis (url) von suse/i586 auf suse ändern, wenn ich mich nicht täusche.

Saber
 

oc2pus

Ultimate Guru
Saber_Rider schrieb:
... und die aptate.conf werd ich auch noch reinstellen, wenn ich wieder an der Linuxkiste hocke.
gut :)

Saber_Rider schrieb:
Wenn ich alle Verzeichnisse erwischen möchte, schreibe ich deine Zeile rein, und muss dann aber das Verzeichnis (url) von suse/i586 auf suse ändern, wenn ich mich nicht täusche.
meine Zeile war ein Beispiel!!

du musst dort die Filterbedingung reinschreiben für welche Verzeichnisse dein aptate die RPMs indizieren soll.
 
OP
O

ojkastl

Hacker
Da hab ich mich unklar ausgedrückt. Dine Zeile kommt rein, natürlich entsprechend auf die DVD angepasst.
 
Oben