2010-02-03 3 views
3

avez-vous déjà eu des difficultés avec le déploiement de Linux?S'il vous plaît recommander un moyen de déployer dans une boîte Linux dans un environnement de réseau local

Je dois déployer une application dans une machine Linux dédiée sans accès au réseau externe. La configuration doit être aussi simple que possible, robuste pour différentes configurations (bibliothèques manquantes et outils de construction) et de préférence automatique. Une autre difficulté que je dois prendre en compte est que je dois me connecter à une base de données Oracle.

Que recommanderiez-vous comme le meilleur moyen de déploiement? J'ai quelques idées, mais je ne sais pas quel est le meilleur.

  • Je peux utiliser Java
    • je vais devoir installer le JDK, et que la plupart du temps tout
    • résoud
    • Un autre gros problème est que le code que nous avons actuellement en Java est mal écrit et lent.
    • Je ne sais pas si je dois installer instantclient pour se connecter à Oracle sous Linux
  • Je peux utiliser C (j'ai le code source d'un programme LGPL très bien écrit)
      Et
    1. utiliser dpkg pour déployer
      • La boîte Linux est très probablement un serveur Ubuntu, mais je ne suis pas sûr de la version est installée
      • Je ne peux pas utiliser apt-get, mais je peux copier tous les paquets dont j'ai besoin
      • Je sais que je peux utiliser dpkg -s pour vérifier quels paquets ils sont, mais je ne sais vraiment pas si je pourrais manquer des dépendances.
      • Je suppose que je vais devoir construire-essentiels et PPCE ou tels
    2. Et utiliser statique reliant
      • Je configuré avec ./configure LDFLAGS=-static sans erreur et il fonctionne sur mon ordinateur maintenant
      • Je chroot dans ce répertoire et exécutez-le sans problèmes, cela signifie-t-il que c'est correct?
      • je vraiment besoin de tester cela sur une nouvelle boîte de Linux pour vous assurer que
    3. Et utiliser Statifier
      • Je stackoverflow et parcouru trouvé cette application, ne l'ont pas encore essayé.
      • On dirait que les gens l'ont utilisé avec un succès mitigé.
    4. et créer un environnement de construction et de faire
      • Je n'ai pas confiance que cela va travailler
  • utilisant C laisse quelques problèmes
    • Mais le programme est incomplet, je dois traiter ces données, de préférence pas en C.
    • Je dois installer instantclient, ce qui est difficile à déployer
  • je peux utiliser Perl
    • Je ne peux pas utiliser CPAN
    • Je l'ai déjà téléchargé les bibliothèques, alors peut-être que je pouvais les copier dans la machine déployée, je ne sais pas comment ou si cela fonctionne
    • Perl est lent
    • Je dois installer instantclient
    de toute façon

Veuillez partager votre expérience similaire. C avec liaison statique résout un grand nombre de problèmes de portabilité au détriment d'un plus grand exécutable.

Répondre

1

Pour vous assurer que tout est vraiment lié statiquement et pas secrètement selon les bibliothèques externes, lancez ldd sur votre exécutable et assurez-vous qu'il ne charge pas tout de manière dynamique. Notez que ceci ne sera pas 100% portable sur différentes machines linux car Oracle instantclient a des dépendances sur les versions du noyau, mais cela devrait fonctionner sur n'importe quel noyau raisonnablement nouveau. Editer: Si la boîte a un accès LAN et pas d'accès à Internet, pourquoi ne pas lancer votre propre référentiel apt sur le réseau local. Vous pouvez même créer un fichier .deb pour votre application et le placer sur le même serveur. Sur cette machine, vous devez juste exécuter apt-get myApplication et cela supprimera votre application et toutes les dépendances non installées. Mise en place d'un miroir apt est en fait assez facile et ce serait assez lisse. Si l'accès au réseau est manquant, vous pouvez toujours créer un DVD d'installation contenant tous les débs, y compris votre application, et configurer apt-get à partir de là.

+0

Je réfléchissais simplement à tous les paquets dont j'avais besoin, et le problème est que je ne suis pas sûr d'avoir tout compris. Je viens d'utiliser une virtualbox pour émerger une installation propre d'ubuntu, le binaire statique fonctionne bien. Je pense que cela résoudra ma question – TiansHUo

Questions connexes