excuses pour la question noob, mais quand j'essaie de
sudo apt-get install Linux-kernel-devel
J'obtiens ce qui suit:
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
J'ai essayé ce qui suit:
sudo apt-get install linux-headers-$(uname -r)
sudo apt-get install build-essentials
sudo apt-get install Linux-headers-generic
sans joie ... des suggestions?
installation
kernel
package-management
paschwan
la source
la source
Réponses:
Résumé
Vous souhaiterez probablement installer le package appelé
linux-headers-generic
.Si l'exécution
uname -r
vous donne autre chosegeneric
qu'après le numéro de version, remplacez-le pargeneric
danslinux-headers-generic
. (Cela peut être surserver
ougeneric-pae
sur certaines installations de certaines versions d'Ubuntu, et il existe quelques autres "saveurs" occasionnelles du noyau.)Étant donné que vous en avez probablement besoin pour pouvoir créer un pilote (qui pourrait être automatisé, vous ne pourrez peut-être pas le "construire vous-même"), c'est une bonne idée de l'installer
build-essential
aussi pour le faire, vous aurez donc probablement tous les outils nécessaires .Explication complète
À ma connaissance, aucun système d'exploitation n'a de package appelé
Linux-kernel-devel
. C'est pour deux raisons:Il est courant que les packages liés au noyau sur les systèmes qui utilisent Red Hat Package Manager (
rpm
) et les utilitaires associés aientkernel
le nom de leurs packages. Par exemple, Mageia a un certain nombre de packages dont les noms commencent parkernel
et finissent pardevel
. Ces packages fournissent presque toujours (sur Mageia et tout système d'exploitation qui en dispose) les fichiers d'en-tête nécessaires pour créer des pilotes à partir des sources à utiliser avec le noyau. Ils peuvent également fournir des utilitaires connexes pour faciliter. Ces packages:Dans Ubuntu, comme on peut le voir dans la liste ici , les packages qui fournissent les en-têtes du noyau ont des noms commençant par
linux-headers
. Généralement, le package correct à installer estlinux-headers-generic
. Cependant, pour être sûr du package à installer pour obtenir des en-têtes correspondant à votre noyau en cours d'exécution, exécutez:Vous obtiendrez une sortie qui ressemble à quelque chose comme:
Autrement dit, vous aurez un numéro de version (qui comprendra des
.
caractères et généralement au moins un-
), suivi d'un-
, suivi d'un ou plusieurs mots indiquant le type de noyau que vous utilisez.Si vous souhaitez simplement que les en-têtes de la version spécifique que vous exécutez actuellement, vous pouvez installer le package dont le nom est
linux-headers-*
où*
est remplacé par la sortie complète deuname -r
. Par exemple, sur mon système, je pourrais exécuter:Je pourrais même l'automatiser:
Ces approches sont équivalentes, mais elles ne sont généralement pas la meilleure voie à suivre.
Au lieu de cela, vous souhaiterez généralement installer le métapaquet qui fournit toujours les en-têtes de noyau les plus récents en tant que mise à jour (en fonction en permanence du package d'en-tête le plus récent). Cela est parallèle à la façon dont votre noyau compilé et en cours d'exécution est installé et mis à jour. Pour ce faire, regardez juste la partie de
uname -r
la sortie de après le numéro de version. Autrement dit, si celauname -r
vous donne3.5.0-36-generic
, prenez juste lageneric
partie.Installez ensuite le package appelé
linux-headers-*
where*
est remplacé par cette partie. Donc, sur mon système, ce seraitlinux-headers-generic
et une façon de l'installer serait d'exécuter:Pour la plupart des gens , il est
linux-headers-generic
, mais en fonction de ce que vous fermiez Ubuntu vous utilisez, ce que l' architecture et le type d'appareil que vous utilisez sur, et comment il est installé et configuré, d' autres possibilités comprennentgeneric-pae
,highbank
,omap
,server
etvirtual
.Forfaits associés
Les fichiers d'en-tête facilitent le développement et la compilation / construction d'un logiciel qui utilise les fonctionnalités fournies par le logiciel dont les fichiers d'en-tête sont utilisés. La raison la plus courante pour laquelle vous pourriez avoir besoin des en-têtes du noyau est si vous allez construire un pilote (un module du noyau) à partir du code source. Certaines applications, comme VMware et VirtualBox, en auront parfois besoin et automatiseront elles-mêmes la construction.
En plus des fichiers d'en-tête, pour construire un logiciel, un compilateur et d'autres outils sont nécessaires. Pour maximiser la probabilité que vous ayez les outils nécessaires, c'est également une bonne idée d'installer le
build-essential
package.Il est rare que quiconque ait besoin du code source complet du noyau (sauf, bien sûr, si vous prévoyez de construire votre noyau à partir des sources). Mais si vous en avez besoin, vous devrez également installer un autre package. Dans Ubuntu, le package du code source complet du noyau est appelé
linux-source
. (Cela est conforme à la convention Debian / Ubuntu de nommer les paquets qui fournissent des parties substantielles du noyau Linuxlinux
plutôt quekernel
.)Si vous avez toujours des problèmes
Si vous essayez d'installer l'un de ces packages mais rencontrez des problèmes et que vous souhaitez de l'aide, vous devrez inclure le texte complet et exact du terminal, y compris les lignes où vous avez tapé les commandes. La meilleure façon d'y parvenir est de modifier votre question, mais si elle est trop longue, vous pouvez la coller quelque part comme http://paste.ubuntu.com et nous fournir l'URL où nous pouvons y accéder.
Si vous commentez cette question, je serai informé. Vous pouvez modifier votre question et également commenter ici pour attirer l'attention sur les informations que vous avez fournies dans votre question. (Les informations importantes sont mieux conservées dans les questions et réponses.) Bonne chance!
la source
Comme le rapport l'indique (E: impossible de localiser le paquet linux-kernel-devel) Il n'y a pas de paquet comme ça. Vous pouvez installer toutes les versions de noyau que vous souhaitez en téléchargeant les paquets du noyau debian à partir d' ici
Par exemple; nous voulons installer le noyau 3.9.8 (architecture i386); Téléchargez tous les packages ** i386.deb Et aussi * * * le package all.deb dans un dossier. Accédez au dossier avec la commande cd dans le terminal;
Cela installera la version du noyau que vous souhaitez. Vous pouvez analyser les versions de la ligne principale du noyau et les versions à long terme dans ce site
la source
Vous devrez déterminer vous-même les deb spécifiques dont vous avez besoin, mais il y a les deb dont vous aurez besoin dans les builds du noyau d'Ubunut .
Honnêtement, je vérifierais d'abord avec
sudo apt-get update
puissudo apt-get dist-upgrade
pour vous assurer que vous exécutez le dernier noyau et n'aurai pas besoin de le faire à nouveau sous peu.Ensuite, regardez dans la liste de construction du noyau pour votre version qui correspond à votre
uname -r
. Vous devez regarder dans chaque build build.log pour savoir à quelle version principale ils mappent cette build. J'ai 3.5.0-34 # 55 répertorié comme mon noyau, mais cela correspond vraiment à la construction de 3.5.7.14-quantal . Installez tous les deb qui correspondent à cette version pour obtenir vos en-têtes et autres, et assurez-vous d'avoir vos outils de construction avecsudo apt-get install build-essential
Votre kilométrage peut très bien dépendre de ce que vous prévoyez de faire avec les fichiers de développement.
la source
linux-kernel-devel est le nom d'un paquet SUSE / Redhat fournissant des choses comme des génksymes.
Un Google très rapide suggère que linux-headers-generic fournit des génksymes sur Debian / Ubuntu.
la source