ทำไมฉันถึงได้รับ "ไม่พบคำสั่ง" deb "?


102

ฉันเจอคำแนะนำในการติดตั้งหลายอย่างซึ่งรวมถึงคำสั่งdebด้วย แต่ปรากฏว่าคำสั่งนี้ไม่สามารถใช้ได้กับการติดตั้งของฉัน

ฉันจะรับคำสั่งนี้ได้ที่ไหน มีวิธีแก้ไขไหม?


3
โปรดยอมรับคำตอบสำหรับคำถามที่คุณมีคำตอบที่ดีเพื่อแสดงว่าคุณชอบคำตอบและช่วยคุณได้มากที่สุด คุณสามารถทำได้โดยทำเครื่องหมายถูกที่ด้านซ้าย
ζ--

2
ฉันอายที่ฉันไม่ได้ตระหนักถึงคำแนะนำที่ฉันอ่านไม่ได้แสดงให้ฉันเห็นบางสิ่งบางอย่างที่จะพิมพ์ที่บรรทัดคำสั่งมันแสดงให้ฉันเห็นบรรทัดที่จะใส่ในไฟล์ ฉันดีใจที่คุณถามคำถามนี้!
Tyler Collier

คำตอบ:


95

'deb' ไม่ใช่คำสั่ง มันถูกใช้ใน/etc/apt/sources.listไฟล์เพื่อระบุที่เก็บซอฟต์แวร์ Debian

จากUbuntu Manpage - แหล่งที่มารายการ :

รายการแหล่งข้อมูลได้รับการออกแบบมาเพื่อรองรับจำนวนแหล่งที่ใช้งานอยู่และสื่อแหล่งต่าง ๆ ไฟล์จะแสดงรายการหนึ่งรายการต่อบรรทัดโดยมีรายการที่ต้องการมากที่สุดก่อน รูปแบบของแต่ละบรรทัดคือ: type uri args รายการแรกพิมพ์กำหนดรูปแบบสำหรับ args uri เป็น Universal Resource Identifier (URI) ซึ่งเป็น superset ของ Universal Resource Locator หรือ URL ที่เฉพาะเจาะจงและเป็นที่รู้จักมากขึ้น

ชนิดของเดบิตอธิบายไฟล์เก็บถาวร Debian สองระดับแบบกระจาย / ส่วนประกอบ รูปแบบสำหรับรายการ source.list ที่ใช้ชนิด deb และ deb-src คือ:

deb [ options ] uri distribution [component1] [component2] [...]

URI สำหรับประเภท deb ต้องระบุฐานของการกระจาย Debian ซึ่ง APT จะค้นหาข้อมูลที่ต้องการ การกระจายสามารถระบุเส้นทางที่แน่นอนซึ่งในกรณีที่ส่วนประกอบจะต้องถูกละเว้นและการกระจายจะต้องจบลงด้วยการเฉือน (/) สิ่งนี้มีประโยชน์เมื่อกรณีเฉพาะส่วนย่อยเฉพาะของไฟล์เก็บถาวรที่แสดงโดย URI นั้นเป็นที่สนใจ หากการแจกจ่ายไม่ได้ระบุเส้นทางที่แน่นอนจะต้องมีส่วนประกอบอย่างน้อยหนึ่งรายการ

ดังนั้นถ้าฉันมีdeb http://archive.ubuntu.com/ubuntu/ quantal main restrictedในsources.listมันบอกว่าฉันมีเก็บ Debian ซึ่งอยู่บนพื้นฐาน " http://archive.ubuntu.com/ubuntu/ " กระจายคือ "quantal" และส่วนประกอบเป็น "หลัก" และ "จำกัด"


22
และsources.listอยู่ใน/etc/apt/12.04
Ahmed Fasih

3
อาจมีประโยชน์หากคุณพูดว่าบรรทัด "deb" เป็นคำแนะนำที่เพิ่มในรายการแหล่งความถนัด นั่นจะช่วยขจัดความสับสนในเรื่องทั้งหมดที่เกิดขึ้น
Shahriyar Imanov

23

ชอบคำตอบโดย@Eric Carvalho debไม่ใช่บรรทัดคำสั่งหากคุณมี deb แล้ว url เช่นนี้:

deb http://download.virtualbox.org/virtualbox/debian trusty contrib 

แก้ไข

เช่นเดียวกับการกระทำของ@muruคุณต้องสร้างไฟล์ใหม่โดยมีนามสกุล.listเป็น/etc/apt/source.list.d/โฟลเดอร์:

ตัวอย่าง : ฉันต้องการดาวน์โหลด Oracle virtualbox สร้างไฟล์ใหม่:

sudo gedit /etc/apt/sources.list.d/oracle-virtualbox-trusty.list 

จากนั้นคัดลอกและวางบรรทัดของ deb ลงในไฟล์นี้


1
1. มันaptไม่ใช่opt(แม้ว่าจะมีopt) และ 2. ไม่เคยแก้ไข/etc/apt/sources.listเพื่อเพิ่มบรรทัดเว้นแต่ว่าจะเป็นที่เก็บมิเรอร์ / Ubuntu อย่างเป็นทางการ สร้างไฟล์ใหม่/etc/apt/sources.list.dโดยใช้ส่วนขยายที่.listมีบรรทัดนั้น
muru

1
@muru " ไม่ต้องแก้ไข /etc/apt/sources.list เพื่อเพิ่มบรรทัดเว้นแต่เป็น Ubuntu / ที่เก็บอย่างเป็นทางการของ Ubuntu " ทำไม? แน่นอนว่าการสร้าง.listไฟล์/etc/apt/sources.list.dเป็นสิ่งที่ฉันทำภายใต้สถานการณ์เหล่านี้และเป็นสิ่งที่ฉันมักจะแนะนำ แต่ฉันเห็นเหตุผลที่จะไม่มีการยืนยันด้วยตนเองเพิ่มแหล่งซอฟแวร์ของบุคคลที่ 3 /etc/apt/sources.list.dไปใน Conffiles บางตัวเป็นไปได้ที่ดีที่สุดที่ผู้ใช้ไม่สามารถแก้ไขได้ (เช่นใช้/etc/profile.dเกิน/etc/profileใช้เนื้อหา/etc/sudoers.dเกิน/etc/sudoers) แต่sources.listมีการเปลี่ยนแปลงบ่อยครั้ง (ปรับแต่งโดย Ubiquity ถึงกระจกระดับภูมิภาค)
Eliah Kagan

@EliahKagan คุณเคยเห็น Ubiquity เพิ่มพื้นที่เก็บข้อมูลบุคคลที่สาม (ไม่ใช่มิเรอร์) ในแหล่งที่มาหรือไม่ หรือสำหรับเรื่องนั้นเครื่องมือทางการใด ๆ แหล่งที่มารายการมีอยู่ด้วยเหตุผล ฉันจะยังคงยืนยันว่ามันถูกใช้สำหรับที่เก็บของบุคคลที่สาม
muru

@muru ขออภัยฉันไม่ชัดเจน ที่ผมกล่าวถึงพฤติกรรมการแพร่หลายของการชี้ให้เห็น/etc/apt/sources.listไม่ได้เป็นหนึ่งในconffiles ที่หนึ่งสามารถปล่อยให้อยู่คนเดียวเพื่ออำนวยความสะดวกการอัพเกรดเรียบ --as ที่มักจะ (อาจจะปกติ) แรงจูงใจที่อยู่เบื้องหลังที่แข็งแกร่งข้อเสนอแนะเพื่อต้องการทำให้ไฟล์ในการแก้ไขX.d Xฉันไม่แนะนำให้ Ubiquity เปิดใช้งาน repos ของบุคคลที่สาม แต่อย่างใด คุณยังไม่ได้อธิบายว่ามีอะไรพิเศษเกี่ยวกับ repos ดังกล่าวเพื่อให้มันผิดจริง(เช่น "ไม่เคยแก้ไข ... ") เพื่อนำมาใส่sources.listใหม่
Eliah Kagan

@EliahKagan ไม่มีอะไร "ผิดจริง" ในการทำเช่นนั้นถ้านั่นเป็นปัญหาของคุณกับคำสั่ง "ไม่เคย [ทำ X]" ไม่ได้หมายความว่าการทำ X ผิดเสมอไปและสามารถหมายความว่าการทำ X นั้นเป็นการปฏิบัติที่ไม่ดี ("ไม่เคยใช้ GOTO") ตอนนี้มีความสุข? ทำซ้ำ: ฉันจะยังคงยืนยันว่า source.list.d จะถูกใช้สำหรับที่เก็บของบุคคลที่สามและแหล่งที่มารายการเท่านั้นสำหรับมิเรอร์และ repos อย่างเป็นทางการเว้นแต่ว่าคุณสามารถให้ฉันชัดเจนเสียงเหตุผลว่าทำไมมันเป็นความคิดที่ดี ทำเช่นนั้น
muru

10

debไม่ใช่คำสั่ง unix หากคุณมีบรรทัดเหมือนดังต่อไปนี้ (แหล่งที่มาสำหรับนักเทียบท่า):

deb https://apt.dockerproject.org/repo ubuntu-xenial main

มันเป็นบรรทัดที่จะต้องมีอยู่ในอูบุนตูของคุณsources.listเพื่อให้apt-getสามารถค้นหาแพ็คเกจในอนาคตได้จากแหล่งใหม่นี้

อย่างไรก็ตามการแก้ไข/etc/apt/sources.listไฟล์ไม่ใช่วิธีปฏิบัติที่ดี แทนที่จะเพิ่มdebบรรทัดเป็นรายการไปยัง.listไฟล์ใหม่ภายใน/etc/apt/sources.list.d/ไดเรกทอรี เราจะสร้างdocker.listไฟล์ดังนี้:

echo "deb https://apt.dockerproject.org/repo ubuntu-xenial main" | sudo tee /etc/apt/sources.list.d/docker.list

เมื่อเสร็จแล้วอย่าลืมดำเนินการsudo apt-get updateและคุณควรจะสามารถค้นหาแพ็คเกจใหม่จากแหล่งนี้ได้อย่างง่ายดาย


8

Deb ไม่ใช่คำสั่งจริง ๆ (ตอนแรกฉันก็คิดเหมือนกัน) - ถ้าคุณพยายามดาวน์โหลด / ติดตั้ง deb ให้ทำเช่นนี้ (ตัวอย่าง):

wget http://whatever.com/whatever.deb

แล้วก็ dpkg -i whatever.deb

จากนั้นเรียกใช้คำสั่ง:

sudo apt-get update

2
มีความเกี่ยวข้อง 100% และดีกว่าคำตอบที่ดีที่สุดข้างต้น เห็นได้ชัดว่าเขาพยายามดาวน์โหลด / ติดตั้ง. deb
dylanh724

2

บน Ubuntu คุณไม่ต้องแก้ไขด้วยตนเองsource.listเพื่อเพิ่มพื้นที่เก็บข้อมูล แต่คุณสามารถใช้งานadd-apt-repositoryได้เช่นเดียวกับ PPA

ตัวอย่างเช่นหากต้องการเพิ่มที่เก็บ LLVM คุณสามารถโทร:

sudo add-apt-repository 'deb http://apt.llvm.org/trusty/ llvm-toolchain-trusty main'

อย่างที่คุณเห็นเราจะต้องผ่านdebบรรทัดเป็นอาร์กิวเมนต์เดียวไปยังคำสั่ง


2

นี่ไม่ใช่คำสั่ง CLI

นี่คือข้อมูลเกี่ยวกับพื้นที่เก็บข้อมูลแพคเกจ Debian บางส่วน (ใช้โดย Ubuntu)

หากคุณต้องการใช้พื้นที่เก็บข้อมูลนี้:

  1. เปิดไฟล์ที่/etc/apt/sources.listมีสิทธิ์ผู้ดูแลระบบ

  2. เพิ่มลงในไฟล์นี้โดยมีข้อมูลเกี่ยวกับที่เก็บข้อมูลที่ขึ้นต้นด้วย deb ...

  3. บันทึกไฟล์

  4. เรียกใช้คำสั่งนี้:

    apt-get update

ตอนนี้คุณจะสามารถใช้พื้นที่เก็บข้อมูลนี้

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