Bagaimana cara mendapatkan `apt-get update` untuk bekerja pada mesin tanpa akses internet dan alamat IP yang ditetapkan secara manual?

19

Saya telah mengatur apt-mirrordan mengunduh paket ubuntu terbaru dengan sukses di mesin yang dapat mengakses internet. Tujuannya adalah untuk menggunakan mesin ini sebagai repositori ketika melakukan apt-get updatepada mesin target yang tidak dapat mengakses internet. Kedua mesin telah diatur dengan alamat IP manual, dan kedua mesin berjalan dengan Ubuntu 16.04 sebagai OS. The etc/apt/sources.listdi mesin target hanya memiliki 1 baris:

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

Tetapi ketika saya melakukannya sudo apt-get updatepada mesin target, saya mendapatkan kesalahan berikut:

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.

Pada mesin target:

  1. The /etc/resolve.conffile berisi berikut:

    # 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. Ini /etc/network/interfacesberisi yang berikut:

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

Juga, karena satu-satunya baris dalam output apt-get updateyang secara eksplisit mengatakan kesalahan adalah Err:3 http://<local_repo_IP>/ubuntu/dists/xenial main/restricted amd64 Packages, saya memeriksa apakah file ada dengan melakukan hal berikut di mesin target

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

Dan saya melihat bahwa file itu ada di sana, karena saya mendapatkan output berikut:

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

Saya juga memeriksa untuk melihat apakah saya dapat melakukan ping dengan sukses dari mesin target ke mesin repo. Itu juga berhasil.

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

Jadi, apa yang salah dengan itu apt-get update? Bagaimana saya bisa memperbaikinya dan membuatnya berfungsi?

PS Saya hanya memperhatikan bahwa kesalahan mengatakan http://<local_repo_IP>/ubuntu/dists/xenial/dists/main/restricted/binary-amd64/Packages. Mengapa mencoba mencari restrictedpaket di dalam main? Bukankah seharusnya melihat ke dalam http://<local_repo_IP>/ubuntu/dists/xenial/restricted/binary-amd64/Packages? Memang ketika saya melakukannya wget http://<local_repo_IP>/ubuntu/dists/xenial/dists/main/restricted/binary-amd64/Packages, itu memberikan kesalahan berikut:

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

Apa yang terjadi di sini? Mengapa ia mencoba memeriksa direktori yang tidak ada? Dan bagaimana cara apt-get updatemenunjukkan jalur yang benar?

Kristada673
sumber

Jawaban:

21

Saya menemukan solusinya adalah mengedit etc/apt/sources.listfile untuk memasukkan file hanya arsitektur sistem:

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

Sekarang ketika saya melakukan pembaruan, itu tidak memberikan kesalahan:

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

Bayangkan posting ini sebagai solusi yang memungkinkan bagi siapa saja yang mungkin memiliki masalah yang sama.

Kristada673
sumber
7
Posting jawaban untuk pertanyaan Anda sendiri benar-benar cara yang tepat untuk melakukannya. Atas nama orang-orang yang akan menemukan ini di masa depan, terima kasih!
Alex
1
Anda juga dapat menandai ini sebagai solusinya.
topher
4
Saya tidak berpikir ini adalah apa yang sebenarnya memecahkan masalah Anda, mengingat apa yang Anda punya kesalahan untuk adalah amd64file, dan membatasi untukamd64 tidak akan membuatnya pergi. Apakah ini satu-satunya perubahan yang Anda buat sources.listatau ke konfigurasi terkait lainnya? Apakah Anda menyinkronkan ulang cermin Anda sebelum perubahan ini dibuat?
muru
Saya setuju dengan @topher. Anda harus menandai ini sebagai solusi.
rockower
@uru Ya, ini satu-satunya perubahan yang saya buat, dan itu tidak memberikan kesalahan setelah itu. Dan ya, saya setuju dengan Anda bahwa itu seharusnya tidak menyelesaikan masalah. Jadi, ada ide mengapa itu berhasil? Juga, saya perhatikan bahwa jalur yang ia coba cari (dalam kesalahan) salah - ia harus mencari http://192.168.12.61/ubuntu/dists/xenial/restricted/binary-amd64/Packages, tetapi sedang mencari http://192.168.12.61/ubuntu/dists/xenial/dists/main/restricted/binary-amd64/Packages. Kenapa bisa begitu? Dan bagaimana menentukan arsitektur memecahkan masalah itu juga?
Kristada673
0

my take on [amd-64] ... Jika katakanlah, misalnya, di /etc/apt/sources.list Anda, Anda telah mengaktifkan deb pembaruan google chrome [arch = amd64] http://dl.google. com / linux / chrome / deb / stable utama

Anda dapat melihat bahwa itu adalah satu-satunya entri yang memiliki [amd-64] di dalamnya, dan itu berasal dari sumber google.

Dalam penyebutan pertama Anda tentang "deb http: // 192 ...", mungkin pembaruan Anda terhenti ketika sampai ke sources.list menyebutkan pembaruan chrome, karena tidak disebutkan secara spesifik.

Atau, lihat kebijakan sudo apt-cache , sources.list dan sources.list.d

Pada akhirnya, saya bisa keluar dan mereplikasi ini di lab saya sendiri, sebelum saya menjawab lebih lanjut.

mindtab
sumber