Pot să instalez Ruby și Ruby on Rails pe un Android? (Android, Dezvoltare)

Starkers a intrebat.

Conștient că este un pic mental, dar pot să instalez Ruby pe un Galaxy S4 care rulează Jelly Bean 4.2? O consolă în care pot instala gems, rute rake și rula serverul Rails și pot naviga la aplicația mea punând 0.0.0.0.0.3000 în Chrome?

Ar fi excelent pentru testare puțin idei și concepte pe care le am în timp ce sunt în mișcare!

Sunt conștient că Android nu este UNIX, dar bunul Dumnezeu dacă îl pot instala pe Windows, îl pot instala oriunde!

Comentarii

  • Aveți câteva răspunsuri bune mai jos, aveți vreun motiv pentru care nu le-ați dat upvoted ? –  > Por Siddharth.
5 răspunsuri
Izzy

Mediul de scripting Android a spus să planifice pe Ruby. Ar putea merita o verificare cât de departe au ajuns; cel puțin sunt etichetați „JRuby” la Google Code. Conform pagina lor de proiect:

Scripturile pot fi rulate interactiv într-un terminal, în fundal sau prin Locale. În prezent sunt acceptate Python, Perl, JRuby, Lua, BeanShell, JavaScript, Tcl și shell, iar noi plănuim să adăugăm și altele.

Dar fiți de asemenea conștienți de:

SL4A este conceput pentru dezvoltatori și este un software de calitate alfa.

Un articol interesant pe această temă pe care poate doriți să îl citiți este Hacking Android în timpul sărbătorilor. Acesta descrie o încercare (reușită) de a configura și utiliza SL4A pentru a fi folosit cu a.o. Ruby.

fann95

acest lucru poate fi făcut

  1. Compilați Ruby și Nodejs pentru android
  2. Se instalează pe dispozitiv și se configurează cu c/c++ ide (Puteți folosi C4droid,CCTools,Terminal IDE…. pentru instalarea modulelor de expansiune pe с/с++)
  3. Instalați rails ($gem install rails)

exemplu:
(Faceți clic pe imagine pentru a o mări)

yang

În ceea ce privește ruby, puteți încerca Termux.

Cu baterii incluse. Vă puteți imagina un calculator de buzunar mai puternic și totuși mai elegant decât o consolă python alimentată prin readline? Sunt disponibile versiuni actualizate de perl, python, ruby și node.js.

Michael Hampton

În teorie, da, ați putea face acest lucru, dar ar exista unele limitări semnificative. Veți avea nevoie aproape cu siguranță de un înrădăcinată dispozitiv Android cu rădăcină.

De exemplu, nu veți putea să gem install anything și să funcționeze. Problema este că telefonul este prea limitat în resurse pentru a rula un compilator, așa că nu puteți compila nici Ruby, nici orice altă bijuterie care are nevoie de biblioteci native.

Așadar, primul mod în care aș proceda ar fi să compilez încrucișat ruby și RubyGems cu ajutorul aplicației Android NDK și apoi să le încărcați pe dispozitiv. În acest moment aveți ruby și gem și puteți începe să experimentați.

Overloaded_Operator

De fapt, am modificat CyanogenMod pentru a crea goluri „/bin, /lib, /usr, /var, /svr, /home, /media, etc, etc” și apoi am modificat „${source_root}/system/core/include/include/private/android_filesystem_config. h” pentru a include reguli pentru directoare și apoi mi-am modificat cardul sdcard extern astfel încât să nu se monteze ca fuse sau cu bitul sticky setat (ar seta proprietatea root:sdcard_rw asupra tuturor fișierelor din interior) și după pornire am rulat un script care a montat directoarele Linux arm root de pe cardul sdcard extern în versiunile goale din rădăcina Android. Versiunea încorporată a glibc a fost folosită cu o imagine chroot Kali Linux armhf pe care am creat-o, dar nu avea ruby sau metasploit. Așa că am urmat niște indicații despre compilarea ruby 1.9.3 cu svn sau ceva de genul ăsta și apoi am folosit asta pentru a instala metasploit, singurul lucru a fost că postgresql nu a funcționat deoarece crearea de socket-uri și fișiere este foarte sensibilă la permisiuni și este posibil să fi fost implicate socket-uri, așa că nu există o bază de date postgres, încă nu am încercat să mă conectez la un db pe o altă gazdă totuși. Apache2 a funcționat, am făcut întregul /etc/init.d/apache2 start și viola, „It Works!” știți asta dacă ați văzut-o.

Deci, pe scurt, da, poți compila ruby și multe alte programe pe Android, glibc trebuie doar să fie disponibil, adică directorul /lib și conținutul pe Linux.

Și ca o notă secundară, am folosit un Galaxy S III Sprint cu 2GB de RAM. Python funcționează foarte bine, tocmai am început să experimentez cu socket-uri Unix cu python, s-au conectat în /sdcard, dar trebuie să învăț mai multe despre politicile de securitate ale Android privind socket-urile și crearea de baze de date înainte de a merge mai departe cu obținerea metasploit și lucrul cu o bază de date care funcționează pe Android + glibc.