GNU/Linux >> Tutoriels Linux >  >> Linux

Apt-get Build-dep est incapable de trouver un paquet source ?

J'ai déjà suivi ce guide pour désactiver le collage du bouton central de la souris sur mon Ubuntu 12.04.

Fonctionne comme un charme.

Maintenant, j'essaie d'obtenir la même chose sur mon Linux Mint 17. Quand j'essaie de

sudo apt-get build-dep libgtk2.0-0

ça me donne le résultat suivant :

Reading package lists... Done
Building dependency tree       
Reading state information... Done
Picking 'gtk+2.0' as source package instead of 'libgtk2.0-0'
E: Unable to find a source package for gtk+2.0

Pour moi, il semble que apt-get "résout" en quelque sorte 'libgtk2.0-0' à 'gtk+2.0' , mais ne trouve aucun paquet nommé comme ça.

EDIT :
bien que je sois maintenant capable de compiler le programme (voir ma réponse), je ne sais toujours pas quoi Picking 'gtk+2.0' as source package instead of 'libgtk2.0-0' est censé signifier. Toute idée à ce sujet serait appréciée, merci !

Réponse acceptée :

Comme d'autres l'ont déjà noté, assurez-vous que pour chaque deb … entrée dans /etc/apt/sources.list et /etc/apt/sources.list.d/* , vous avez un deb-src … correspondant entrée. Le reste de la ligne doit être identique.

Le deb l'entrée est pour les packages binaires (c'est-à-dire prêts à être installés), le deb-src est pour les packages source (c'est-à-dire prêts à compiler). La raison pour laquelle les deux types de packages sont séparés est qu'ils sont gérés très différemment :les packages binaires ont un mécanisme de suivi des dépendances et une liste actuellement installée, tandis que les packages source ne sont suivis que pour pouvoir être téléchargés facilement.
Notez que lors de la discussion sur les référentiels de packages, le mot source signifie deux choses sans rapport :une source comme un emplacement à partir duquel télécharger des packages, et un package source par opposition à un package binaire.

libgtk2.0-0 est le nom d'un paquet binaire. Il est construit à partir d'un paquet source appelé gtk+2.0 . La raison pour laquelle les noms de package source et binaire ne correspondent pas toujours est que la construction d'un package source peut produire plusieurs packages binaires ; par exemple, gtk+2.0 est la source de 14 packages car il est divisé en deux bibliothèques (libgtk2.0 , libgail ), les packages correspondants pour construire des programmes utilisant ces bibliothèques (…-dev ), documentation pour les développeurs (…-doc ), programmes compagnons (libgtk2.0-bin ), etc.

Vous pouvez voir le nom du paquet source correspondant à un paquet binaire en cochant le Source: … ligne dans la sortie de dpkg -s BINARY_PACKAGE_NAME (si le paquet est installé) ou apt-cache show BINARY_PACKAGE_NAME .

Vous pouvez lister les packages binaires produits par un package source avec aptitude search '?source-package(^SOURCE_PACKAGE_NAME$) .

La commande apt-get source télécharge un paquet source. Si vous lui donnez un argument qui n'est pas un paquet source connu, il le recherche dans la base de données des paquets binaires installables et essaie de télécharger le paquet source correspondant.

Connexe :Impossible de simuler l'appui sur la touche Ctrl+Maj+Fn+F10 ?

La commande apt-get build-dep suit la même approche pour déduire le nom d'un paquet source, puis interroge la base de données du paquet source pour obtenir une liste de paquets binaires (la liste dans le Build-Dep: champ) et installe ces packages binaires.

L'interface graphique des sources de logiciels comporte une case à cocher "activer les référentiels avec le code source" pour les référentiels officiels, assurez-vous qu'elle est cochée. Si vous ajoutez manuellement des référentiels tiers, assurez-vous d'ajouter à la fois deb-src et deb lignes.


Linux
  1. Comment empaqueter des applications open source en tant que RPM

  2. pygrub :impossible de trouver la partition contenant le noyau

  3. Impossible d'installer yum mod_security - Aucun package mod_security disponible [Résolu]

  4. Ubuntu :OpenJDK 8 - Impossible de localiser le package

  5. Ubuntu E :Impossible de localiser le package mysql

apt vs apt-get - Outil de package avancé

Rechercher si un package est disponible pour votre distribution Linux

Comment savoir si un package est installé ou non sous Linux et Unix

Docker - Impossible de localiser le package docker-engine

E :Impossible de localiser le package python-pip sur Ubuntu 18.04

Qu'est-ce que le build-essential et le build-dep ?