"Неможливо знайти пакет" під час спроби встановити пакети з APT


209

Коли я намагаюся встановити будь-який пакет через командний рядок, я отримую помилку.

$ sudo apt-get install <package>
Reading package lists... Done
Building dependency tree       
Reading state information... Done
E: Unable to locate package <package>

Хтось може мені в цьому допомогти?


5
Це з'являється дуже недавно, оскільки в сервісі 18.04 за замовчуванням вимкнено всесвіт, мультисвіт і спини.
wjandrea

1
Чи є проблема запуску для вдосконалення корисної підказки, що дається при введенні команди, не встановленої? (Тільки натякаючи, що він знаходиться у сховищі, не ввімкненому, було б дуже корисно)
Thorbjørn Ravn Andersen

Це те, що я сильно вражаю, коли будую контейнери, як правило, і з Docker, і з сингулярністю. У контейнерах Singularity у вас є різні варіанти BootStrap, серед яких є debootstrapі docker. З якоїсь причини, якщо я debootstrapпочинаю з базового зображення Ubuntu (наприклад xenial), я потрапив у цю помилку, коли деякі пакунки неможливо знайти apt-get. Рішення в кінцевому підсумку полягає в переході на dockerBootStrap, після чого він знову функціонує.
користувач5359531

Це зупиняє мій прогрес протягом останніх декількох днів, і це не через те, що всесвіт, мультисвіт або споруди відключені, як пропонує wjandrea.
Джакалопа

@Jackalope Тоді, можливо, назва пакета невірна або потрібно запустити sudo apt update. Скористайтеся apt-cache searchпошуковим терміном, щоб шукати правильну назву пакета.
mchid

Відповіді:


155

Спочатку перевірте, чи пакет дійсно існує:

  1. Перейдіть на пакунок.ubuntu.com за допомогою веб-браузера.
  2. Прокрутіть униз до "Каталоги пошукових пакетів"
  3. Введіть пакет, який ви намагаєтесь встановити, у поле "Ключове слово".

    Увімкнути "Показати лише точні збіги:"

    Змініть "Розподіл", на яку версію Ubuntu ви використовуєте.

    введіть тут опис зображення

Якщо результатів немає , шуканого вами пакету не існує, і наступні кроки не спрацюють. Може знадобитися сторона PPA або альтернативний спосіб установки.

Якщо результати знайдені , пакет існує, і ви можете продовжити наступні дії:

  1. Відкрийте джерела програмного забезпечення (або Програмне забезпечення та оновлення в 13.04 і новіших версіях), шукаючи його в тире.
  2. Відкрийте вкладку «Програмне забезпечення Ubuntu».
  3. Переконайтеся, що перші 4 прапорці на цій вкладці включені:

    введіть тут опис зображення

  4. Оновіть списки пакетів, а потім протестуйте за допомогою цих команд:

    sudo apt-get update
    sudo apt-get install <TEST_PACKAGE>
    

44
Я виявив, що простого sudo apt-get updateбуло достатньо, щоб це виправити. Ваш пробіг може відрізнятися.
Едвард Фолк

1
sudo apt-get updateтакож працював для мене на Ubuntu в Windows 10 (це важливо, оскільки інтерфейс користувача, на який посилається в останній половині цієї відповіді, не існує в цій системі).
Джеймс

1
програмне забезпечення та скріншот екрана врятували мене !!
Калпеш Соні

Не забудьте також пошукати запуск.net !
Джонатан

1
Я запускаю свій сервер із оболонки і не можу відкрити графічні інтерфейси. Чи можливо це вирішити лише за допомогою командного рядка?
Улісс Алвес

81

На цю тему виникає багато питань . Тут я надаю основну / загальну відповідь.

Якщо apt-get installне вдається знайти пакет, пакет, який ви хочете встановити, не вдалося знайти в доданих вами сховищах (тих, що знаходяться в /etc/apt/sources.listі під /etc/apt/sources.list.d/).

Наступна (загальна) процедура допомагає вирішити це:

  1. Переконайтеся, що ви включили сховища Ubuntu:

    Щоб включити всі сховища ( main, universe, restricted, multiverse), використовуйте наступні команди:

    sudo add-apt-repository main
    sudo add-apt-repository universe
    sudo add-apt-repository restricted
    sudo add-apt-repository multiverse
    

    Для отримання додаткової інформації відвідайте Довідку .

  2. Для пошуку PPA для більше пакетів:

    • Перейдіть до пошуку пакетів Ubuntu . (Вже пояснено у цій відповіді)
    • Для зовнішніх сховищ відвідайте оновлення Ubuntu та шукайте екранкнопкою. або відвідайте PPA .
    • Або шукати в Launchpad ppa
    • Знайдіть відповідний ppa відповідно до версії випуску Ubuntu.
  3. Додайте PPA (за допомогою командного рядка) :

    Використовуйте цю команду:

    sudo add-apt-repository ppa:<repository-name>
    

    Для отримання додаткової інформації відвідайте довідку спільноти Ubuntu .

  4. Не забудьте оновити (повідомте про свої зміни):

    Важливо запустити цю команду після зміни будь-яких сховищ:

    sudo apt-get update
    

    Вибір найкращого сервера завантаження може допомогти пришвидшити оновлення.

  5. Нарешті встановіть пакет:

    sudo apt-get install <package>
    

    Зверніться до Управління пакетами за командним рядком .

    Додатково / Порада : ви можете знайти правильне ім'я пакета (тобто ім'я у сховищі), використовуючи apt-cache search <package-name>.



Примітка : Якщо пакет не доступний у сховищі, то вам доведеться чекати, поки він буде доступний (у випадку нових / оновлених версій) або використовувати інші інсталяційні процеси, крім, apt-getнаприклад, компіляції з джерела, завантаження виконуваного двійкового файлу тощо.


3
Можливо, користувач також шукає libname, коли він знаходиться libname2в Debian / Ubuntu.
saiarcot895

3
По-перше, це залежить від пакету, і ви робите ряд припущень. По-перше, ви припускаєте, що ОП визначила правильну назву пакета, на що вказував saiarcot895. По-друге, ви припускаєте, що пакети доступні. Загалом, найкраще спочатку визначити проблему. Тоді якщо взагалі можлива установка з сховищ. Якщо немає конкретної потреби, ppa - це другий вибір. Якщо пакет не знаходиться у сховищах або ppa, його може знадобитися скласти з джерела. Вам справді не вистачає інформації.
Пантера

@ saiarcot895 @ bodhi.zazen: Переглянута відповідь із забезпеченням apt-cache searchправильного імені пакета із сховищ.
Пандія

чудова відповідь людина, ур той, хто повинен бути переможцем
sdream

9

xbmc доступний лише у сховищі Всесвіту , лише з Ubuntu 12.04 (точно). Якщо у вас є старіший випуск Ubuntu, вам потрібно буде оновити або отримати xbmc з іншого місця.

Якщо у вас є Ubuntu 12.04, переконайтеся, що ви увімкнули всесвітнє сховище . Ви можете бачити, які репозиторії увімкнено у файлі /etc/apt/sources.list(та у файлах у каталозі /etc/apt/sources.list.d). Перевірте, чи містить цей файл такий рядок

deb http://al.archive.ubuntu.com/ubuntu/ precise universe

або

deb http://zw.archive.ubuntu.com/ubuntu/ precise main restricted universe multiverse

Якщо ви знайдете лише рядок типу

deb http://mn.archive.ubuntu.com/ubuntu/ precise main restricted

і жоден рядок з universe, не додайте universeв кінці цього рядка або окремий рядок із precise universe, як показано вище.

Якщо вам потрібно змінити /etc/apt/sources.list, запустіть sudo apt-get updateпотім, а потім спробуйте встановити ще раз. Якщо пакет все ще не знайдено, опублікуйте повний вміст /etc/apt/sources.listта вихід sudo apt-get update.


@EliahKagan Я не думав, що мою відповідь можна інтерпретувати так, я намагався уточнити. Чому б alі ні zw? (Я намагаюся вибрати відповідне дзеркало для ОП, коли вони дають підказку, але тут я поняття не маю.)
Жил

5

Я новачок у Ubuntu, але пишу це, коли я виявив деякі рішення, щоб уникнути помилок "Неможливо знайти пакет". Є три обставини, коли це може спричинити шок.

  1. Після встановлення Ubuntu, якщо ви не оновлюєте його з подальшими оновленнями, це може статися.
  2. Якщо в майбутньому буде багато оновлень програмного забезпечення, переконайтесь, що всі важливі оновлення безпеки / рекомендовані оновлення вимкнено, набравши " Менеджер оновлень ", натиснувши Alt+ F2.
  3. Випуск перший і два може статися навіть після оновлення або очищення всіх оновлень. Але вічне рішення: Спробуйте пункти 1 і 2, потім введіть sudo apt-get killmanager, якщо не працює, немає проблем, перейдіть до введення sudo apt-get update, а потім введіть sudo apt-get upgrade.

Тепер ви повинні мати можливість встановити будь-яке програмне забезпечення через Terminal.


Якщо ви все ще отримаєте помилку в рядку "sudo apt-get update", спробуйте скористатися "sudo apt-get upgrade". Це спрацює .. Хлопці !! Оскільки Linux має великі регістри, будь ласка, переконайтеся, що ви використовуєте всі команди малими літерами на зразок "sudo" замість "Sudo"
Shaan Sundar

5

У випадку, коли спробували встановити файл:

sudo apt-get install libstdc++.so.6

замість пакету. Ви отримуєте повідомлення про помилку:

E: Unable to locate package libstdc++.so.6
E: Couldn't find any package by regex 'libstdc++.so.6'

тому що ви намагалися встановити файл, libstdc++.so.6який ви не можете встановити, оскільки він знаходиться в пакеті debian.

Ви можете apt-fileшукати пакет, який містить цей файл. Щоб встановити його, введіть:

sudo apt-get install apt-file

Тоді вам доведеться оновити індекс.

sudo apt-file update

Після цього ви можете шукати пакет, який містить файл libstdc++.so.6:

sudo apt-file find libstdc++.so.6

Тоді ви знайдете безліч пакетів, що містять шуканий файл. У цей приклад я вставляю лише один результат пошуку:

libstdc++6: /usr/lib/x86_64-linux-gnu/libstdc++.so.6

Потім ви можете встановити необхідний пакет libstdc++6:

sudo apt-get install libstdc++6
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.