Wie kann ich "apt-get update" auf einem Computer ohne Internetzugang und mit manuell zugewiesener IP-Adresse ausführen?

19

Ich habe apt-mirrordie neuesten Ubuntu-Pakete erfolgreich auf einem Computer eingerichtet und heruntergeladen, der auf das Internet zugreifen kann. Ziel ist es, diesen Computer als Repository apt-get updateauf dem Zielcomputer zu verwenden, der nicht auf das Internet zugreifen kann. Beide Maschinen wurden mit manuellen IP-Adressen eingerichtet und beide Maschinen laufen mit Ubuntu 16.04 als Betriebssystem. Der etc/apt/sources.listin der Zielmaschine hat nur 1 Zeile:

deb http://<local_repo_IP>/ubuntu/ xenial main restricted multiverse universe

Aber wenn ich sudo apt-get updateauf dem Zielcomputer mache , bekomme ich folgenden Fehler:

Ign:1 http://<local_repo_IP>/ubuntu/dists/xenial main InRelease
Ign:2 http://<local_repo_IP>/ubuntu/dists/xenial main Release
Ign:3 http://<local_repo_IP>/ubuntu/dists/xenial main/restricted amd64 Packages
Ign:4 http://<local_repo_IP>/ubuntu/dists/xenial main/restricted i386 Packages
Ign:5 http://<local_repo_IP>/ubuntu/dists/xenial main/restricted all Packages
Ign:6 http://<local_repo_IP>/ubuntu/dists/xenial main/restricted Translation-en_HK
Ign:7 http://<local_repo_IP>/ubuntu/dists/xenial main/restricted Translation-en
Ign:8 http://<local_repo_IP>/ubuntu/dists/xenial main/multiverse amd64 Packages
Ign:9 http://<local_repo_IP>/ubuntu/dists/xenial main/multiverse i386 Packages
Ign:10 http://<local_repo_IP>/ubuntu/dists/xenial main/multiverse all Packages
Ign:11 http://<local_repo_IP>/ubuntu/dists/xenial main/multiverse Translation-en_HK
Ign:12 http://<local_repo_IP>/ubuntu/dists/xenial main/multiverse Translation-en
Ign:13 http://<local_repo_IP>/ubuntu/dists/xenial main/universe amd64 Packages
Ign:14 http://<local_repo_IP>/ubuntu/dists/xenial main/universe i386 Packages
Ign:15 http://<local_repo_IP>/ubuntu/dists/xenial main/universe all Packages
Ign:16 http://<local_repo_IP>/ubuntu/dists/xenial main/universe Translation-en_HK
Ign:17 http://<local_repo_IP>/ubuntu/dists/xenial main/universe Translation-en
Ign:3 http://<local_repo_IP>/ubuntu/dists/xenial main/restricted amd64 Packages
Ign:4 http://<local_repo_IP>/ubuntu/dists/xenial main/restricted i386 Packages
Ign:5 http://<local_repo_IP>/ubuntu/dists/xenial main/restricted all Packages
Ign:6 http://<local_repo_IP>/ubuntu/dists/xenial main/restricted Translation-en_HK
Ign:7 http://<local_repo_IP>/ubuntu/dists/xenial main/restricted Translation-en
Ign:8 http://<local_repo_IP>/ubuntu/dists/xenial main/multiverse amd64 Packages
Ign:9 http://<local_repo_IP>/ubuntu/dists/xenial main/multiverse i386 Packages
Ign:10 http://<local_repo_IP>/ubuntu/dists/xenial main/multiverse all Packages
Ign:11 http://<local_repo_IP>/ubuntu/dists/xenial main/multiverse Translation-en_HK
Ign:12 http://<local_repo_IP>/ubuntu/dists/xenial main/multiverse Translation-en
Ign:13 http://<local_repo_IP>/ubuntu/dists/xenial main/universe amd64 Packages
Ign:14 http://<local_repo_IP>/ubuntu/dists/xenial main/universe i386 Packages
Ign:15 http://<local_repo_IP>/ubuntu/dists/xenial main/universe all Packages
Ign:16 http://<local_repo_IP>/ubuntu/dists/xenial main/universe Translation-en_HK
Ign:17 http://<local_repo_IP>/ubuntu/dists/xenial main/universe Translation-en
Ign:3 http://<local_repo_IP>/ubuntu/dists/xenial main/restricted amd64 Packages
Ign:4 http://<local_repo_IP>/ubuntu/dists/xenial main/restricted i386 Packages
Ign:5 http://<local_repo_IP>/ubuntu/dists/xenial main/restricted all Packages
Ign:6 http://<local_repo_IP>/ubuntu/dists/xenial main/restricted Translation-en_HK
Ign:7 http://<local_repo_IP>/ubuntu/dists/xenial main/restricted Translation-en
Ign:8 http://<local_repo_IP>/ubuntu/dists/xenial main/multiverse amd64 Packages
Ign:9 http://<local_repo_IP>/ubuntu/dists/xenial main/multiverse i386 Packages
Ign:10 http://<local_repo_IP>/ubuntu/dists/xenial main/multiverse all Packages
Ign:11 http://<local_repo_IP>/ubuntu/dists/xenial main/multiverse Translation-en_HK
Ign:12 http://<local_repo_IP>/ubuntu/dists/xenial main/multiverse Translation-en
Ign:13 http://<local_repo_IP>/ubuntu/dists/xenial main/universe amd64 Packages
Ign:14 http://<local_repo_IP>/ubuntu/dists/xenial main/universe i386 Packages
Ign:15 http://<local_repo_IP>/ubuntu/dists/xenial main/universe all Packages
Ign:16 http://<local_repo_IP>/ubuntu/dists/xenial main/universe Translation-en_HK
Ign:17 http://<local_repo_IP>/ubuntu/dists/xenial main/universe Translation-en
Ign:3 http://<local_repo_IP>/ubuntu/dists/xenial main/restricted amd64 Packages
Ign:4 http://<local_repo_IP>/ubuntu/dists/xenial main/restricted i386 Packages
Ign:5 http://<local_repo_IP>/ubuntu/dists/xenial main/restricted all Packages
Ign:6 http://<local_repo_IP>/ubuntu/dists/xenial main/restricted Translation-en_HK
Ign:7 http://<local_repo_IP>/ubuntu/dists/xenial main/restricted Translation-en
Ign:8 http://<local_repo_IP>/ubuntu/dists/xenial main/multiverse amd64 Packages
Ign:9 http://<local_repo_IP>/ubuntu/dists/xenial main/multiverse i386 Packages
Ign:10 http://<local_repo_IP>/ubuntu/dists/xenial main/multiverse all Packages
Ign:11 http://<local_repo_IP>/ubuntu/dists/xenial main/multiverse Translation-en_HK
Ign:12 http://<local_repo_IP>/ubuntu/dists/xenial main/multiverse Translation-en
Ign:13 http://<local_repo_IP>/ubuntu/dists/xenial main/universe amd64 Packages
Ign:14 http://<local_repo_IP>/ubuntu/dists/xenial main/universe i386 Packages
Ign:15 http://<local_repo_IP>/ubuntu/dists/xenial main/universe all Packages
Ign:16 http://<local_repo_IP>/ubuntu/dists/xenial main/universe Translation-en_HK
Ign:17 http://<local_repo_IP>/ubuntu/dists/xenial main/universe Translation-en
Ign:3 http://<local_repo_IP>/ubuntu/dists/xenial main/restricted amd64 Packages
Ign:4 http://<local_repo_IP>/ubuntu/dists/xenial main/restricted i386 Packages
Ign:5 http://<local_repo_IP>/ubuntu/dists/xenial main/restricted all Packages
Ign:6 http://<local_repo_IP>/ubuntu/dists/xenial main/restricted Translation-en_HK
Ign:7 http://<local_repo_IP>/ubuntu/dists/xenial main/restricted Translation-en
Ign:8 http://<local_repo_IP>/ubuntu/dists/xenial main/multiverse amd64 Packages
Ign:9 http://<local_repo_IP>/ubuntu/dists/xenial main/multiverse i386 Packages
Ign:10 http://<local_repo_IP>/ubuntu/dists/xenial main/multiverse all Packages
Ign:11 http://<local_repo_IP>/ubuntu/dists/xenial main/multiverse Translation-en_HK
Ign:12 http://<local_repo_IP>/ubuntu/dists/xenial main/multiverse Translation-en
Ign:13 http://<local_repo_IP>/ubuntu/dists/xenial main/universe amd64 Packages
Ign:14 http://<local_repo_IP>/ubuntu/dists/xenial main/universe i386 Packages
Ign:15 http://<local_repo_IP>/ubuntu/dists/xenial main/universe all Packages
Ign:16 http://<local_repo_IP>/ubuntu/dists/xenial main/universe Translation-en_HK
Ign:17 http://<local_repo_IP>/ubuntu/dists/xenial main/universe Translation-en
Err:3 http://<local_repo_IP>/ubuntu/dists/xenial main/restricted amd64 Packages
  404  Not Found
Ign:4 http://<local_repo_IP>/ubuntu/dists/xenial main/restricted i386 Packages
Ign:5 http://<local_repo_IP>/ubuntu/dists/xenial main/restricted all Packages
Ign:6 http://<local_repo_IP>/ubuntu/dists/xenial main/restricted Translation-en_HK
Ign:7 http://<local_repo_IP>/ubuntu/dists/xenial main/restricted Translation-en
Ign:8 http://<local_repo_IP>/ubuntu/dists/xenial main/multiverse amd64 Packages
Ign:9 http://<local_repo_IP>/ubuntu/dists/xenial main/multiverse i386 Packages
Ign:10 http://<local_repo_IP>/ubuntu/dists/xenial main/multiverse all Packages
Ign:11 http://<local_repo_IP>/ubuntu/dists/xenial main/multiverse Translation-en_HK
Ign:12 http://<local_repo_IP>/ubuntu/dists/xenial main/multiverse Translation-en
Ign:13 http://<local_repo_IP>/ubuntu/dists/xenial main/universe amd64 Packages
Reading package lists... Done
W: The repository 'http://<local_repo_IP>/ubuntu/dists/xenial main Release' does not have a Release file.
N: Data from such a repository can't be authenticated and is therefore potentially dangerous to use.
N: See apt-secure(8) manpage for repository creation and user configuration details.
E: Failed to fetch http://<local_repo_IP>/ubuntu/dists/xenial/dists/main/restricted/binary-amd64/Packages  404  Not Found
E: Some index files failed to download. They have been ignored, or old ones used instead.

Auf dem Zielcomputer:

  1. Die /etc/resolve.confDatei enthält Folgendes:

    # Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
    #     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
    nameserver 127.0.1.1
    
  2. Das /etc/network/interfacesenthält folgendes:

    # interfaces(5) file used by ifup(8) and ifdown(8)
    auto lo
    iface lo inet loopback
    

Da die einzige Zeile in der Ausgabe, in der apt-get updateexplizit ein Fehler angegeben ist Err:3 http://<local_repo_IP>/ubuntu/dists/xenial main/restricted amd64 Packages, überprüfte ich, ob die Datei vorhanden ist, indem ich auf dem Zielcomputer Folgendes ausführte

wget http://<local_repo_IP>/ubuntu/dists/xenial/restricted/binary-amd64/Packages

Und ich sehe, dass die Datei da ist, da ich die folgende Ausgabe bekomme:

--2017-12-21 17:23:24--  http://<local_repo_IP>/ubuntu/dists/xenial/restricted/binary-amd64/Packages
Connecting to <local_repo_IP>:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 127112 (124K)
Saving to: ‘Packages’

Packages                100%[============================>] 124.13K  --.-KB/s    in 0s      

2017-12-21 17:23:24 (469 MB/s) - ‘Packages’ saved [127112/127112]

Ich habe auch überprüft, ob ich erfolgreich einen Ping-Befehl vom Zielcomputer zum Repo-Computer ausführen kann. Das klappt auch.

PING <local_repo_IP> (<local_repo_IP>) 56(84) bytes of data.
64 bytes from <local_repo_IP>: icmp_seq=1 ttl=64 time=0.169 ms
64 bytes from <local_repo_IP>: icmp_seq=2 ttl=64 time=0.671 ms
64 bytes from <local_repo_IP>: icmp_seq=3 ttl=64 time=0.186 ms
64 bytes from <local_repo_IP>: icmp_seq=4 ttl=64 time=0.190 ms
64 bytes from <local_repo_IP>: icmp_seq=5 ttl=64 time=0.315 ms
^C
--- <local_repo_IP> ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4047ms
rtt min/avg/max/mdev = 0.169/0.306/0.671/0.190 ms

Also, was ist los mit apt-get update? Wie kann ich das Problem beheben und zum Laufen bringen?

PS Mir ist gerade aufgefallen, dass der Fehler sagt http://<local_repo_IP>/ubuntu/dists/xenial/dists/main/restricted/binary-amd64/Packages. Warum wird versucht, restrictedin main nach Paketen zu suchen ? Sollte es nicht reingucken http://<local_repo_IP>/ubuntu/dists/xenial/restricted/binary-amd64/Packages? In der Tat, wenn ich es tue wget http://<local_repo_IP>/ubuntu/dists/xenial/dists/main/restricted/binary-amd64/Packages, gibt es den folgenden Fehler:

--2017-12-21 17:26:06--  http://<local_repo_IP>/ubuntu/dists/xenial/dists/main/restricted/binary-amd64/Packages
Connecting to <local_repo_IP>:80... connected.
HTTP request sent, awaiting response... 404 Not Found
2017-12-21 17:26:06 ERROR 404: Not Found.

Was ist hier los? Warum wird versucht, nach einem nicht vorhandenen Verzeichnis zu suchen? Und wie kann ich apt-get updateauf den richtigen Pfad verweisen?

Kristada673
quelle

Antworten:

21

Ich fand die Lösung darin, die etc/apt/sources.listDatei so zu bearbeiten , dass sie nur Dateien der Systemarchitektur enthält:

deb [arch=amd64] http://192.168.12.61/ubuntu/ xenial main restricted multiverse universe

Wenn ich jetzt das Update mache, wird kein Fehler angezeigt:

$ sudo apt update
Hit:1 http://192.168.12.61/ubuntu xenial InRelease
Reading package lists... Done
Building dependency tree       
Reading state information... Done
All packages are up to date.

Ich dachte nur daran, dies als mögliche Lösung für alle zu veröffentlichen, die das gleiche Problem haben könnten.

Kristada673
quelle
7
Das Posten einer Antwort auf Ihre eigene Frage ist der absolut richtige Weg, dies zu tun. Im Namen der Menschen, die dies in Zukunft finden werden, danke!
Alex
1
Sie können dies auch als Lösung markieren.
Topher
4
Ich glaube nicht, dass dies Ihr Problem tatsächlich gelöst hat, wenn man bedenkt, dass es sich bei dem Fehler um eine amd64Datei handelt, und wenn Sie sich auf beschränken , lässt sichamd64 das Problem kaum beheben . Ist dies die einzige Änderung, die Sie an sources.listoder an einer anderen verwandten Konfiguration vorgenommen haben? Haben Sie Ihren Spiegel erneut synchronisiert, bevor diese Änderung vorgenommen wurde?
muru
Ich stimme @topher zu. Sie sollten dies als Lösung markieren.
Rockower
@muru Ja, dies ist die einzige Änderung, die ich vorgenommen habe, und es wird danach kein Fehler mehr angezeigt. Und ja, ich stimme Ihnen zu, dass es das Problem nicht lösen sollte . Also, irgendwelche Ideen, warum es funktioniert hat? Außerdem habe ich festgestellt, dass der Pfad, in dem gesucht wurde (im Fehlerfall), falsch ist - es sollte gesucht werden http://192.168.12.61/ubuntu/dists/xenial/restricted/binary-amd64/Packages, aber es wurde gesucht http://192.168.12.61/ubuntu/dists/xenial/dists/main/restricted/binary-amd64/Packages. Warum sollte das so sein? Und wie hat die Spezifikation der Architektur dieses Problem ebenfalls gelöst?
Kristada673,
0

Meine Einstellung zum [amd-64] ... Nehmen wir zum Beispiel an, Sie haben in Ihrer /etc/apt/sources.list die Google Chrome-Updates deb [arch = amd64] http://dl.google aktiviert . com / linux / chrome / deb / stable main

Sie können sehen, dass dies der einzige Eintrag ist, in dem [amd-64] enthalten ist und der aus einer Google-Quelle stammt.

Bei Ihrer ersten Erwähnung von "deb http: // 192 ..." sind Ihre Aktualisierungen möglicherweise zum Stillstand gekommen, als sie auf die sources.list kamen, in der das Chrome-Update erwähnt wurde, da es nicht ausdrücklich als solches erwähnt wurde.

Oder sehen Sie sich die sudo apt-cache policy , sources.list und sources.list.d an

Irgendwann wage ich mich heraus und repliziere dies in meinem eigenen Labor, bevor ich weiter antworte.

mindtab
quelle