Raspberry Pi Home Server - Installer Cloud9 pour héberger et partager votre code


Achtung : Dieser Artikel wurde automatisch von Google Translate übersetzt


Advertencia : Este artículo ha sido traducido automáticamente por Google Translate


Si vous travaillez pas mal avec des langages web, que vous voulez continuer à travailler en dehors de chez vous ou vous travaillez en équipe, Cloud9 peut être une excellente solution pour vous. Supportant HTML, CSS, PHP, Java, Ruby et 23 autres langages, c’est l’idéal pour le développement avec un Cloud.
Cloud9-IDE-Avatar-new

Le slogan : c’est Google Docs mais pour du code. Et c’est exactement ça (oui forcement !). Colaboration, partage, connexion à distance SSH ou FTP, des raccourcis clavier dans tous les sens, des thèmes. Bref, c’est l’IDE idéal

  1. Mettre à jour le système
    apt-get update && apt-get -y upgrade
  2. Créer le répertoire pour Node.js
    cd /opt
  3. Télécharger Node.JS. J’ai essayé les versions 0.11.x, puis 0.10.x et enfin 0.9.x. Pas moyen. Au final grâce à mon ami Google, c’est la version 0.8.17 qu’il faut utiliser …
    wget http://nodejs.org/dist/v0.8.17/node-v0.8.17-linux-arm-pi.tar.gz
  4. Décompresser, installer
    tar zxvf node-v0.8.17-linux-arm-pi.tar.gz
    mv node-v0.8.17-linux-arm-pi node
    cd node
  5. Maintenant il faut ajouter Node.JS dans le Path. Modifier le fichier /etc/profile en ajoutant les lignes en rouge
    if [ "`id -u`" -eq 0 ]; then
      PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
    else
      PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games"
    fi
    export NODE_JS_HOME="/opt/node"
    export NODE_PATH="/opt/node/lib/node_modules"
    PATH="$PATH:$NODE_JS_HOME/bin:$NODE_PATH"
    export PATH
  6. Pour prendre en compte tout de suite les modifications
    source /etc/profile
  7. Installer git
    apt-get install -y git
  8. Télécharger Cloud9
    cd
    git clone https://github.com/ajaxorg/cloud9.git cloud9
  9. Installer les paquets nécessaires à l’installation de Cloud9
    apt-get -y install build-essential openssl libssl-dev pkg-config libxml2-dev nodejs-dev
  10. Mettre à jour les droits des fichiers
    chown -Rf root:root /opt/node
  11. Configurer node-xml depuis le répertoire cloud9
    cd cloud9
    mkdir node_modules
    cd node_modules
    git clone https://github.com/ajaxorg/node-libxml.git libxml
    cd libxml && git checkout v0.0.7 && git submodule init && git submodule update
  12. Modifier le fichier support/o3/wscript en supprimant l’option -msse2, texte en rouge
    conf.env.append_value('CCFLAGS', ['-O3', '-msse2', '-ffast-math', '-fno-strict-aliasing'])
    conf.env.append_value('CXXFLAGS', ['-O3', '-msse2', '-ffast-math', '-fno-strict-aliasing'])
  13. Vous pouvez maintenant installer le module avec la commande npm (Node Package Manager). Vous devez toujours être dans le répertoire cloud9/node_modules/libxml
    npm install --unsafe-perm

    Lors de la compilation, au début, il y a des contrôles. Toutes les lignes doivent être vertes. Il vous faudra patienter facilement 15 minutes.
    Raspberry Pi Home Server - Installer Cloud9 pour héberger et partager votre code

  14. Installer les modules supplémentaires
    cd ../..
    npm install -g

    Patience là aussi, il faut bien une heure. En cas de plantage, vous devrez peut-être installer « traverse » manuellement avant de relancer la commande npm :

    npm install [email protected]
  15. Installer les paquets manquants si besoin (vous le saurez vite si vous lancez le serveur)
    npm install -g formidable v8debug gnu-tools xmldom
  16. Reste à démarrer le serveur en faisant pointer l’espace de travail sur votre répertoire avec vos sources :
    bin/cloud9.sh -l 0.0.0.0 -w /my/path/
  17. Vous pouvez maintenant vous connecter sur votre Raspberry Pi sur le port 3131.
    root_-_Cloud9Vous voilà dans l’interface. Ce qui est sympa c’est pour le développement web avec la preview que vous pouvez avoir en « presque » temps réel à coté sans changer d’onglet ou de navigateur.

Attention chez moi j’ai du aller sur Chrome, Safari ne me laissant pas éditer un fichier dans un onglet.

Rendez-vous sur cette page pour la documentation sur l’interface.

Bon développement !

Vous aimerez aussi...

  • Tante Gertrude

    Bonjour et merci encore pour ce tuto. Pourquoi il faut la version 0.8.17 de Node.JS ?
    C’est une contrainte du Pi ou de Cloud9 ?

    • Bonjour. De Cloud9 car NodeJs a déjà été utilisé dans une version plus récente pour d’autres projets. Lorsque j’ai essayé d’utiliser d’autres versions il y avait de gros probleèmes de dependances pour au final un plantage du serveur. Maintenant il y a peut etre des astuces pour le faire fonctionner mais je n’en ai pas trouvé

  • Wow 5 tutoriel Star !! Tenez-vous à l'innovation pour les développeurs !!

  • duck

    Bonsoir,

    Très beau tuto par lequel je suis très intéressé.

    Je le suis donc a lettre mais j’obtient une erreur à l’étape 12.
    J’exécute la commande :

    conf.env.append_value(‘CCFLAGS’, [‘-O3’, ‘-msse2’, ‘-ffast-math’, ‘-fno-strict-aliasing’])

    et ça me retourne :

    bash: Erreur de syntaxe près du symbole inattendu « ‘CCFLAGS’, »

    Je ne vois pas ou est l’erreur.

    Merci de votre aide

    Duck

    • duck

      J’ai relu le tutoriel, et corriger mon problème (nano wscript)

      bonne journée

  • DracZakk

    Bonjour,
    Tout d’abord merci pour ce super tuto, l’installation a l’air de se passer correctement en suivant pas à pas les instructions. Néanmoins j’ai une erreur au moment de démarrer le serveur, voici ce que je j’obtiens sur mon terminal :

    root@raspberrypi:~/cloud9# bin/cloud9.sh -l 0.0.0.0
    mkdir -p plugins-client/lib.ace/www/worker
    rm -rf /tmp/c9_worker_build
    mkdir -p /tmp/c9_worker_build/ext
    ln -s `pwd`/plugins-client/ext.language /tmp/c9_worker_build/ext/language
    ln -s `pwd`/plugins-client/ext.codecomplete /tmp/c9_worker_build/ext/codecomplete
    ln -s `pwd`/plugins-client/ext.jslanguage /tmp/c9_worker_build/ext/jslanguage
    ln -s `pwd`/plugins-client/ext.csslanguage /tmp/c9_worker_build/ext/csslanguage
    ln -s `pwd`/plugins-client/ext.htmllanguage /tmp/c9_worker_build/ext/htmllanguage
    ln -s `pwd`/plugins-client/ext.linereport /tmp/c9_worker_build/ext/linereport
    ln -s `pwd`/plugins-client/ext.linereport_php /tmp/c9_worker_build/ext/linereport_php
    ln -s `pwd`/plugins-client/ext.linereport_python /tmp/c9_worker_build/ext/linereport_python
    node Makefile.dryice.js worker

    module.js:340
    throw err;
    ^
    Error: Cannot find module ‘dryice’
    at Function.Module._resolveFilename (module.js:338:15)
    at Function.Module._load (module.js:280:25)
    at Module.require (module.js:362:17)
    at require (module.js:378:17)
    at Object. (/root/cloud9/Makefile.dryice.js:3:12)
    at Module._compile (module.js:449:26)
    at Object.Module._extensions..js (module.js:467:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Module.runMain (module.js:492:10)
    make: *** [plugins-client/lib.ace/www/worker/worker-language.js] Error 1
    Linux ARM

    module.js:340
    throw err;
    ^
    Error: Cannot find module ‘architect’
    at Function.Module._resolveFilename (module.js:338:15)
    at Function.Module._load (module.js:280:25)
    at Module.require (module.js:362:17)
    at require (module.js:378:17)
    at Object. (/root/cloud9/server.js:4:17)
    at Module._compile (module.js:449:26)
    at Object.Module._extensions..js (module.js:467:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Module.runMain (module.js:492:10)

    il semblerait qu’il manque 2 modules.. Avez vous une idée de ce qu’il manque ? Merci d’avance 🙂 !

    • Peut-être en passant par l’installation des modules ?
      npm install dryice
      npm install architect

      • DracZakk

        En effet, les erreurs énoncées ci-dessus ont disparu ^^ j’ai eu d’autres modules manquants et j’ai procédé de la même manières pour les installer. Maintenant j’en suis à ce stade :

        root@raspberrypi:~/cloud9# bin/cloud9.sh -l 0.0.0.0
        mkdir -p plugins-client/lib.ace/www/worker
        rm -rf /tmp/c9_worker_build
        mkdir -p /tmp/c9_worker_build/ext
        ln -s `pwd`/plugins-client/ext.language /tmp/c9_worker_build/ext/language
        ln -s `pwd`/plugins-client/ext.codecomplete /tmp/c9_worker_build/ext/codecomplete
        ln -s `pwd`/plugins-client/ext.jslanguage /tmp/c9_worker_build/ext/jslanguage
        ln -s `pwd`/plugins-client/ext.csslanguage /tmp/c9_worker_build/ext/csslanguage
        ln -s `pwd`/plugins-client/ext.htmllanguage /tmp/c9_worker_build/ext/htmllanguage
        ln -s `pwd`/plugins-client/ext.linereport /tmp/c9_worker_build/ext/linereport
        ln -s `pwd`/plugins-client/ext.linereport_php /tmp/c9_worker_build/ext/linereport_php
        ln -s `pwd`/plugins-client/ext.linereport_python /tmp/c9_worker_build/ext/linereport_python
        node Makefile.dryice.js worker
        # cloud9 worker ———

        /root/cloud9/node_modules/dryice/lib/dryice/index.js:647
        throw new Error(‘Each commonjs root should be a directory: ‘ + root);
        ^
        Error: Each commonjs root should be a directory: /root/cloud9/node_modules/ace/lib
        at CommonJsProject. (/root/cloud9/node_modules/dryice/lib/dryice/index.js:647:13)
        at Array.map (native)
        at new CommonJsProject (/root/cloud9/node_modules/dryice/lib/dryice/index.js:645:27)
        at Function.copy.createCommonJsProject (/root/cloud9/node_modules/dryice/lib/dryice/index.js:961:10)
        at worker (/root/cloud9/Makefile.dryice.js:43:30)
        at main (/root/cloud9/Makefile.dryice.js:35:9)
        at Object. (/root/cloud9/Makefile.dryice.js:101:5)
        at Module._compile (module.js:449:26)
        at Object.Module._extensions..js (module.js:467:10)
        at Module.load (module.js:356:32)
        make: *** [plugins-client/lib.ace/www/worker/worker-language.js] Error 1
        Linux ARM

        cela reste comme ça, le terminal ne me rend pas la main, je me dit donc que le serveur fonctionne. Or dans mon navigateur, l’adresse du raspberry ne revoie rien.

        une idée 🙂 ? Merci ^^

        • D’après ce que je trouve sur les forums, ca peut venir de la version de Node. Tu as bien utilisé la 0.8.17 ?

          • DracZakk

            oui formel ! J’ai d’ailleurs fait un copier/coller de la commande wget de l’étape 3 ^^

          • Mazen

            Ce lien t’aidra surement : http://sysmagazine.com/posts/150204/

Handpicked links

Mise en cache objet de 2047/2259 objets utilisant disk Mise en cache utilisant disk: enhanced Mise en cache de base de données 8/71 requêtes dans 0.076 secondes utilisant disk Served from: pihomeserver.fr @ 2017-09-05 09:04:09 by W3 Total Cache -->