1 votes

Comment compiler des binaires OSS pour remplacer les versions livrées avec OS X ?

Je veux compiler de nouvelles versions d'openssl, de bash et d'autres outils Unix similaires. de la même façon qu'Apple le ferait. Je veux créer des liens avec les bibliothèques intégrées au système d'exploitation lorsque cela est possible, et je veux copier les binaires qui en résultent dans le répertoire /usr/bin qui remplace ce qu'Apple livre avec OS X.

Je suis conscient que c'est généralement un très mauvaise idée pour deux raisons :

  1. Une mise à jour d'OS X pourrait réintégrer les binaires d'Apple, annulant votre travail et laissant votre système dans un état inconnu.
  2. Certains logiciels peuvent dépendre du comportement spécifique des binaires d'Apple.

Au lieu de cela, il est généralement recommandé aux utilisateurs de mac d'installer des binaires personnalisés à côté des binaires système d'Apple. Homebrew et MacPorts fonctionnent tous deux selon ce principe.

Cependant, j'utilise Mavericks, qui ne recevra jamais une autre mise à jour logicielle d'Apple. Les binaires Apple sur mon système présentent des failles de sécurité connues, ce qui, selon l'OMI, l'emporte sur les problèmes de compatibilité théoriques.

Existe-t-il une manière standard de procéder, ou est-ce que ce serait différent pour chaque programme ? Puis-je d'une manière ou d'une autre tirer parti de certaines parties du projet MacPorts, par exemple, pour faciliter le processus, ou dois-je installer toutes les dépendances de compilation à partir de zéro ?

Si cela n'est tout simplement pas réalisable, j'aimerais le savoir aussi.

0 votes

Je commencerais par mettre à niveau bash puis installer GNU Core Utilities et ensuite openssl etc. Personnellement, je préfère compiler directement à partir de code source mais utiliserait brew si nécessaire.

0 votes

Je vous comprends... Je me débats avec les mêmes questions sur un ancien et un nouveau Macbook Pro. Mais il y a de l'espoir dans le fait que @ThorbjørnRavnAndersen nous informe que c'est... " trivialement simple à faire " dans l'un de ses commentaires perspicaces. :P

1 votes

@Seamus Je viens de lire le fil de discussion - je pense que vous venez de deux points de vue opposés, donc quelque chose qui semble "trivial" pour lui peut sembler très différent pour vous, et vice versa. D'après ce que j'ai lu, il semble que vous soyez habitué à la façon dont les versions de logiciels fonctionnent, par exemple sous Windows. Ici, nous avons l'habitude de passer à de nouvelles versions numérotées (par exemple, la version 5 est meilleure que la 4 est meilleure que la 3, etc.) Ainsi, lorsque quelque chose se produit, comme un problème de sécurité, vous passez de la version 4 à la version 5. Cependant, ce n'est pas de cette manière que les versions fonctionnent habituellement sur les systèmes Unix - donc si [...]

2voto

Jose Chavez Points 645

Vous devrez vérifier et construire individuellement chaque programme, bien que le processus pour la plupart des programmes soit assez similaire.

Vous pourriez vous inspirer de MacPorts/Homebrew dans leurs recettes, mais je doute que vous puissiez les utiliser 1:1 car ils proposent généralement des versions très différentes des utilitaires fournis par Apple. Par exemple en proposant des versions GNU des utilitaires BSD fournis, ou en proposant quelque chose qui est une version majeure complètement différente.

A titre d'exemple, j'ai vu que vous avez reçu un commentaire sur votre question vous recommandant d'installer "openssl" par exemple. Cela peut être assez délicat, car si vous installez "openssl", vous obtenez en fait quelque chose de sensiblement différent de ce qu'Apple fournit aujourd'hui avec MacOS. Si vous exécutez la commande "openssl" sur un Mac moderne, vous exécuterez en fait quelque chose appelé LibreSSL. Vous devrez faire un choix individuel pour chaque logiciel de ce type afin de déterminer si vous souhaitez opter pour le choix d'Apple (LibreSSL) ou pour une nouvelle version majeure d'OpenSSL.

Je pense que la voie la plus praticable est d'aller sur le site web open source d'Apple :

https://opensource.apple.com

Vous trouverez ici la source des utilitaires fournis avec votre système 10.9. En utilisant cette liste, je parcourrais les sources de la 10.15 et trouverais les mêmes programmes.

Vous obtiendrez souvent des versions corrigées de la même version majeure ou du moins des programmes très similaires à ceux fournis avec votre système 10.9. Si vous avez de la chance, ils compilent sans problème. Dans certains cas, vous rencontrerez des problèmes qui ne sont pris en charge que par des systèmes d'exploitation plus récents, et vous devrez alors les contourner en modifiant le programme ou en revenant à une version plus ancienne.

En somme, cela va être beaucoup de travail !

0 votes

J'aime cette approche, et c'est peut-être la plus réalisable. Elle est certainement c'est logique - du moins pour moi. Mais en ce qui concerne bash (comme exemple de paquetage sous licence GPL), le paquetage bash version actuelle (MacOS 10.15) est toujours bash ver 3.2 - comme pour MacOS 10.9 (et en fait depuis 2006). Savez-vous si Apple a apporté des modifications substantielles aux sources de bash ver 3.2 ?

1 votes

C'était en fait le but, c'est-à-dire d'obtenir les mêmes versions majeures. Si vous mettez à jour bash en 5.0, vous vous attendez à toutes sortes de choses bizarres et à des choses qui ne fonctionnent plus. Il n'y aurait pas de compatibilité directe. En gardant bash à la version 3.2, vous obtiendrez quelque chose qui sera très probablement compatible avec le système d'exploitation, mais avec des corrections de sécurité.

1 votes

Que vous considériez ces changements comme substantiels ou non est une question d'opinion. Quand je compare les deux versions de bash 3.2 (build 92 et 118), il y a 1334 lignes de différence. Les notes de modification mentionnent au moins deux CVE corrigées (c'est-à-dire des failles de sécurité).

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X