ฉันจะได้รับ 'apt-get update' เพื่อทำงานบนเครื่องที่ไม่มีอินเทอร์เน็ตและกำหนดที่อยู่ IP ด้วยตนเองได้อย่างไร


19

ฉันได้ตั้งค่าapt-mirrorและดาวน์โหลดแพคเกจ ubuntu ล่าสุดสำเร็จแล้วในเครื่องที่สามารถเข้าถึงอินเทอร์เน็ตได้ เป้าหมายคือการใช้เครื่องนี้เป็นที่เก็บเมื่อทำapt-get updateบนเครื่องเป้าหมายที่ไม่สามารถเข้าถึงอินเทอร์เน็ต เครื่องทั้งสองได้รับการตั้งค่าด้วยที่อยู่ IP ด้วยตนเองและทั้งสองเครื่องกำลังทำงานกับ Ubuntu 16.04 เป็นระบบปฏิบัติการ etc/apt/sources.listในเครื่องเป้าหมายมีเพียง 1 บรรทัด:

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

แต่เมื่อฉันทำsudo apt-get updateบนเครื่องเป้าหมายฉันได้รับข้อผิดพลาดต่อไปนี้:

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.

บนเครื่องเป้าหมาย:

  1. /etc/resolve.confไฟล์มีดังต่อไปนี้:

    # 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/interfacesมีดังต่อไปนี้:

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

นอกจากนี้เนื่องจากมีเพียงบรรทัดเดียวในผลลัพธ์ของapt-get updateข้อผิดพลาดนั้นอย่างชัดเจนErr:3 http://<local_repo_IP>/ubuntu/dists/xenial main/restricted amd64 Packagesฉันจึงตรวจสอบว่ามีไฟล์อยู่ด้วยการทำสิ่งต่อไปนี้ในเครื่องเป้าหมาย

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

และฉันเห็นว่าไฟล์อยู่ที่นั่นเพราะฉันได้ผลลัพธ์ต่อไปนี้:

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

ฉันยังตรวจสอบเพื่อดูว่าฉันสามารถ ping ได้สำเร็จจากเครื่องเป้าหมายไปยังเครื่อง repo ที่ได้ผลเช่นกัน

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

ดังนั้นมีอะไรผิดปกติกับapt-get update? ฉันจะแก้ไขและทำให้มันทำงานได้อย่างไร

PShttp://<local_repo_IP>/ubuntu/dists/xenial/dists/main/restricted/binary-amd64/Packagesฉันเพิ่งสังเกตเห็นว่าข้อผิดพลาดกล่าวว่า เหตุใดจึงพยายามค้นหาrestrictedแพคเกจภายในตัวเครื่อง มันไม่ควรมองเข้าไปhttp://<local_repo_IP>/ubuntu/dists/xenial/restricted/binary-amd64/Packagesเหรอ? ที่จริงเมื่อฉันทำwget http://<local_repo_IP>/ubuntu/dists/xenial/dists/main/restricted/binary-amd64/Packagesมันให้ข้อผิดพลาดต่อไปนี้:

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

เกิดอะไรขึ้นที่นี่? เหตุใดจึงพยายามตรวจสอบไดเรกทอรีที่ไม่มีอยู่ และฉันจะapt-get updateชี้ไปยังเส้นทางที่ถูกต้องได้อย่างไร

คำตอบ:


21

ฉันพบทางออกที่จะแก้ไขetc/apt/sources.listไฟล์เพื่อรวมไฟล์เฉพาะสถาปัตยกรรมของระบบ:

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

ตอนนี้เมื่อฉันทำการอัพเดตมันไม่ได้มีข้อผิดพลาดใด ๆ

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

แค่คิดว่าการโพสต์สิ่งนี้เป็นวิธีแก้ปัญหาที่เป็นไปได้สำหรับทุกคนที่อาจมีปัญหาเดียวกัน


7
การโพสต์คำตอบสำหรับคำถามของคุณเป็นวิธีการที่ถูกต้อง ในนามของคนที่จะพบสิ่งนี้ในอนาคตขอบคุณ!
Alex

1
คุณสามารถทำเครื่องหมายสิ่งนี้เป็นวิธีแก้ปัญหา
topher

4
ฉันไม่คิดว่านี่คือสิ่งที่แก้ไขปัญหาของคุณได้จริงโดยพิจารณาว่าสิ่งที่คุณได้รับข้อผิดพลาดคือamd64ไฟล์และการ จำกัดให้amd64แทบจะไม่หายไปไหน นี่เป็นการเปลี่ยนแปลงเพียงอย่างเดียวที่คุณทำกับsources.listหรือการกำหนดค่าอื่น ๆ ที่เกี่ยวข้องหรือไม่ คุณซิงค์กระจกอีกครั้งก่อนที่จะทำการเปลี่ยนแปลงนี้หรือไม่
muru

ฉันเห็นด้วยกับ @topher คุณควรทำเครื่องหมายว่านี่เป็นวิธีแก้ปัญหา
rockower

@muru ใช่นี่คือการเปลี่ยนแปลงเดียวที่ฉันทำและมันไม่ได้ให้ข้อผิดพลาดหลังจากนั้น และใช่ฉันเห็นด้วยกับคุณว่ามันไม่ควรแก้ไขปัญหา ดังนั้นความคิดใด ๆ ว่าทำไมถึงได้ผล? นอกจากนี้ผมสังเกตเห็นว่าเส้นทางมันก็พยายามที่จะค้นหาใน (ในข้อผิดพลาด) เป็นสิ่งที่ผิด - มันควรจะค้นหาในแต่มันก็ค้นหาในhttp://192.168.12.61/ubuntu/dists/xenial/restricted/binary-amd64/Packages http://192.168.12.61/ubuntu/dists/xenial/dists/main/restricted/binary-amd64/Packagesทำไมถึงเป็นเช่นนั้น? และการระบุสถาปัตยกรรมยังช่วยแก้ปัญหานี้ได้อย่างไร?
Kristada673

0

สิ่งที่ฉันทำใน [amd-64] ... ถ้าอย่างเช่นใน /etc/apt/sources.list คุณได้เปิดใช้งานการปรับปรุง google chrome deb [arch = amd64] http://dl.google com / linux / chrome / deb / main ที่เสถียร

คุณจะเห็นว่าเป็นรายการเดียวที่มี [amd-64] อยู่ในนั้นและมาจากแหล่ง google

ในการกล่าวถึงครั้งแรกของคุณ "deb http: // 192 ... " อาจเป็นการอัปเดตของคุณจนตรอกเมื่อไปถึงแหล่งที่มารายการที่กล่าวถึงการอัปเดตของ Chrome เนื่องจากไม่ได้กล่าวถึงเป็นพิเศษ

หรือดูนโยบาย sudo apt-cache , source.list และ sources.list.d

ในที่สุดฉันอาจกล้าออกไปและทำซ้ำสิ่งนี้ในห้องทดลองของฉันก่อนที่ฉันจะตอบเพิ่มเติม

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.