przepraszam za pytanie nooba, ale kiedy próbuję
sudo apt-get install Linux-kernel-devel
Dostaję następujące:
sudo apt-get install linux-kernel-devel
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package linux-kernel-devel
Próbowałem następujące:
sudo apt-get install linux-headers-$(uname -r)
sudo apt-get install build-essentials
sudo apt-get install Linux-headers-generic
bez radości ... jakieś sugestie?
installation
kernel
package-management
paschwan
źródło
źródło
Odpowiedzi:
Streszczenie
Prawdopodobnie chcesz zainstalować pakiet o nazwie
linux-headers-generic
.Jeśli uruchomienie
uname -r
daje coś innego niżgeneric
po numerze wersji, zamień to nageneric
inlinux-headers-generic
. (Może to byćserver
lubgeneric-pae
w niektórych instalacjach niektórych wydań Ubuntu, a od czasu do czasu istnieje kilka innych „smaków” jądra).Ponieważ najprawdopodobniej potrzebujesz tego, aby zbudować sterownik (który może być zautomatyzowany, być może nie „budujesz go sam”), dobrym pomysłem jest
build-essential
również zainstalowanie go, aby mieć zapewnione wszystkie niezbędne narzędzia .Pełne wyjaśnienie
Według mojej najlepszej wiedzy żaden system operacyjny nie ma pakietu o nazwie
Linux-kernel-devel
. Wynika to z dwóch powodów:Powszechnie jest, że pakiety związane z jądrem w systemach, które używają Red Hat Package Manager (
rpm
) i powiązanych narzędzi, które mająkernel
w nazwie swoich pakietów. Na przykład Mageia ma wiele pakietów, których nazwy zaczynają siękernel
i kończądevel
. Te pakiety prawie zawsze (na Magei i dowolnym systemie operacyjnym, który je posiada) zawierają pliki nagłówkowe potrzebne do zbudowania sterowników ze źródła do użytku z jądrem. Mogą również zapewniać powiązane narzędzia ułatwiające. Te pakiety:W Ubuntu, jak widać na liście tutaj , pakiety zawierające nagłówki jądra mają nazwy zaczynające się od
linux-headers
. Zwykle jest to właściwy pakiet do zainstalowanialinux-headers-generic
. Jednak, aby upewnić się, jaki pakiet zainstalować, aby uzyskać nagłówki odpowiadające aktualnie działającemu jądru, uruchom:Otrzymasz wyjście, które wygląda mniej więcej tak:
Oznacza to, że będziesz mieć numer wersji (który będzie zawierał
.
znaki i zwykle co najmniej jeden-
), po którym następuje a-
, po którym następuje jedno lub więcej słów wskazujących, jakiego rodzaju jądro używasz.Jeśli tylko chcesz nagłówki dla wersji konkretnego zdarzy ci się być teraz uruchomione, można zainstalować pakiet, którego nazwa jest
linux-headers-*
gdzie*
otrzymuje pełnej mocyuname -r
. Na przykład w moim systemie mógłbym uruchomić:Mógłbym to nawet zautomatyzować:
Podejścia te są równoważne, ale zazwyczaj nie są najlepszym rozwiązaniem.
Zamiast tego zwykle będziesz chciał zainstalować metapakiet, który zawsze udostępnia najnowsze nagłówki jądra jako aktualizację (nieustannie zależnie od tego, który pakiet nagłówków jest najnowszy). Jest to analogiczne do sposobu, w jaki skompilowane, działające jądro jest instalowane i aktualizowane. Aby to zrobić, spójrz tylko na część
uname -r
wyniku po numerze wersji. To znaczy, jeśliuname -r
daje3.5.0-36-generic
, weź tylkogeneric
część.Następnie zainstaluj pakiet o nazwie
linux-headers-*
gdzie*
jest zastąpiony przez tę część. Tak więc w moim systemie byłoby tolinux-headers-generic
i jednym ze sposobów, w jaki mógłbym zainstalować, byłoby uruchomienie:Dla większości ludzi jest to
linux-headers-generic
, ale w zależności od tego, co Ubuntu zwolnić używasz, co architektura i typ urządzenia używasz go, i jak jest zainstalowany i skonfigurowany, inne możliwości obejmujągeneric-pae
,highbank
,omap
,server
, ivirtual
.Powiązane pakiety
Pliki nagłówkowe ułatwiają tworzenie i kompilowanie / tworzenie oprogramowania, które korzysta z udogodnień udostępnianych przez oprogramowanie, którego pliki nagłówkowe są używane. Najczęstszym powodem, dla którego możesz potrzebować nagłówków jądra, jest zbudowanie sterownika (modułu jądra) z kodu źródłowego. Niektóre aplikacje, takie jak VMware i VirtualBox, czasami będą tego wymagać i same zautomatyzują kompilację.
Oprócz plików nagłówkowych do zbudowania oprogramowania potrzebny jest kompilator i inne narzędzia. Aby zmaksymalizować prawdopodobieństwo posiadania niezbędnych narzędzi, dobrym pomysłem jest również zainstalowanie
build-essential
pakietu.Nieczęsto potrzebny jest pełny kod źródłowy jądra (chyba że planujesz zbudować jądro ze źródła). Ale jeśli tego potrzebujesz, musisz zainstalować również inny pakiet. W Ubuntu nazywa się pakiet pełnego kodu źródłowego jądra
linux-source
. (Jest to zgodne z konwencją nazywania pakietów Debian / Ubuntulinux
zamiast dostarczania istotnych części jądra Linuksakernel
.)Jeśli nadal masz problemy
Jeśli spróbujesz zainstalować którykolwiek z tych pakietów, ale napotkasz problemy i potrzebujesz pomocy, będziesz musiał dołączyć pełny i dokładny tekst z terminala, w tym wiersze, w których wpisałeś polecenia. Najlepszym sposobem na to jest, edytując swoje pytanie, ale jeśli jest zbyt długie, możesz je wkleić gdzieś na przykład http://paste.ubuntu.com i podać nam adres URL, pod którym możemy uzyskać do niego dostęp.
Jeśli skomentujesz to pytanie, otrzymam powiadomienie. Możesz edytować swoje pytanie, a także komentować tutaj, aby zwrócić uwagę na informacje podane w pytaniu. (Ważne informacje najlepiej przechowywać w pytaniach i odpowiedziach.) Powodzenia!
źródło
Jak powiedział raport (E: Nie można znaleźć pakietu linux-kernel-devel) Nie ma takich pakietów. Możesz zainstalować każdą wersję jądra, pobierając pakiety jądra debiana stąd
Na przykład; chcemy zainstalować jądro 3.9.8 (architektura i386); Pobierz wszystkie ** pakiety i386.deb, a także * * * pakiet all.deb do folderu. Wejdź do folderu z poleceniem cd w terminalu;
Spowoduje to zainstalowanie żądanej wersji jądra. Można analizować wersje Mainline jądra i wersje długoterminowe w tym miejscu
źródło
Będziesz musiał sam zaplanować, jakich konkretnych debów potrzebujesz, ale są takie debaty, których będziesz potrzebować w kompilacjach jądra Ubunut .
Szczerze, najpierw sprawdzę,
sudo apt-get update
a potemsudo apt-get dist-upgrade
upewnię się, że używasz najnowszego jądra i nie będę musiał tego robić wkrótce.Następnie przejrzyj listę kompilacji jądra dla twojej wersji, która pasuje do twojej
uname -r
. Musisz zajrzeć do każdego kompilacji build.log, aby dowiedzieć się, na którą wersję główną mapują tę kompilację. Mam 3.5.0-34 # 55 wymienione jako moje jądro, ale tak naprawdę jest to zgodne z wersją 3.5.7.14-kwantową . Zainstaluj wszystkie debaty odpowiadające tej wersji, aby uzyskać nagłówki itp. I upewnij się, że masz narzędzia do kompilacjisudo apt-get install build-essential
Twój przebieg może jednak bardzo zależeć od tego, co planujesz zrobić z plikami devel.
źródło
linux-kernel-devel to nazwa pakietu SUSE / Redhat zapewniającego takie rzeczy jak genksyms.
Bardzo szybkie Google sugeruje, że linux-headers-generic zapewnia genksyms na Debian / Ubuntu.
źródło