Làm cách nào để tôi có được `apt-get update` để hoạt động trên một máy không có truy cập internet và địa chỉ IP được gán thủ công?


19

Tôi đã thiết lập apt-mirrorvà tải xuống các gói Ubuntu mới nhất thành công trong một máy có thể truy cập internet. Mục tiêu là sử dụng máy này làm kho lưu trữ khi thực hiện apt-get updatetrên máy đích không thể truy cập internet. Cả hai máy đã được thiết lập với địa chỉ IP thủ công và cả hai máy đều chạy với Ubuntu 16.04 dưới dạng HĐH. Trong etc/apt/sources.listmáy đích chỉ có 1 dòng:

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

Nhưng khi tôi thực hiện sudo apt-get updatetrên máy đích, tôi gặp lỗi sau:

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.

Trên máy đích:

  1. Các /etc/resolve.conftập tin có chứa như sau:

    # 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. /etc/network/interfaceschứa những điều sau đây:

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

Ngoài ra, do dòng duy nhất trong đầu ra của apt-get updatelỗi đó nói rõ ràng là Err:3 http://<local_repo_IP>/ubuntu/dists/xenial main/restricted amd64 Packages, tôi đã kiểm tra xem tệp có tồn tại hay không bằng cách thực hiện như sau trong máy đích

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

Và tôi thấy rằng tập tin ở đó, khi tôi nhận được kết quả sau:

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

Tôi cũng đã kiểm tra xem liệu tôi có thể ping thành công từ máy đích đến máy repo không. Điều đó cũng làm việc ra.

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

Vì vậy, những gì là sai với apt-get update? Làm thế nào tôi có thể sửa chữa nó và làm cho nó hoạt động?

PS tôi chỉ nhận thấy rằng lỗi nói http://<local_repo_IP>/ubuntu/dists/xenial/dists/main/restricted/binary-amd64/Packages. Tại sao nó cố gắng tìm kiếm restrictedcác gói bên trong chính? Không nên nhìn vào http://<local_repo_IP>/ubuntu/dists/xenial/restricted/binary-amd64/Packages? Thật vậy, khi tôi làm wget http://<local_repo_IP>/ubuntu/dists/xenial/dists/main/restricted/binary-amd64/Packages, nó đưa ra lỗi sau:

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

Những gì đang xảy ra ở đây? Tại sao nó cố gắng kiểm tra một thư mục không tồn tại? Và làm thế nào để tôi apt-get updatechỉ ra con đường chính xác?

Câu trả lời:


21

Tôi tìm thấy giải pháp là chỉnh sửa etc/apt/sources.listtệp để bao gồm các tệp chỉ có kiến ​​trúc của hệ thống:

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

Bây giờ khi tôi thực hiện cập nhật, nó không đưa ra bất kỳ lỗi nào:

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

Chỉ cần nghĩ rằng đăng bài này là một giải pháp có thể cho bất cứ ai có thể có cùng một vấn đề.


7
Đăng một câu trả lời cho câu hỏi của riêng bạn là cách hoàn toàn đúng đắn để làm điều đó. Thay mặt những người sẽ tìm thấy điều này trong tương lai, cảm ơn!
Alex

1
Bạn cũng có thể đánh dấu đây là giải pháp.
topher

4
Tôi không nghĩ rằng đây là những gì thực sự giải quyết vấn đề của bạn, xem xét rằng những gì bạn nhận được một lỗi cho là một amd64tập tin, và hạn chế đếnamd64 khó có thể làm cho nó biến mất. Đây có phải là thay đổi duy nhất bạn thực hiện sources.listhoặc cấu hình liên quan khác? Bạn đã đồng bộ lại gương của mình trước khi thay đổi này được thực hiện?
muru

Tôi đồng ý với @topher. Bạn nên đánh dấu đây là một giải pháp.
rockower

@muru Vâng, đây là thay đổi duy nhất tôi đã thực hiện và nó không đưa ra bất kỳ lỗi nào sau đó. Và vâng, tôi đồng ý với bạn rằng nó không nên giải quyết vấn đề. Vì vậy, bất kỳ ý tưởng như tại sao nó làm việc? Ngoài ra, tôi nhận thấy rằng đường dẫn mà nó đang cố gắng tìm kiếm (trong lỗi) là sai - nó nên tìm kiếm http://192.168.12.61/ubuntu/dists/xenial/restricted/binary-amd64/Packages, nhưng nó đã tìm kiếm trong đó http://192.168.12.61/ubuntu/dists/xenial/dists/main/restricted/binary-amd64/Packages. Tại sao lại như vậy? Và làm thế nào đã chỉ định kiến ​​trúc giải quyết vấn đề đó là tốt?
Kristada673

0

tôi chấp nhận [amd-64] ... Ví dụ: nếu nói, trong /etc/apt/source.list, bạn đã kích hoạt bản cập nhật google chrome deb [arch = amd64] http://dl.google. com / linux / chrome / deb / ổn định chính

bạn có thể thấy đó là mục duy nhất có [amd-64] trong đó và nó là từ nguồn google.

Trong lần đầu tiên bạn đề cập đến "deb http: // 192 ...", có thể các cập nhật của bạn đã bị đình trệ khi nó được gửi đến các nguồn. Danh sách đề cập đến bản cập nhật chrome, vì nó không được đề cập cụ thể như vậy.

Hoặc, xem chính sách sudo apt-cache , nguồn.list và nguồn.list.d

Cuối cùng, tôi có thể mạo hiểm và nhân rộng điều này trong phòng thí nghiệm của riêng tôi, trước khi tôi trả lời thêm.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.