Comment faire fonctionner «apt-get update» sur une machine sans accès Internet et avec une adresse IP attribuée manuellement?


19

J'ai installé apt-mirroret téléchargé avec succès les derniers packages ubuntu sur une machine qui peut accéder à Internet. Le but est d'utiliser cette machine comme référentiel lors de l'exécution apt-get updatesur la machine cible qui ne peut pas accéder à Internet. Les deux machines ont été configurées avec des adresses IP manuelles et les deux machines fonctionnent avec Ubuntu 16.04 comme système d'exploitation. La etc/apt/sources.listmachine cible n'a qu'une seule ligne:

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

Mais quand je le fais sudo apt-get updatesur la machine cible, j'obtiens l'erreur suivante:

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.

Sur la machine cible:

  1. Le /etc/resolve.conffichier contient les éléments suivants:

    # 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. Le /etc/network/interfacescontient les éléments suivants:

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

De plus, étant donné que la seule ligne dans la sortie apt-get updatequi indique explicitement l'erreur est Err:3 http://<local_repo_IP>/ubuntu/dists/xenial main/restricted amd64 Packages, j'ai vérifié si le fichier existe en procédant comme suit dans la machine cible

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

Et je vois que le fichier est là, car j'obtiens la sortie suivante:

--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]

J'ai également vérifié pour voir si je peux cingler avec succès de la machine cible à la machine repo. Cela fonctionne aussi.

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

Alors, qu'est-ce qui ne va pas apt-get update? Comment puis-je le réparer et le faire fonctionner?

PS Je viens de remarquer que l'erreur dit http://<local_repo_IP>/ubuntu/dists/xenial/dists/main/restricted/binary-amd64/Packages. Pourquoi essaie-t-il de rechercher des restrictedpaquets dans main? Ne devrait-il pas regarder dedans http://<local_repo_IP>/ubuntu/dists/xenial/restricted/binary-amd64/Packages? En effet quand je le fais wget http://<local_repo_IP>/ubuntu/dists/xenial/dists/main/restricted/binary-amd64/Packages, cela donne l'erreur suivante:

--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.

Que se passe t-il ici? Pourquoi essaie-t-il de rechercher un répertoire inexistant? Et comment puis-je apt-get updateindiquer le bon chemin?

Réponses:


21

J'ai trouvé que la solution était d'éditer le etc/apt/sources.listfichier pour inclure uniquement les fichiers de l'architecture du système:

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

Maintenant, quand je fais la mise à jour, cela ne donne aucune erreur:

$ 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.

Je pensais juste à poster ceci comme une solution possible pour quiconque pourrait avoir le même problème.


7
Publier une réponse à votre propre question est absolument la bonne façon de le faire. Au nom des personnes qui trouveront cela à l'avenir, merci!
Alex

1
Vous pouvez également marquer cela comme la solution.
topher

4
Je ne pense pas que c'est ce qui a réellement résolu votre problème, étant donné que ce pour quoi vous avez obtenu une erreur était un amd64fichier, et restreindre à leamd64 ferait à peine disparaître. Est-ce la seule modification apportée à sources.listou à une autre configuration connexe? Avez-vous resynchronisé votre miroir avant cette modification?
muru

Je suis d'accord avec @topher. Vous devez marquer cela comme une solution.
rockower

@muru Oui, c'est le seul changement que j'ai fait, et cela ne donne aucune erreur après cela. Et oui, je suis d'accord avec vous que cela ne devrait pas résoudre le problème. Alors, des idées sur pourquoi cela a fonctionné? De plus, j'ai remarqué que le chemin dans lequel il essayait de chercher (dans l'erreur) est faux - il devrait chercher http://192.168.12.61/ubuntu/dists/xenial/restricted/binary-amd64/Packages, mais il cherchait http://192.168.12.61/ubuntu/dists/xenial/dists/main/restricted/binary-amd64/Packages. Pourquoi serait-ce? Et comment la spécification de l'architecture a-t-elle également résolu ce problème?
Kristada673

0

mon point de vue sur [amd-64] ... Si, par exemple, dans votre /etc/apt/sources.list, vous avez activé la mise à jour de Google Chrome deb [arch = amd64] http://dl.google. com / linux / chrome / deb / stable main

vous pouvez voir que c'est la seule entrée qui contient le [amd-64], et c'est d'une source google.

Dans votre première mention initiale de "deb http: // 192 ...", vos mises à jour ont peut-être été bloquées quand elles sont arrivées à la mention sources.list de la mise à jour de chrome, car elle n'était pas spécifiquement mentionnée en tant que telle.

Ou, regardez la politique sudo apt-cache , sources.list et sources.list.d

Finalement, je peux m'aventurer et reproduire cela dans mon propre laboratoire, avant de répondre davantage.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.