2010-07-27 4 views
4

je dois distribuer un fichier binaire pour GNU/Linux ...Depends.exe pour GNU/Linux

Sous Windows, je pouvais exécuter un utilitaire nommé « depends.exe » qui vérifierait toutes les dépendances que le fichier avoir, donc je serais en mesure de savoir ce qu'il faut expédier avec le fichier, comment je fais la même chose avec GNU/Linux?

Précision: Je ne voulais pas le distribuer LITTÉRALEMENT (à moins qu'il est une certaine bibliothèque qui ne génèrent pas de problèmes, comme ... libThatOnlyMySoftwareUseVersion0.00042895.08421thatnoonehas Un peu comme les utilisateurs en pensant que auraient besoin ...)

Répondre

9

L'utilitaire que vous recherchez sur Linux s'appelle ldd. Cependant, faites un service à vos utilisateurs et ne pensez pas à distribuer des bibliothèques avec votre programme. Exigez que vos utilisateurs installent les prérequis via les canaux appropriés. Ou, mieux encore, empaquetez votre logiciel en utilisant un système d'installation approprié comme RPM, apt ou portage (je suppose que vous ne pouvez pas utiliser la distribution source et les autotools); Cela permet au système de gestion de paquets de résoudre automatiquement les dépendances en extrayant les bibliothèques requises.

Distribuer des versions de bibliothèques en utilisant des schémas ad-hoc ne va que causer des problèmes pour les utilisateurs finaux (quelque chose comme DLL enfer sous Windows). Ils peuvent se retrouver avec des conflits, des accidents, et peut-être des trous de sécurité.

Vous pouvez utiliser ldd pour déterminer de quelles bibliothèques dépend votre binaire afin de pouvoir configurer les dépendances appropriées lorsque vous créez vos paquets (certains conditionneurs, comme RPM, le font pour vous).

1

typiquement vous construiriez un binaire de Linux pour une distribution particulière de Linux, et juste fournissez votre propre binaire, et exigez aux utilisateurs d'installer les autres morceaux. Si vous utilisez un système qui utilise des paquets rpm, vous voulez savoir comment construire des RPM, si vous utilisez une variante Debian, vous voulez voir comment les paquets binaires sont construits.

Si vous voulez vérifier manuellement ce que les bibliothèques de votre binaire est un lien contre alors:

ldd /whereever/is/your/binary 

vous donnera une liste des bibliothèques liées à un binaire lié dynamiquement. mais vous ne voulez pas distribuer la plupart de ceux-ci car c'est comme essayer de redistribuer system32.dll ou windows.dll mauvaise mauvaise idée: ^)

+1

Que sont 'system32.dll' et' windows.dll'? : P –

+4

@Delan: Une sorte de malware, je pense;) –

+0

@Dan +1 pour la bonne réponse –

Questions connexes