2010-07-28 4 views
2

Je voudrais faire quelque chose comme ceci:Bash: commande chroot passer 2 paramètres de chaîne ou mieux exécuter une série de commandes

chroot /mount-point /path/to/script $var1 $var 2 

Est-ce que ce travail? Le script Perl chrooté sera-t-il transmis sur ces 2 paramètres? Si non, comment faire?

Sinon, est-il possible de faire simplement chroot dans le script, puis commencer à faire des commandes telles que

perl script.pl $var1 $var2 etc? 

Si je comprends bien, les écrire simplement séquentiellement dans bash ne les récupérerez exécutés après chroot est terminé, et le contrôle est retourné à l'endroit où je n'ai pas installé perl (c'est un ramdisk qui tourne à partir de PXE).

Répondre

0

Chroot devrait gérer cela très bien. Assurez-vous simplement que votre script Perl peut trouver un interpréteur Perl depuis le contexte chroot, que l'exécutable Perl peut trouver les bibliothèques partagées dont il a besoin et que vos variables, si elles contiennent des chemins, ont des chemins par rapport à la nouvelle racine. . Vous pouvez compiler un exécutable perl lié statiquement, si cela vous est plus facile que de faire des copies des bibliothèques partagées requises dans le chroot.

+0

Pouvez-vous développer s'il vous plaît sur la compilation d'un exécutable perl lié statiquement? il peut être mon prochain problème après avoir fait le chroot et en passant les paramètres comme je veux. – Carmageddon

+0

Ok, bien que cela fonctionne et je n'ai reçu aucune autre réponse, marquera comme la réponse. Fondamentalement, la réponse complète est: chroot/point de montage/chemin/vers/script "$ var1" "$ var2" – Carmageddon

+0

Si les $ var1 et $ var2 ont des espaces ou des caractères de shell, vous devez citer eux afin de les faire passer intact. Re: liaison statique, vous devriez lancer "ldd/path/to/your/perl" et voir de quelles bibliothèques il a besoin. Vous pouvez ensuite les copier dans la zone chroot, avec l'exécutable perl lui-même. Si, pour une raison quelconque, vous ne voulez pas copier ces bibliothèques, vous devrez reconstruire Perl de manière statique. Les instructions sur la façon de procéder sont dans le fichier INSTALL inclus avec la distribution source Perl - l'option Configurer est -Uusedl, ou vous pouvez le configurer dans la configuration interactive. –

Questions connexes