Comment des paquets différents peuvent-ils avoir un code source identique ?

J'ai récemment appris à quel point il est facile d'obtenir le code source de n'importe quel paquet en utilisant apt-get source. Je peux ainsi obtenir le code source, faire des changements et installer ma propre version modifiée de n'importe quel paquet. C'est génial !

Jusqu'à aujourd'hui, je supposais que chaque paquet avait son propre code source, et que des paquets différents avaient des codes sources différents.

Cependant, je viens de découvrir que différents paquets peuvent avoir un code source identique. Voici un exemple de cela :

Les 4 paquets suivants semblent avoir un code source identique :

gir1.2-mutter-4
libmutter-4-0
mutter
mutter-common

Ils sont tous les quatre installés sur mon ordinateur Ubuntu 19.04. Faire apt-get source gir1.2-mutter-4 donne exactement le même résultat que apt-get source libmutter-4-0, et aussi pour les paquets mutter et mutter-common.

Voici comment je l'ai vérifié :

mkdir a
cd a
apt-get source gir1.2-mutter-4
cd ..
mkdir b
cd b
apt-get source libmutter-4-0
cd ..
diff -r a b

Le diff récursif sur la dernière ligne ci-dessus ne donne aucun résultat, montrant que les répertoires ont un contenu identique.

Maintenant ma question : Comment des paquets différents peuvent avoir un code source identique?

En supposant que cela soit voulu et non une erreur, quelle est la différence entre les paquets et comment puis-je voir cette différence ?

Se pourrait-il que les paquets soient différents dans la façon dont le code source est configuré et compilé, c'est-à-dire que différentes parties du code sont incluses dans les différents paquets ? Si c'est le cas, où puis-je trouver des informations sur la façon de configurer chaque paquet ?

Edit : j'ai oublié d'ajouter que si vous voulez tester ceci, pour que apt-get source fonctionne correctement, vous devez d'abord l'activer en utilisant software-properties-gtk comme décrit ici : https://askubuntu.com/a/857433/874649

Edit 2 : merci pour ces excellentes réponses ! J'ai aussi trouvé cette utile https://askubuntu.com/a/246721/874649 -- à propos des commandes apt-get build-dep et dpkg-buildpackage qui sont très utiles. Après avoir modifié le code source d'un paquet source, dpkg-buildpackage -us -uc peut être utilisé pour construire un ou plusieurs nouveaux fichiers .deb qui peuvent être utilisés pour installer le ou les programmes modifiés.

Solution

Вы'вновь путаешь построен бинарных пакетов с основной пакет исходного кода/что пакеты были построены из.

Пакеты, которые вы'вновь касаясь все построены из того же исходного кода/пакет, бормотать. Вы можете обнаружить, что легко собирается packages.ubuntu.comвы ищете пакет, который вы'вновь смотрю, а потом обратиться в "пакет" это относится. Который в данном случае являетсябурчать`:

Оттуда, однако, мы можем проверить запуска страницы для Муттер's источник пакет и вижу, что он строит множество бинарные пакеты (построен, скомпилированный исходный код и т. д. для установки):

Эти описания описать то, что каждый пакет содержит/устанавливает. Ориентируясь на 4 пакета, который вы указали, и, используя эти описания:

  • gir1.2-муттер-4 - данные GStreamer для Муттер (используется Гир и содержащих в качестве библиотек данных для муттер и взаимодействие файлы)
  • libmutter-4-0 - базовая библиотека для Муттер оконный менеджер. (Используется для разработки плагинов, разработка и составление бурчать интеграции и т. д. обычно)
  • бормотать - фактический бурчать оконный менеджер, использующий GNOME's в окне менеджера библиотек (который является, почему необходимо GIMP и)
  • бормотать-общие Общие файлы для Муттер - обычно по умолчанию параметры конфигурации или элементы, которые являются общими для все пакеты, собранные из источника пакета.

То, что вы'вновь увидев в списке пакета-это построен пакетов, которые исходят из того же исходного кода - каждая упаковка разные предметы могут быть установлены после сборки/компиляции и используются по-разному для разных вещей. Вы можете увидеть, что's в сами пакеты купить загрузка отдельные пакеты, а затем обращаться к ним с p7zip или встроенный менеджер архивов Ubuntu и видите отличия того, что каждый пакет содержит именно так. Это сказал, Все они происходят из того же исходного кода - они просто содержат различные элементы, что'вновь быть установлена в системе.

Commentaires (3)