8 votes

Puis-je installer Ruby et Ruby on Rails sur un Android ?

Je sais que c'est un peu fou, mais puis-je installer Ruby sur un Galaxy S4 fonctionnant sous Jelly Bean 4.2 ? Une console où je peux installer des gems, rake routes et exécuter le serveur Rails, et naviguer vers mon application en mettant 0.0.0.0.3000 dans Chrome ?

Serait excellent pour les tests petit les idées et les concepts que j'ai en cours de route !

Je sais qu'Android n'est pas UNIX, mais bon Dieu, s'ils peuvent l'installer sur Windows, ils peuvent l'installer n'importe où !

6voto

fann95 Points 61

Cela peut être fait

  1. Compiler Ruby et Nodejs pour Android
  2. Installer sur le dispositif et configurer avec l'IDE c/c++ (Vous pouvez utiliser C4droid,CCTools,Terminal IDE.... pour installer les modules d'extension sur /++)
  3. Installer rails ($gem install rails)

exemple :
Screenshot 1 Screenshot 2 Screenshot 2 (Cliquez sur l'image pour l'agrandir)

3voto

Milner Points 533

L'environnement de script Android a dit de planifier sur Ruby . Cela vaut la peine de vérifier jusqu'où ils sont allés ; au moins, ils sont étiquetés "JRuby" chez Google Code. D'après leur page de projet :

Les scripts peuvent être exécutés de manière interactive dans un terminal, en arrière-plan ou via Locale. Python, Perl, JRuby, Lua, BeanShell, JavaScript, Tcl, et shell sont actuellement supportés, et nous prévoyons d'en ajouter d'autres.

Mais soyez aussi conscient de :

SL4A est conçu pour les développeurs et est un logiciel de qualité alpha.

Un article intéressant sur ce sujet que vous pourriez vouloir lire est le suivant Pirater Android pendant les vacances . Il décrit une tentative (réussie) de configurer et d'utiliser SL4A pour l'utiliser avec a.o. Ruby.

3voto

CharlieMezak Points 3648

Quant à ruby, vous pouvez essayer Termux .

Avec piles incluses. Pouvez-vous imaginer une calculatrice de poche plus puissante et élégante qu'une console python alimentée en ligne ? Des versions actualisées de perl, python, ruby et node.js sont disponibles.

0voto

Michael Hampton Points 2100

En théorie, oui, vous pourriez le faire, mais il y aurait des limitations importantes. Vous aurez presque certainement besoin d'un enraciné Appareil Android.

Par exemple, vous ne pourriez pas simplement gem install anything et que ça marche. Le problème est que le téléphone est trop limité en ressources pour faire tourner un compilateur, donc vous ne pouvez pas compiler Ruby, ou tout autre gemme qui nécessite des bibliothèques natives.

Ainsi, la première façon de procéder serait de compiler ruby et RubyGems de manière croisée avec l'outil de compilation de ruby. NDK Android et ensuite les charger latéralement sur l'appareil. A ce stade, vous avez ruby y gem et peut commencer à expérimenter.

0voto

En fait, j'ai modifié CyanogenMod pour créer des répertoires vides "/bin, /lib, /usr, /var, /svr, /home, /media, etc, etc" et ensuite modifié "${source_root}/system/core/include/private/android_filesystem_config. h" pour y inclure les règles pour les répertoires, puis j'ai modifié ma carte SD externe pour qu'elle ne soit pas montée en tant que fuse ou avec le sticky bit activé (elle mettrait la propriété de Root:sdcard_rw sur tous les fichiers à l'intérieur) et après le démarrage, j'ai lancé un script qui montait les répertoires Root du bras Linux sur la carte SD externe vers les versions vides dans Root d'Android. La version embarquée de la glibc a été utilisée avec une image chroot Kali Linux armhf que j'ai créée, mais elle n'avait ni ruby ni metasploit. J'ai donc suivi des instructions concernant la compilation de ruby 1.9.3 avec svn ou quelque chose du genre, puis j'ai utilisé cette compilation pour installer metasploit. La seule chose que j'ai constatée, c'est que postgresql n'a pas fonctionné parce que la création de sockets et de fichiers est très sensible aux permissions et que des sockets ont pu être impliqués, donc pas de base de données postgres. Apache2 a fonctionné, j'ai fait tout le /etc/init.d/apache2 start et viola, "It Works !" vous le savez si vous l'avez vu.

Donc en résumé, oui, vous pouvez compiler ruby et bien d'autres programmes sur Android, la glibc doit juste être disponible, c'est-à-dire le répertoire /lib et son contenu sur Linux.

Et pour l'anecdote, j'ai utilisé un Galaxy S III Sprint avec 2 Go de RAM. Python fonctionne très bien, je viens de commencer à expérimenter avec les sockets Unix avec python, ils se sont connectés dans /sdcard mais je dois en apprendre davantage sur les politiques de sécurité d'Android sur les sockets et la création de bases de données avant d'aller plus loin avec l'obtention de metasploit et le travail avec une base de données fonctionnant sur Android + glibc.

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X