Tại sao tôi nhận được lệnh Command 'deb' không tìm thấy?


102

Tôi đã đi qua một số hướng dẫn cài đặt bao gồm lệnh deb. Nhưng có vẻ như lệnh này không có sẵn trong cài đặt của tôi.

Tôi có thể nhận lệnh này ở đâu? Có một công việc xung quanh?


3
Hãy chấp nhận một câu trả lời cho những câu hỏi mà bạn có câu trả lời hay, để cho thấy rằng bạn thích một câu trả lời và nó giúp bạn nhiều nhất. Bạn có thể làm như vậy với dấu kiểm bên trái.
ζ--

2
Tôi lúng túng rằng tôi đã không nhận ra các hướng dẫn mà tôi đang đọc không chỉ cho tôi thứ gì đó để gõ vào dòng lệnh, nó đang hiển thị cho tôi một dòng để đặt vào một tệp. Tôi rất vui vì bạn đã hỏi câu hỏi này!
Tyler Collier

Câu trả lời:


95

'Deb' không phải là một lệnh. Nó được sử dụng trong /etc/apt/sources.listtệp để chỉ ra kho lưu trữ phần mềm Debian.

Từ Ubuntu Manpage - nguồn.list :

Danh sách nguồn được thiết kế để hỗ trợ bất kỳ số lượng nguồn hoạt động và nhiều phương tiện nguồn khác nhau. Tệp liệt kê một nguồn trên mỗi dòng, với nguồn được ưu tiên nhất được liệt kê đầu tiên. Định dạng của mỗi dòng là: gõ uri args. Mục đầu tiên, loại xác định định dạng cho args. uri là Mã định danh tài nguyên chung (URI), là siêu bộ của Trình định vị tài nguyên phổ biến cụ thể và nổi tiếng hơn hoặc URL.

Kiểu gỡ lỗi mô tả một kho lưu trữ, phân phối / thành phần Debian hai cấp điển hình. Định dạng cho mục nhập nguồn.list sử dụng các loại deb và deb-src là:

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

URI cho loại gỡ lỗi phải chỉ định cơ sở phân phối Debian, từ đó APT sẽ tìm thấy thông tin cần thiết. phân phối có thể chỉ định một đường dẫn chính xác, trong trường hợp đó các thành phần phải được bỏ qua và phân phối phải kết thúc bằng dấu gạch chéo (/). Điều này hữu ích khi trường hợp chỉ một phần phụ cụ thể của kho lưu trữ được biểu thị bởi URI được quan tâm. Nếu phân phối không chỉ định một đường dẫn chính xác, ít nhất một thành phần phải có mặt.

Vì vậy, nếu tôi có deb http://archive.ubuntu.com/ubuntu/ quantal main restrictedtrong sources.listnó nói tôi có một kho lưu trữ Debian mà là dựa trên " http://archive.ubuntu.com/ubuntu/ ", sự phân bố là "Định lượng" và các thành phần là "chính" và "hạn chế".


22
sources.listlà vào /etc/apt/ngày 12.04.
Ahmed Fasih

4
Có thể hữu ích nếu bạn nói rằng các dòng "deb" là các hướng dẫn được thêm vào danh sách nguồn Aptitude. Điều đó sẽ loại bỏ số lượng nhầm lẫn mà toàn bộ vấn đề này tạo ra.
Shahriyar Imanov

23

Giống như câu trả lời của @Eric Carvalho deb không phải là dòng lệnh Nếu bạn có deb thì url như thế này:

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

Biên tập

Giống như cam kết của @muru , bạn cần tạo tệp mới với phần mở rộng .listvào /etc/apt/source.list.d/thư mục:

Ví dụ : Tôi muốn tải xuống hộp ảo Oracle, tạo tệp mới:

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

Sau đó sao chép và dán dòng deb vào tập tin này


1
1. Đó là apt, không opt(mặc dù có opt) và 2. Không bao giờ chỉnh sửa /etc/apt/sources.listđể thêm một dòng trừ khi đó là kho lưu trữ nhân bản / chính thức của Ubuntu. Tạo một tệp mới /etc/apt/sources.list.dvới phần mở rộng .listvới dòng đó.
muru

1
@muru " Không bao giờ chỉnh sửa /etc/apt/source.list để thêm một dòng trừ khi đó là kho lưu trữ nhân bản / chính thức của Ubuntu. " Tại sao? Chắc chắn, làm cho .listcác tập tin trong /etc/apt/sources.list.dlà những gì tôi làm trong những trường hợp này và là những gì tôi thường đề nghị. Nhưng tôi thấy không có lý do gì để khăng khăng thêm các nguồn phần mềm của bên thứ 3 vào /etc/apt/sources.list.d. Một số conffiles là khi tốt nhất có thể không được người dùng chỉnh sửa (ví dụ: sử dụng /etc/profile.dhơn /etc/profile, có thể sử dụng /etc/sudoers.dhơn /etc/sudoers), nhưng sources.listthường được thay đổi. (Thậm chí được Ubiquity tùy chỉnh thành một tấm gương trong khu vực.)
Eliah Kagan

@EliahKagan khi bạn đã bao giờ thấy Ubiquity thêm kho lưu trữ của bên thứ ba (không phải nhân bản) vào nguồn.list chưa? Hoặc cho vấn đề đó, bất kỳ công cụ chính thức? nguồn.list.d có mặt vì một lý do. Tôi sẽ tiếp tục nhấn mạnh rằng nó được sử dụng cho các kho lưu trữ của bên thứ ba.
muru

@muru Xin lỗi, tôi không rõ. Tôi đã đề cập đến hành vi của Ubiquity để chỉ ra /etc/apt/sources.listkhông phải là một trong những vấn đề mà người ta có thể để một mình để tạo điều kiện nâng cấp mượt mà hơn - thường là (có lẽ thường) động lực đằng sau các đề xuất mạnh mẽ để tạo tệp X.dđể chỉnh sửa X. Tôi không đề xuất Ubiquity cho phép repos của bên thứ ba theo bất kỳ cách nào. Tuy nhiên, bạn chưa giải thích điều gì đặc biệt về các repos như vậy, để làm cho nó thực sự sai (nghĩa là "Không bao giờ chỉnh sửa ...") để đặt chúng vào sources.list.
Eliah Kagan

@EliahKagan Không có gì "thực sự sai" khi làm như vậy, nếu đó là vấn đề của bạn với tuyên bố. "Không bao giờ [làm X]" không phải lúc nào cũng có nghĩa là làm X là sai, điều đó có thể và có nghĩa là làm X là thực hành tồi ("Không bao giờ sử dụng GOTO."). Đang hạnh phúc? Lặp lại: Tôi sẽ tiếp tục nhấn mạnh rằng nguồn.list.d chỉ được sử dụng cho kho lưu trữ và nguồn của bên thứ ba. Chỉ dành cho gương và repos chính thức, trừ khi bạn có thể cho tôi một lý do rõ ràng, hợp lý về lý do tại sao đó không phải là ý tưởng hay làm như vậy.
muru

10

debkhông phải là một lệnh unix. Nếu bạn có một dòng như sau (nguồn cho docker):

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

đó là một dòng phải có sẵn trong Ubuntu của bạn sources.listđể apt-getcó thể tìm thấy các gói trong tương lai từ nguồn mới này.

Tuy nhiên, đó không phải là một cách thực hành tốt để chỉnh sửa /etc/apt/sources.listtệp trực tiếp. Thay vào đó, thêm debdòng dưới dạng một mục vào một .listtệp mới trong /etc/apt/sources.list.d/thư mục. Chúng tôi sẽ tạo một docker.listtập tin như thế này:

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

Sau khi hoàn thành, hãy nhớ thực hiện một sudo apt-get updatevà bây giờ bạn có thể tìm thấy các gói mới từ nguồn này một cách dễ dàng.


8

Deb thực sự không phải là một lệnh (lúc đầu tôi cũng nghĩ vậy) - Giả sử bạn đang cố tải xuống / cài đặt một deb, hãy làm điều này (ví dụ):

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

sau đó dpkg -i whatever.deb

sau đó chạy các lệnh:

sudo apt-get update

2
100% có liên quan, và tốt hơn so với câu trả lời tốt nhất ở trên. Rõ ràng là anh ta đang cố tải xuống / cài đặt một .deb
dylanh724

2

Trên Ubuntu, bạn không phải chỉnh sửa thủ công source.listđể thêm kho lưu trữ. Thay vào đó, bạn có thể sử dụng add-apt-repository, như bạn sẽ làm cho PPA.

Ví dụ: để thêm kho lưu trữ LLVM, bạn có thể gọi:

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

Như bạn có thể thấy, chúng ta phải truyền debdòng dưới dạng một đối số cho lệnh.


2

Đây không phải là lệnh CLI.

Đây là thông tin về một số kho lưu trữ gói Debian (cũng được sử dụng bởi Ubuntu).

Nếu bạn muốn sử dụng kho lưu trữ này:

  1. Mở tệp /etc/apt/sources.listvới quyền quản trị viên.

  2. Thêm vào tệp này một dòng với thông tin về kho lưu trữ bắt đầu bằng deb ...

  3. Lưu các tập tin.

  4. Chạy lệnh này:

    cập nhật apt-get

Bây giờ bạn sẽ có thể sử dụng kho lưu trữ này.

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.