Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Gestion des dépendances

38 réponses
Avatar
JEf
Bonjour,

J'aimerais avoir votre avis sur la gestion des dépendances de MacOS
comparée à celle de linux.

Sous Mac (en applications natives), il n'y a pas de dépendances, toutes
les librairies nécessaires à l'appli sont dans le folder .app de
l'application.

Sous linux, il y a une gestion complexe des dépendances.

Donc sur Mac pour installer une appli on la copie sur son disque dur et
on lui donne les autorisations d'exécution (la demande de mot de passe à
l'install dans le dossier /Applications).

Sous Linux vous savez comment cela fonctionne.

Un exemple ou cela serait utile :
- Ubuntu server 9.10
- python 2.6 (version installée par défaut)
- apt-get fail2ban

On démarre fail2ban, ça fonctionne pas. La dépendance est python 2.5. La
2.6 étant installée, pas de prob pour le gestionnaire de paquet par
contre fail2ban ne fonctionne pas bien.

Donc il faut faire en plus
- apt-get install python2.5
- modifier les fichiers de fail2ban pour utiliser cette version

Ce ne serait pas arrivé sur Mac.

Alors oui cela consommera plus de disque à la mac qu'à la linux. Et plus
de ram. Mais au prix de la ram et des disques, est-ce vraiment un problème ?

TIA,

JEf

10 réponses

1 2 3 4
Avatar
Nicolas George
JKB wrote in message :
C'est très facile. Sous Solaris, par exemple, tu n'as pas ncurses,
mais un curses fourni par Sun^Oracle qui est subtilement
incompatible avec ncurses.



Solaris seul (par opposition à Solaris où on a installé tous les outils GNU
et les bibliothèques libres principales) est une merde. So what?

Tu dois donc recompiler ncurses, et là,
tu as intérêt de lier statiquement le ncurses à ton exécutable



Quel exécutable ? Tu écris « nécessite ncurses » dans le README, et tu
laisses celui qui veut le compiler pour un système qui n'a pas ncurses en
standard se débrouiller.

Ponctuel ? Ça m'a juste pris deux ans parce que mes architectures
cibles n'étaient pas vraiment une priorité.



Oui, ponctuel. Le temps mis à corriger n'a pas d'importance, ça reste un
seul bug, certainement pas une généralité.

Et lorsqu'il te _faut_ openssl 1.0.0 ? Tu réponds aussi 'tu n'as
qu'à utiliser 0.9.8x ' ?



Non, je réponds : tu écris dans le README qu'il faut OpenSSL 1.0.0 au moins,
et tu laisses ceux qui veulent compiler ur un système trop ancien se
débrouiller.

Livrer une version perso d'OpenSSL, que ce soit par liaison statique ou un
.so embarqué, est particulièrement irresponsable, parce qu'OpenSSL a trait à
la sécurité et qu'une version perso ne sera pas concernée par les mises à
jour.
Avatar
JEf
On 10/08/10 10:19, Tonton Th wrote:
On 08/09/2010 10:15 PM, JEf wrote:
On 08/08/10 22:24, Tonton Th wrote:
Quand à tirer les libs dans le répertoire de l'application,
c'est quand même un truc de merde. Amha.





systèmes de machines virtuelles). Mais sur un desktop grand public où le
but est que toute appli doit fonctionner peu importe les autres softs
installés ?



C'est toujours un truc de merde.




Sans doute trouve tu plus intelligent le prob de fail2ban qui
s'installe, semble fonctionner (aucune erreur) mais ne fonctionne pas
(les filtres ne sont pas pris en compte) par ce que tu as python2.6 au
lieu de python2.5 ?

Et que pour corriger le prob il faille d'abord en trouver la cause,
ensuite éditer les fichiers dans /usr/bin pour que ça fonctionne ?

Je prends cet exemple là car il m'est arrivé récemment.

Pire tu installes fail2ban il y a un an ou 2, tu fais régulièrement des
apt-get upgrade et un jour tu te rends compte que ton serveur est down
parce que fail2ban ne fait plus rien (et oui python a été mis à jour).

Si tu vas par là, l'Universal Binaries doit encore être plus merdique
pour toi. Car là je parlais des libs dans chaque .app mais en fait elles
y sont en fait plusieurs fois :-)

- ppc 32 bits
- ppc 64 bits
- x86
- x86_64

4 fois la place sur le disque ! Mon dieu. Tout ça pour que le drag'n
drop d'une appli fonctionne d'un G4 32 bits vers un intel 64 bits !

Mais comme c'est simple à utiliser !

Pire, un core2duo 64 bits peut démarrer sur le disque dur d'un G4 32
bits !!! Et il tourne en 64 bits !!! (le tout sous leopard)

JEf
Avatar
Nicolas George
JEf wrote in message :
Je prends cet exemple là car il m'est arrivé récemment.



Ou bien parce que tu n'en as pas d'autres ?

Des bugs dans le référencement des dépendances des paquets, ça arrive, de
temps en temps. Évidemment. Mais du fait de la gestion centralisée des
paquets, qui vient avec la gestion des dépendances, ça finit par être
corrigé.

D'un autre côté, chez mac, combien de bundles restent avec une version
buggée d'une bibliothèque, alors que la bibliothèque elle-même a été
corrigée depuis longtemps, simplement parce que l'application elle-même n'a
pas eu de nouvelle version ?
Avatar
JKB
Le 10 Aug 2010 09:23:30 GMT,
Nicolas George <nicolas$ écrivait :
JKB wrote in message :
C'est très facile. Sous Solaris, par exemple, tu n'as pas ncurses,
mais un curses fourni par Sun^Oracle qui est subtilement
incompatible avec ncurses.



Solaris seul (par opposition à Solaris où on a installé tous les outils GNU
et les bibliothèques libres principales) est une merde. So what?



Le fait que le curses de Solaris est subtilement incomaptible avec
le ncurses de Gnu et que la présence des deux dans les chemins par
défaut fout le bordel, soit pour les outils du système, soit pour
les outils Gnu en fonction de l'ordre de résolution. Je ne vois pas
ce que tu refuses de comprendre.

Tu dois donc recompiler ncurses, et là,
tu as intérêt de lier statiquement le ncurses à ton exécutable



Quel exécutable ? Tu écris « nécessite ncurses » dans le README, et tu
laisses celui qui veut le compiler pour un système qui n'a pas ncurses en
standard se débrouiller.



C'est un peu facile.

Ponctuel ? Ça m'a juste pris deux ans parce que mes architectures
cibles n'étaient pas vraiment une priorité.



Oui, ponctuel. Le temps mis à corriger n'a pas d'importance, ça reste un
seul bug, certainement pas une généralité.



Non, ça reste un ensemble de bugs inhérents au script configure qui
prétendait utiliser -lform (et d'autres) pour lier statiquement des
bibliothèques. Et je passe sous silence des lignes aussi tordues que
LDFLAGS= -static ...... -dynamic

Sous Linux, avec gcc, ça passe. Sous Solaris avec le même gcc, le
coup d'avoir -static et -dynamic sur la même ligne de commande ne
_fonctionne_ pas.

Et lorsqu'il te _faut_ openssl 1.0.0 ? Tu réponds aussi 'tu n'as
qu'à utiliser 0.9.8x ' ?



Non, je réponds : tu écris dans le README qu'il faut OpenSSL 1.0.0 au moins,
et tu laisses ceux qui veulent compiler ur un système trop ancien se
débrouiller.



Debian/squeeze est donc un système ancien.

Livrer une version perso d'OpenSSL, que ce soit par liaison statique ou un
.so embarqué, est particulièrement irresponsable, parce qu'OpenSSL a trait à
la sécurité et qu'une version perso ne sera pas concernée par les mises à
jour.



Conclure aussi abruptement est une connerie car tu ne sais pas ce
que j'utilise dans OpenSSL ni même si j'utilise des fonctions
critiques du point de vue de la sécurité du système. Il y a des tas
de fonctions utiles dans OpenSSL qui ne concernent absolument pas la
sécurité du système hôte.

JKB

--
Le cerveau, c'est un véritable scandale écologique. Il représente 2% de notre
masse corporelle, mais disperse à lui seul 25% de l'énergie que nous
consommons tous les jours.
=> http://grincheux.de-charybde-en-scylla.fr
Avatar
JEf
On 10/08/10 11:30, Nicolas George wrote:
JEf wrote in message:
Je prends cet exemple là car il m'est arrivé récemment.



Ou bien parce que tu n'en as pas d'autres ?



Disons plutôt que je n'utilise pas linux en desktop, je suis sur mac
pour ça. Mais que j'utilise plutôt linux en server et c'est généralement
corrigé plus vite que là car le bug est présent en ubuntu server 9.04 et
9.10 (oui je sais ubuntu et server dans la même phrase c'est bizarre
mais pour mon usage ça fonctionne mieux que debian stable).


Des bugs dans le référencement des dépendances des paquets, ça arrive, de
temps en temps. Évidemment. Mais du fait de la gestion centralisée des
paquets, qui vient avec la gestion des dépendances, ça finit par être
corrigé.



Oui mais bon.


D'un autre côté, chez mac, combien de bundles restent avec une version
buggée d'une bibliothèque, alors que la bibliothèque elle-même a été
corrigée depuis longtemps, simplement parce que l'application elle-même n'a
pas eu de nouvelle version ?



En effet c'est possible. Mais je préfère utiliser la librairie que le
dev à utiliser que de toujours avoir la dernière. En effet, un soft peu
très bien ne plus fonctionner avec la dernière version de la lib.

En tout état de cause, si le soft est opensource tu peux toujours
compiler la dernière version.

HTH

JEf
Avatar
Nicolas George
JKB wrote in message :
Le fait que le curses de Solaris est subtilement incomaptible avec
le ncurses de Gnu et que la présence des deux dans les chemins par
défaut fout le bordel, soit pour les outils du système, soit pour
les outils Gnu en fonction de l'ordre de résolution. Je ne vois pas
ce que tu refuses de comprendre.



C'est toi qui ne comprend pas ce que je dis. Tu peux citer toutes les
difficultés liées à Solaris que tu veux, tu ne feras qu'abonder dans mon
sens, puisque mon point est :

Si quelqu'un veut utiliser Solaris, qu'il se débrouille avec les merdes
inhérentes à Solaris, ce n'est pas le problème des développeurs.

C'est un peu facile.



C'est très facile. Justement.

Non, ça reste un ensemble de bugs inhérents au script configure qui
prétendait utiliser -lform (et d'autres) pour lier statiquement des
bibliothèques.



Aaaah, tu as des problèmes pour lier statiquement... Alors justement que
j'essaie de t'expliquer qu'il ne faut pas le faire.

Debian/squeeze est donc un système ancien.



Pour certaines choses, oui, évidemment.

Conclure aussi abruptement est une connerie car tu ne sais pas ce
que j'utilise dans OpenSSL ni même si j'utilise des fonctions
critiques du point de vue de la sécurité du système. Il y a des tas
de fonctions utiles dans OpenSSL qui ne concernent absolument pas la
sécurité du système hôte.



À part de la crypto, on se demande ce que tu pourrais faire avec OpenSSL.
Une faiblesse cryptographique, c'est toujours grave. Ou alors c'est que tu
n'avais pas besoin de crypto pour commencer.
Avatar
Nicolas George
JEf wrote in message :
Mais que j'utilise plutôt linux en server et c'est généralement
corrigé plus vite que là car le bug est présent en ubuntu server 9.04 et
9.10



Peut-être que cette merde de fail2ban est la dernière préoccupation des
développeurs Ubuntu...

En effet c'est possible. Mais je préfère utiliser la librairie que le
dev à utiliser que de toujours avoir la dernière. En effet, un soft peu
très bien ne plus fonctionner avec la dernière version de la lib.



Ça ne donne pas confiance dans les développeurs mac, ça. Les développeurs
sérieux se préoccupent de compatibilité, quand ils corrigent un bug dans une
bibliothèque, ils le font en préservant la compatibilité, vérifiée par une
batterie de tests si nécessaire, ou en annonçant clairement, par un
changement de version majeur, que la compatibilité n'est pas préservée.

En tout état de cause, si le soft est opensource tu peux toujours
compiler la dernière version.



Génial : le mac, pour qu'il soit utilisable, il faut l'utiliser comme on
utiliserait un Linux from scratch.
Avatar
JKB
Le 10 Aug 2010 09:51:36 GMT,
Nicolas George <nicolas$ écrivait :
JKB wrote in message :
Le fait que le curses de Solaris est subtilement incomaptible avec
le ncurses de Gnu et que la présence des deux dans les chemins par
défaut fout le bordel, soit pour les outils du système, soit pour
les outils Gnu en fonction de l'ordre de résolution. Je ne vois pas
ce que tu refuses de comprendre.



C'est toi qui ne comprend pas ce que je dis. Tu peux citer toutes les
difficultés liées à Solaris que tu veux, tu ne feras qu'abonder dans mon
sens, puisque mon point est :

Si quelqu'un veut utiliser Solaris, qu'il se débrouille avec les merdes
inhérentes à Solaris, ce n'est pas le problème des développeurs.



Ah bon ?

C'est un peu facile.



C'est très facile. Justement.



Non, ça montre juste ta mentalité. Tu ne peux pas reprocher à
quelqu'un d'utiliser Solaris pour de _bonnes_ raisons. Et lorsqu'il
utilise Solaris, c'est à toi de t'adapter puisque tu ne peux pas
l'envoyer balader d'un simple revers de main. Il n'y a pas que les
labos universitaires dans la vie.

Non, ça reste un ensemble de bugs inhérents au script configure qui
prétendait utiliser -lform (et d'autres) pour lier statiquement des
bibliothèques.



Aaaah, tu as des problèmes pour lier statiquement... Alors justement que
j'essaie de t'expliquer qu'il ne faut pas le faire.



Et que j'essaie de t'expliquer que dans la vraie vie ce n'est pas si
simple que ça. En théorie, oui, il faudrait toujours lier
dynamiquement. Là où ça se corse, c'est juste au moment où les
différentes bibliothèques se parchent sur les pieds et que les
versions qui se suivent de la même bibliothèque ont des ABI
subtilement incompatibles.

Debian/squeeze est donc un système ancien.



Pour certaines choses, oui, évidemment.



Ça n'engage que toi.

Conclure aussi abruptement est une connerie car tu ne sais pas ce
que j'utilise dans OpenSSL ni même si j'utilise des fonctions
critiques du point de vue de la sécurité du système. Il y a des tas
de fonctions utiles dans OpenSSL qui ne concernent absolument pas la
sécurité du système hôte.



À part de la crypto, on se demande ce que tu pourrais faire avec OpenSSL.
Une faiblesse cryptographique, c'est toujours grave. Ou alors c'est que tu
n'avais pas besoin de crypto pour commencer.



Tu peux utiliser OpenSSL pour cryper un fichier. S'il y a une
faiblesse de OpenSSL, elle est déjà dans le fichier que tu as
chiffré avec une version foireuse de la bibliothèque. Autre argument ?

Si c'est pour répéter toujours la même chose et refuser de voir les
impératifs d'un système en production (et d'une relation avec des
clients), tu risques de continuer la discussion seul.

JKB

--
Le cerveau, c'est un véritable scandale écologique. Il représente 2% de notre
masse corporelle, mais disperse à lui seul 25% de l'énergie que nous
consommons tous les jours.
=> http://grincheux.de-charybde-en-scylla.fr
Avatar
JEf
On 10/08/10 12:05, Nicolas George wrote:
JEf wrote in message:
Mais que j'utilise plutôt linux en server et c'est généralement
corrigé plus vite que là car le bug est présent en ubuntu server 9.04 et
9.10



Peut-être que cette merde de fail2ban est la dernière préoccupation des
développeurs Ubuntu...



Cette merde est bien utile je trouve.


En effet c'est possible. Mais je préfère utiliser la librairie que le
dev à utiliser que de toujours avoir la dernière. En effet, un soft peu
très bien ne plus fonctionner avec la dernière version de la lib.



Ça ne donne pas confiance dans les développeurs mac, ça. Les développeurs
sérieux se préoccupent de compatibilité, quand ils corrigent un bug dans une
bibliothèque, ils le font en préservant la compatibilité, vérifiée par une
batterie de tests si nécessaire, ou en annonçant clairement, par un
changement de version majeur, que la compatibilité n'est pas préservée.



Qui parle de dev mac ? Quand je prends libpurple utilisée dans les softs
d'IM, elle n'est pas développée sur mac à la base.


En tout état de cause, si le soft est opensource tu peux toujours
compiler la dernière version.



Génial : le mac, pour qu'il soit utilisable, il faut l'utiliser comme on
utiliserait un Linux from scratch.



Oui c'est ça avoir le choix. Soit tu prends le binaires et tu fais
confiance au dev de fournir un truc qui fonctionne. Soit tu prends les
sources et tu compiles toi-même. Un peu comme sous linux quoi :-)

JEf
Avatar
Nicolas George
JKB wrote in message :
Si quelqu'un veut utiliser Solaris, qu'il se débrouille avec les merdes
inhérentes à Solaris, ce n'est pas le problème des développeurs.


Ah bon ?



Non, bien sûr. C'est le problème de celui qui veut installer / déployer /
packager le logiciel pour Solaris.

Non, ça montre juste ta mentalité. Tu ne peux pas reprocher à
quelqu'un d'utiliser Solaris pour de _bonnes_ raisons.



Je ne lui reproche pas, je dis juste que c'est son problème.

Et lorsqu'il
utilise Solaris, c'est à toi de t'adapter puisque tu ne peux pas
l'envoyer balader d'un simple revers de main.



Bien sûr que si tu peux l'envoyer balader. Ou alors c'est qu'il te paye pour
administrer ses machines.

Et dans ce cas, excuse-moi de te le dire, mais si ta solution pour
administrer une machine est d'installer des bibliothèques par-ci, par-là au
cas par cas, je n'ai vraiment pas envie d'avoir besoin de tes services.

Là où ça se corse, c'est juste au moment où les
différentes bibliothèques se parchent sur les pieds et que les
versions qui se suivent de la même bibliothèque ont des ABI
subtilement incompatibles.



Si elles ont des ABI différentes, elles ont des SONAME différents, et ça se
voit. Ça se voit moins directement quand c'est une dépendance de second
ordre, mais ça reste visible. Et c'est essentiellement le point délicat du
boulot d'administrateur / packageur de gérer ces cas.

Tu peux utiliser OpenSSL pour cryper un fichier. S'il y a une
faiblesse de OpenSSL, elle est déjà dans le fichier que tu as
chiffré avec une version foireuse de la bibliothèque. Autre argument ?



Et donc puisqu'un vieux fichier a été chiffré avec une faiblesse, continuons
à chiffrer les fichiers suivants avec la même faiblesse ?
1 2 3 4