„Nie można zlokalizować pakietu” podczas próby zainstalowania pakietów za pomocą APT

209

Gdy próbuję zainstalować dowolny pakiet za pomocą wiersza polecenia, pojawia się błąd.

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

Czy ktokolwiek może mi z tym pomóc?

CodeGeeky
źródło
5
To się ostatnio pojawia, ponieważ 18.04 Server domyślnie wyłącza wszechświat, multiwers i backporty.
wjandrea
1
Czy istnieje problem ze starterem w celu poprawy pomocnej wskazówki podanej podczas wprowadzania polecenia niezainstalowanego? (Bardzo wskazanie, że nie jest włączone repozytorium, byłoby bardzo pomocne)
Thorbjørn Ravn Andersen
To coś, co często uderzyłem, gdy buduję kontenery, zwykle zarówno z dokerem, jak i osobliwością. W kontenerach Singularity masz różne opcje BootStrap, wśród nich są debootstrapi docker. Z jakiegoś powodu, jeśli używam, debootstrapaby zacząć od podstawowego obrazu Ubuntu (np. xenial), Trafiam w ten błąd, gdy nie można znaleźć niektórych pakietów apt-get. Rozwiązaniem jest przełączyć się na dockerBootStrap, a następnie działa ponownie.
user5359531
To powstrzymuje moje postępy w ciągu ostatnich kilku dni i nie wynika to z wyłączenia wszechświata, multiwersum lub backportów, jak sugeruje wjandrea.
Jackalope,
@Jackalope Może więc nazwa pakietu jest niepoprawna lub musisz uruchomić sudo apt update. Użyj, apt-cache searcha następnie wyszukiwanego terminu, aby wyszukać poprawną nazwę pakietu.
mchid

Odpowiedzi:

155

Najpierw sprawdź, czy pakiet rzeczywiście istnieje:

  1. Wejdź na packages.ubuntu.com w przeglądarce internetowej.
  2. Przewiń w dół do „Przeszukaj katalogi pakietów”
  3. Wpisz pakiet, który próbujesz zainstalować, w polu „Słowo kluczowe”.

    Włącz „Pokaż tylko dokładne dopasowania:”

    Zmień „Dystrybucję”, z której wersji Ubuntu korzystasz.

    wprowadź opis zdjęcia tutaj

Jeśli nie ma wyników , pakiet, którego szukasz, nie istnieje, a kolejne kroki nie będą działać. Może wymagać PPA strony trzeciej lub alternatywnej metody instalacji.

Jeśli wyniki zostaną znalezione , pakiet istnieje i możesz kontynuować następujące kroki:

  1. Otwórz Źródła oprogramowania (lub Oprogramowanie i aktualizacje w 13.04+), wyszukując je w Dash.
  2. Otwórz zakładkę „Oprogramowanie Ubuntu”.
  3. Upewnij się, że pierwsze 4 pola wyboru na tej karcie są włączone:

    wprowadź opis zdjęcia tutaj

  4. Zaktualizuj listy pakietów, a następnie przetestuj za pomocą następujących poleceń:

    sudo apt-get update
    sudo apt-get install <TEST_PACKAGE>
    
kiri
źródło
44
Odkryłem, że proste sudo apt-get updatewystarczyło, aby to naprawić. Twój przebieg może się różnić.
Edward Falk,
1
sudo apt-get updatedziałało również dla mnie w systemie Ubuntu w systemie Windows 10 (jest to ważne, ponieważ interfejs użytkownika wymieniony w drugiej połowie tej odpowiedzi nie istnieje w tym systemie).
James
1
uratował mnie zrzut ekranu oprogramowania i aktualizacji !!
Kalpesh Soni
Nie zapomnij przeszukać także launchpad.net !
Jonathan
1
Używam mojego serwera z powłoki i nie mogę otworzyć GUI. Czy można to rozwiązać tylko za pomocą wiersza poleceń?
Ulysses Alves
81

Istnieje wiele pytań na ten temat. Tutaj udzielam podstawowej / ogólnej odpowiedzi.

Gdy apt-get installnie można zlokalizować pakietu, nie można znaleźć pakietu, który chcesz zainstalować w repozytoriach, które dodałeś (te wewnątrz /etc/apt/sources.listi poniżej /etc/apt/sources.list.d/).

Następująca (ogólna) procedura pomaga rozwiązać ten problem:

  1. Upewnij się, że masz włączone repozytoria Ubuntu:

    Aby włączyć wszystkie repozytoria ( main, universe, restricted, multiverse), użyj następujących poleceń:

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

    Odwiedź Pomoc, aby uzyskać więcej informacji.

  2. Aby znaleźć PPA dla większej liczby pakietów:

  3. Dodaj PPA (z wiersza poleceń) :

    Użyj tego polecenia:

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

    Odwiedź Ubuntu społeczności pomocy , aby uzyskać więcej informacji.

  4. Nie zapomnij zaktualizować (poinformuj apt o swoich zmianach):

    Konieczne jest uruchomienie tego polecenia po zmianie dowolnego repozytorium:

    sudo apt-get update
    

    Wybór najlepszego serwera pobierania może pomóc przyspieszyć aktualizację.

  5. Na koniec zainstaluj pakiet:

    sudo apt-get install <package>
    

    Zobacz Zarządzanie pakietami według wiersza poleceń .

    Dodatkowa / Porada : możesz znaleźć poprawną nazwę pakietu (tj. Nazwę w repozytorium) za pomocą apt-cache search <package-name>.



Uwaga : Jeśli pakiet nie jest dostępny w repozytorium, musisz poczekać, aż będzie dostępny (w przypadku nowych / zaktualizowanych wersji) lub użyć innych procesów instalacyjnych niż apt-getnp. Kompilacja ze źródła, pobranie pliku binarnego itp.

Pandya
źródło
3
Może być również tak, że użytkownik szuka libname, gdy jest libname2w Debian / Ubuntu.
saiarcot895
3
Po pierwsze, zależy od pakietu i przyjmujesz szereg założeń. Po pierwsze, zakładasz, że OP zidentyfikował prawidłową nazwę pakietu, jak wskazał saiarcot895. Po drugie, zakładasz, że pakiety są dostępne. Ogólnie najlepiej jest najpierw zidentyfikować problem. Następnie, jeśli to możliwe, zainstaluj z repozytoriów. Jeśli nie ma konkretnej potrzeby, ppa jest drugim wyborem. Jeśli pakiet nie znajduje się w repozytoriach lub ppa, może być konieczne skompilowanie go ze źródła. Naprawdę nie masz wystarczającej ilości informacji.
Panther
@ saiarcot895 @ bodhi.zazen: Poprawiona odpowiedź z zapewnieniem apt-cache searchznalezienia poprawnej nazwy pakietu z repozytoriów.
Pandya
niesamowita odpowiedź, człowieku, który powinien zostać zwycięzcą
sdream
9

xbmc jest dostępne tylko w repozytorium wszechświata , tylko od Ubuntu 12.04 (precyzyjnie). Jeśli masz starszą wersję Ubuntu, musisz zaktualizować lub uzyskać xbmc z innego miejsca.

Jeśli masz Ubuntu 12.04, upewnij się, że masz włączone repozytorium wszechświata . Możesz zobaczyć, jakie repozytoria masz włączone w pliku /etc/apt/sources.list(i plikach w katalogu /etc/apt/sources.list.d). Sprawdź, czy ten plik zawiera linię podobną do

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

lub

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

Jeśli znajdziesz tylko taką linię

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

i bez wiersza z universe, dodaj universena końcu tego wiersza lub oddzielną linię z precise universe, jak pokazano powyżej.

Jeśli musisz zmodyfikować /etc/apt/sources.list, uruchom sudo apt-get updatepóźniej, a następnie spróbuj zainstalować ponownie. Jeśli pakiet nadal nie został znaleziony, opublikuj pełną treść /etc/apt/sources.listi dane wyjściowe sudo apt-get update.

Gilles
źródło
@EliahKagan Nie sądziłem, że moja odpowiedź może być interpretowana w ten sposób, starałem się wyjaśnić. Dlaczego nie ali zw? (Staram się wybrać odpowiednie lustro dla OP, gdy dają one wskazówkę, ale tutaj nie mam pojęcia.)
Gilles
5

Jestem nowy w Ubuntu, ale piszę to, ponieważ odkryłem niektóre rozwiązania pozwalające uniknąć błędów „Nie można znaleźć pakietu”. Istnieją trzy okoliczności, w których może dojść do szoku.

  1. Po zainstalowaniu Ubuntu, jeśli go nie zaktualizujesz, a następnie Aktualizacje, może się to zdarzyć.
  2. Jeśli w przyszłości będzie wiele aktualizacji oprogramowania, upewnij się, że wszystkie ważne aktualizacje zabezpieczeń / zalecane aktualizacje są wyłączone, wpisując „ Menedżer aktualizacji ” po naciśnięciu Alt+ F2.
  3. Problem pierwszy i drugi może się zdarzyć nawet po aktualizacji lub usunięciu wszystkich aktualizacji. Ale odwiecznym rozwiązaniem jest: Wypróbuj punkt 1 i 2, a następnie wpisz sudo apt-get killmanager, jeśli nie działa żaden problem, wpisz dalej sudo apt-get update, a następnie wpisz sudo apt-get upgrade.

Teraz powinieneś być w stanie zainstalować dowolne oprogramowanie przez Terminal.

Shaan Sundar
źródło
Jeśli nadal pojawia się błąd w wierszu „sudo apt-get update”, spróbuj użyć „sudo apt-get upgrade”. To zadziała .. Chłopaki !! Ponieważ Linux rozróżnia duże i małe litery, upewnij się, że używasz wszystkich poleceń pisanych małymi literami, takich jak „sudo” zamiast „Sudo”
Shaan Sundar,
5

W przypadku próby zainstalowania pliku:

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

zamiast paczki. Pojawia się komunikat o błędzie:

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

ponieważ próbowałeś zainstalować plik libstdc++.so.6, którego nie możesz zainstalować, ponieważ znajduje się on w pakiecie debian.

Możesz użyć apt-filedo wyszukania pakietu zawierającego ten plik. Aby go zainstalować, wpisz:

sudo apt-get install apt-file

Następnie musisz zaktualizować indeks.

sudo apt-file update

Następnie możesz wyszukać pakiet, który zawiera plik libstdc++.so.6:

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

Następnie znajdziesz wiele pakietów, które zawierają szukany plik. W tym przykładzie wklejam tylko jeden wynik wyszukiwania:

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

Następnie możesz zainstalować potrzebny pakiet libstdc++6:

sudo apt-get install libstdc++6
BuZZ-dEE
źródło