Étant donné que certaines applications peuvent être installées de manière native ou par l'intermédiaire de MacPorts (comme MacVim, iTerm2, Gimp, etc.), quels sont les avantages et les inconvénients d'une méthode d'installation par rapport à l'autre ?
Réponses
Trop de publicités?Installation native
Si le développeur publie des binaires préconstruits pour votre système d'exploitation, il s'agira probablement de la méthode la plus rapide, la plus facile et la plus récente (en ce qui concerne l'application elle-même) pour obtenir une application. Cela dépend du développeur (ou d'un tiers de confiance) qui doit maintenir les binaires à jour en fonction des modifications apportées à l'application et à Mac OS X (par exemple, en les reconstruisant à partir des derniers SDK Mac OS X au fur et à mesure qu'ils sont publiés).
L'inconvénient est que vous faites confiance à celui qui l'a construit pour ne pas avoir malicieusement modifié la source avant de le faire, et/ou à celui qui héberge/mirrorise le téléchargement pour ne pas avoir fait la même chose. Ce n'est généralement pas un problème, mais c'est la raison pour laquelle il existe souvent des sommes de contrôle MD5 pour les téléchargements.
Un inconvénient possible est que vous n'avez pas le contrôle sur la version des dépendances sur lesquelles le développeur construit (par exemple, pour des choses comme Python, ou le STL C++, ou OpenSSL). Par exemple, s'il utilise les SDK natifs de Mac OS X, ceux-ci sont généralement un peu en retard par rapport aux versions actuelles de la plupart des bibliothèques. Ils reçoivent des mises à jour, mais pas nécessairement très rapidement (sauf dans certaines situations de sécurité critiques), car Apple doit effectuer ses propres tests d'assurance qualité avant de pouvoir inclure des mises à jour dans les bibliothèques qu'elle fournit avec le système.
Certains développeurs peuvent inclure les dernières bibliothèques dans leur paquet d'applications, en particulier s'ils s'appuient sur de nouvelles fonctionnalités de ces bibliothèques qui n'ont pas encore été intégrées dans l'ensemble de base de Mac OS X. En fait, vous ne pouvez pas contrôler ce phénomène, qui n'est donc pas forcément un inconvénient.
Construire manuellement à partir des sources
Cela peut être considéré comme une "installation native", puisqu'il ne s'agit pas de macports à proprement parler, mais il s'agit essentiellement d'obtenir les dernières sources et de les compiler soi-même avec les SDK "natifs" de Mac OS X et/ou les versions de dépendances de votre choix.
Les avantages sont que vous allez construire sur votre système, pour votre système, donc toutes les dépendances correspondent à votre environnement d'exécution et sont la version de votre choix (par exemple, récemment mis à jour à la dernière source pour inclure les corrections de bogues et les correctifs de sécurité). Bien sûr, l'inconvénient évident est que vous devez vous assurer que vous avez toutes ces dépendances (YMMV en fonction du projet).
Vous n'avez pas non plus besoin de faire confiance à la version binaire de quelqu'un d'autre (bien que vous souhaitiez toujours vous assurer que vous disposez du code source "officiel", sans risque de modifications malveillantes).
Par rapport à l'installation à partir de fichiers binaires :
- Pro : Vous avez plus de contrôle sur les dépendances, vous pouvez choisir d'utiliser les bibliothèques intégrées à Mac OS X ou vos propres constructions (par exemple pour des choses comme Python, OpenSSL, libstdc, etc) ...
- Con : ... mais vous doivent gérer les dépendances (obtenir/configurer/construire/installer), surtout s'il n'y a pas de version intégrée.
- Pro : Les dépendances d'exécution sont certainement compatibles, car vous avez construit en fonction d'elles...
- Con : ... à moins que vous ne les changiez plus tard pour un autre projet !
- Pro : Vous ne faites pas aveuglément confiance à la construction binaire de quelqu'un d'autre...
- Con : ... mais cela peut prendre beaucoup plus de temps de construire à partir des sources que de simplement télécharger les binaires
Installation à partir de MacPorts
Il s'agit en général d'un processus similaire à celui de la construction à partir des sources, mais une grande partie est scénarisée et testée par des milliers d'autres personnes. tendent à ont moins de difficultés à mettre en place des projets. De plus, MacPorts garde une trace de tous les projets que vous construisez, ainsi que de leurs versions, et permet de vérifier très facilement ce qui est obsolète, de mettre à jour les nouvelles versions, de passer d'une version à l'autre, etc.
Bien entendu, vous comptez sur le fait que l'application/les dépendances soient en MacPorts, ce qui nécessite que quelqu'un (peut-être même vous ! !), ait créé un projet MacPorts pour cette application. De plus, vous comptez sur le projet MacPorts pour être tenu à jour avec l'application originale, et de même pour les dépendances. Si les scripts MacPorts ne sont pas mis à jour lorsque de nouvelles versions de la source sont publiées, vous n'y aurez pas accès.
Comparé à l'installation native à partir de fichiers binaires
- Pro : Vous êtes éventuellement ne pas se fier à la version binaire de quelqu'un d'autre (ou si c'est le cas, elle est au moins testée) ...
- Con : ... mais vous devrez peut-être attendre que MacPorts construise votre projet.
- Pro : Vous aurez souvent des versions plus récentes des dépendances que celles livrées avec Mac OS X ...
- Con : ... mais MacPorts devra les mettre à jour/construire au fur et à mesure, ce qui peut prendre un certain temps.
- Pro : Les MacPorts disposent souvent de versions plus récentes des bibliothèques système que Mac OS X...
- Con : ... mais cela signifie qu'il doit construire et installer une deuxième version de nombreuses bibliothèques de base, qu'elles soient strictement nécessaires ou non.
Par rapport à la création d'un logiciel à partir de la source
- Pro : C'est souvent beaucoup plus facile, en tapant une seule commande, que d'obtenir/configurer/construire/installer diverses dépendances ...
- Pro : De plus, MacPorts conserve la trace de toutes vos versions, ce qui vous permet de vous assurer que toutes les applications qui dépendent d'une dépendance commune sont mises à jour lorsque vous mettez à jour votre application...
- Con : ... Mais dans tous les cas, vous êtes à la merci des mainteneurs de port pour maintenir les ports à jour, donc il peut être un peu (ou beaucoup !) en retard par rapport à certaines versions officielles d'applications/bibliothèques.
- Con : ... Et vous ne pouvez pas choisir entre les bibliothèques système intégrées à Mac OS X et la reconstruction de ces bibliothèques par MacPorts ; il construit toujours les siennes si elles sont open source.