Почему я получаю «Команда« deb »не найдена»?

102

Я сталкивался с несколькими инструкциями по установке, которые включают команду deb. Но похоже, что эта команда недоступна в моей установке.

Где я могу получить эту команду? Есть ли обходной путь?

Кевин Бертон
источник
3
Примите ответ на вопросы, на которые у вас есть хороший ответ, чтобы показать, что вам нравится ответ, и он вам больше всего помог. Вы можете сделать это с галочкой слева.
ζ--
2
Меня смущает, что я не осознавал, что инструкции, которые я читал, не показывал мне что-то, что нужно напечатать в командной строке, это показывало мне строку для вставки в файл. Я рад, что вы задали этот вопрос!
Тайлер Колли

Ответы:

96

'deb' не является командой Он используется в /etc/apt/sources.listфайле для обозначения репозитория программного обеспечения Debian.

Из справочной страницы Ubuntu - sources.list :

Список источников предназначен для поддержки любого количества активных источников и различных источников мультимедиа. В файле указывается один источник в строке, причем наиболее предпочтительный источник указан первым. Формат каждой строки: введите uri args. Первый элемент type определяет формат для аргументов. uri - это универсальный идентификатор ресурса (URI), который представляет собой расширенный набор более конкретного и известного универсального указателя ресурса или URL-адреса.

Тип deb описывает типичный двухуровневый архив Debian, дистрибутив / компонент. Формат записи sources.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/ », дистрибутив «количественный», а компоненты «основные» и «ограниченные».

Эрик Карвалью
источник
22
И sources.listнаходится /etc/apt/на 12.04.
Ахмед Фасих
4
Может быть полезно, если вы говорите, что строки "deb" - это инструкции, добавленные в списки источников Aptitude. Это устранит всю путаницу, которую создает весь этот вопрос.
Шахрияр Иманов
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с этой строкой.
Муру
1
@muru " Никогда не редактируйте /etc/apt/sources.list, чтобы добавить строку, если это не зеркало или официальный репозиторий Ubuntu. " Почему? Конечно, создание .listфайлов /etc/apt/sources.list.d- это то, что я делаю в этих условиях, и это то, что я обычно рекомендую. Но я не вижу причин настаивать на добавлении сторонних программных источников /etc/apt/sources.list.d. Некоторые файлы по возможности лучше не редактировать пользователем (например, использовать /etc/profile.dболее /etc/profile, возможно, использовать /etc/sudoers.dболее /etc/sudoers), но sources.listчасто изменяются. (Даже настроенный Ubiquity для регионального зеркала.)
Элия ​​Каган
@EliahKagan, когда вы когда-нибудь видели, чтобы Ubiquity добавил сторонний репозиторий (не зеркальный) в sources.list? Или в этом отношении, любой официальный инструмент? sources.list.d присутствует по причине. Я буду продолжать настаивать на том, чтобы он использовался для сторонних репозиториев.
Муру
@muru Извините, мне было непонятно. Я упомянул поведение Ubiquity, чтобы указать, что /etc/apt/sources.listэто не одна из конфессий, которую можно оставить в покое, чтобы облегчить более плавное обновление - поскольку это часто (возможно, обычно) мотивирует сильные предложения предпочесть создание файлов X.dредактированию X. Я не предполагаю, что Ubiquity позволяет сторонним репозиториям каким-либо образом. Вы еще не объяснили, что особенного в таких репозиториях, чтобы сделать их неправильными (т. Е. «Никогда не редактировать ...»), чтобы вставить их sources.list.
Элия ​​Каган
@EliahKagan В этом нет ничего «действительно неправильного», если это ваша проблема с утверждением. «Никогда [делай X]» не всегда означает, что делать X неправильно, это может означать, что делать X - плохая практика («Никогда не используйте GOTO»). Счастливы сейчас? Повторяю: я буду продолжать настаивать на том, чтобы sources.list.d использовался для сторонних репозиториев и sources.list только для зеркал и официальных репозиториев, если только вы не можете дать мне ясную, ясную причину, почему это хорошая идея, а не сделать это.
Муру
10

debэто не команда Unix. Если у вас есть строка, подобная следующей (источник для docker):

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

это строка, которая должна быть доступна в вашем Ubuntu, 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

После этого не забудьте выполнить a, sudo apt-get updateи теперь вы сможете легко найти новые пакеты из этого источника.

Ракиб
источник
8

Деб на самом деле не команда (сначала я тоже так думал) - Предполагая, что вы пытаетесь загрузить / установить деб, сделайте это (например):

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

тогда dpkg -i whatever.deb

затем запустите команды:

sudo apt-get update
dylanh724
источник
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

Теперь вы сможете использовать этот репозиторий.

simhumileco
источник