Comment comstackr quand la machine n'a pas assez de memory?

J'ai un VPS bas de gamme qui est configuré avec un ZNC comme un videur IRC, et il fonctionne très bien, il a environ 128 Mo de memory flash, ce qui n'est pas suffisant pour comstackr l'un des modules que je veux utiliser znc-push .

Après avoir essayé de comstackr sur une virtualbox et d'envoyer le file, j'obtiens une erreur de "header ELF invalide" quand j'essaie de charger le module. Comment puis-je comstackr ce module à distance puis l'envoyer? Il a assez de memory pour l'exécuter, mais ne le comstack pas, j'ai cherché à utiliser distcc, mais je ne trouve pas d'informations fiables sur la façon de l'utiliser.

Aussi, j'ai essayé de créer un file d'échange, mais ce n'est pas autorisé / possible avec ce VPS.

Évidemment, une telle machine n'a pas de ressources et n'est pas destinée à des fins de développement.

Pour de telles tâches, vous ne pouvez pas comstackr aveuglément dans l'architecture native de votre Debiam, c'est à dire une architecture extraterrestre / des binarys sur votre petit server.

Vous devez build une string d'outils croisée (cross) dans une machine distante / dans votre Debian 7, qui comstack les sources générant des binarys pour l'architecture cible.

Habituellement, la barre d'outils cross peut avoir des étapes spécifiques à installer, et peut-être besoin de quelques réglages pour votre environnement.

Un compilateur croisé est un compilateur capable de créer du code exécutable pour une plateforme autre que celle sur laquelle le compilateur est en cours d'exécution.

Un compilateur croisé est nécessaire pour comstackr plusieurs plates-forms depuis une machine. Une plate-forme pourrait être impossible pour un compilateur à fonctionner, comme pour le microcontroller d'un système embarqué, car ces systèmes ne contiennent pas de operating system.

Par exemple,

Comment build un compilateur croisé GCC

Autre exemple, j'ai également installé un compilateur croisé dans Debian pour NetBSD / ARM; ou par exemple, si j'ai besoin de binarys pour mon MIPS openwrt / 32 bits, je dois get l'environnement de compilation croisée qui correspond à uClib et MIPS 32 bits – mon routeur basé sur MIP a seulement 96 Mo de RAM et 128 Mo (ou 256 Mo ?) de flash.

En parlant de cela, certains environnements embarqués / petits routeurs utilisent uClib au lieu de glibc pour économiser de l'espace, car uClib est beaucoup plus petit que glibc.

uClibc est une petite bibliothèque standard C destinée aux systèmes d'exploitation basés sur le kernel Linux pour les systèmes embarqués et les appareils mobiles.

uClibc était principalement écrit à partir de rien, mais a incorporé du code de la glibc et d'autres projets.

uClibc est un wrapper autour des appels système du kernel Linux et de μClinux. uClibc est beaucoup plus petit que la glibc, la bibliothèque C normalement utilisée avec les dissortingbutions Linux. Alors que la glibc est destinée à supporter pleinement toutes les normes C pertinentes sur un large éventail de plates-forms matérielles et de kernelx, uClibc est spécifiquement axé sur Linux embarqué. Les fonctionnalités peuvent être activées ou désactivées en fonction de l'espace requirejs.

Souvent, vous avez remplacé busybox et vous donner une version bare des utilitaires binarys que vous avez dans un linux par exemple, vous remarquerez que ls et find , par exemple, sont différents, less puissants et ont less d'options à utiliser.

BusyBox est un logiciel qui fournit plusieurs outils Unix dépouillés dans un seul file exécutable. Il fonctionne dans une variété d'environnements POSIX tels que Linux, Android, [7] et FreeBSD [8], bien que de nombreux outils fournis soient conçus pour fonctionner avec les interfaces fournies par le kernel Linux. Il a été spécifiquement créé pour les systèmes d'exploitation embarqués avec des ressources très limitées.

Les différences ne finissent pas non plus ici. Au lieu d'Apache, vous auriez pu avoir Luci; et au lieu d'OpenSSH, Dropbear SSH.

Dropbear est un server et client SSH relativement petit. Dropbear est particulièrement utile pour les systèmes Linux (ou autres Unix) de type "embedded", tels que les routeurs sans fil.

Vous aurez également un kernel Linux très dépouillé, et pas forcément la dernière version. Dans certaines maps chinoises, il peut également être "piraté" pour prendre en charge un matériel non standard et vous (et souvent le fournisseur) ne pourrez pas le recomstackr pour les versions plus récentes.

J'ai bien peur que vous deviez faire des searchs un peu plus sur votre petit environnement de machine; J'espère également que cette réponse vous aidera à réaliser qu'il n'est pas prévu de gérer un Linux embarqué de toutes les façons que vous utilisez avec un server Linux à part entière.

Comme toujours, en plus d'avoir les outils, il faut les comprendre.