web-dev-qa-db-fra.com

Quels sont les avantages et les inconvénients du concept de système de référentiel utilisé dans Ubuntu (et al)?

Comment est-il meilleur que Windows et Mac de télécharger et d'installer des applications à partir du Web?

3
akshatj

Il y a de bonnes et de mauvaises choses à installer un logiciel à partir d'un référentiel central.

Bien:

  • Tout est au même endroit, vous savez donc où chercher.
  • Il permet des applications de type catalogue vraiment faciles (par exemple aptitude, synaptique)
  • Les bonnes distributions maintiennent leurs dépôts assez strictement, il y a donc un bon contrôle de la qualité, ce qui signifie que vous pouvez faire davantage confiance au logiciel du repo qu'à celui de sources non fiables
  • Il vous permet de faire une résolution automatique très sophistiquée des dépendances logicielles (enfin, vous permet de le faire plus facilement au moins)
  • Source unique de mises à jour - vous n'avez pas besoin de vérifier chaque application individuelle (ou le site Web de l'application) pour les mises à jour, elles proviennent toutes d'un seul endroit
  • Il permet de mettre en miroir tous les logiciels connus pour un système d'exploitation sur différents serveurs à travers le monde (par exemple, l'endroit où je travaille maintient un miroir de dépôt Ubuntu)

Mal:

  • Ce n'est pas aussi facile à installer à partir d'autres sources en dehors du référentiel
  • Il est très orienté vers les logiciels open source, plutôt que propriétaires
  • Cela semble restrictif; si vous n'êtes pas dans le repo, vous n'êtes pas sur le radar (même si, oui, vous pouvez toujours installer un logiciel en dehors du repo, c'est tellement plus difficile que pas beaucoup de gens s'en soucient)

Dans l'ensemble, les avantages l'emportent sur les inconvénients de la plupart des distributions Linux (en fait, probablement la plupart des Unix), c'est pourquoi il est beaucoup utilisé dans le monde Unix. Utilisé de différentes manières également; les dépôts deb/apt d'ubuntu, Fedora/redhat/others rpm/yum repos, * l'arbre des ports de bsd, gentoo's portage, pkgsrc, la liste continue. Certains d'entre eux font un meilleur travail que d'autres :)

11
Ben Williams

Peut-être qu'une meilleure question serait: quelle est la différence entre les gestionnaires de packages x et y?

Un gestionnaire de packages Mac OS: Darwinports

Gestionnaire de packages Windows: Windows_update

De plus en plus, la tendance est au repo et au téléchargement à partir de pages Web, et vous demandez "pourquoi?". Vraiment, la meilleure façon de voir ce genre de choses est de lire ce qui est déjà écrit:

"Impact

Ian Murdock a déclaré que la gestion des packages est "la plus grande avancée que Linux a apportée à l'industrie", qu'elle brouille les frontières entre le système d'exploitation et les applications, et qu'elle facilite "la transmission de nouvelles innovations [...] dans le marché et [...] faire évoluer l'OS ". [1]"

-wikipedia, gestion des packages

La fiabilité est, je dirais, le principal avantage de la gestion des packages, avec en plus une sécurité accrue. Il est également assez facile de surfer sur http://packages.ubuntu.com et de voir, littéralement, chaque logiciel pris en charge. Vous pouvez vous attendre à ce que, tant que vous jouez dans la boîte du gestionnaire de paquets, les choses fonctionnent automatiquement et soient sécurisées. Avec la clause de mise en garde standard, bien sûr. Si cela fonctionnait vraiment parfaitement, il n'y aurait pas besoin de listes de diffusion.

Comparez cela à la "correction" du registre ou à une maintenance comme celle-là quand il n'y a pas de gestionnaire de paquets. Sur le mac, il est tout à fait remarquable qu'il n'y ait pas de gestionnaire de packages "officiel" pour les logiciels tiers, cependant, ma lecture de wikipedia est que les utilitaires Mac OS sont dans un gestionnaire de packages d'une certaine sorte, bien que je ne connaisse pas le nom de celui-ci .

2
Thufir

Tout d'abord, il n'y a pas vraiment de "système de référentiel Linux". Chaque distribution Linux décide pour elle-même quel système de gestion de paquets utiliser (ou s'il faut en utiliser un du tout) et, généralement, a ses propres référentiels.

Ubuntu utilise le système de gestion de paquets dpkg/apt de debian avec les propres référentiels d'Ubuntu. Voici comment cela fonctionne: pour chaque application que vous pouvez installer via apt, il existe un paquet dpkg qui est essentiellement une archive zippée contenant les fichiers de l'application (avec les exécutables compilés pour Ubuntu) et certaines métadonnées, qui (entre autres choses) contiennent une description du paquet et de ses dépendances pour que le gestionnaire de paquets sache quels autres paquets doivent être installés avant que celui-ci puisse être installé (par exemple, un jeu peut nécessiter opengl et SDL pour être installé, une application gnome aurait évidemment besoin de gnome pour être installé, etc.).

Désormais, un référentiel est un endroit où les packages pour une version spécifique d'Ubuntu sont téléchargés par les responsables des packages d'Ubuntu. Apt parcourt ensuite les référentiels disponibles, pour trouver le package que vous souhaitez installer et ses dépendances, téléchargez-les et installez-les.

C'est mieux que de tout télécharger vous-même parce que a) vous n'avez pas à tout télécharger vous-même b) vous n'avez pas à chercher partout sur le Web pour trouver toutes les dépendances et c) vous n'obtenez pas de situations comme dans Windows où chaque jeu installe sa propre version de DirectX.

2
sepp2k