Compiler le client Nextcloud sous Debian / Ubuntu / Mint

nextcloud 9 janv. 2017

Comme vous le savez, j’utilise Nextcloud pour gérer mes contacts, agendas, et surtout mes fichiers perso. Oui, je conchie les solutions privatrices/espionnes/whatever que sont Dropbox, Drive, iCloud, WeTansfer et autres « nuages » à la noix.

Le truc, c’est que si ownCloud propose un dépôt contenant ses logiciels, ce n’est pas (encore) le cas de Nextcloud, plus jeune. En attendant un dépôt officiel ou l’intégration du client de synchronisation dans les dépôts des distributions classiques (c’est déjà le cas pour certaines, via des dépôts communautaires type AUR pour ArchLinux –m’enfin là c’est un autre sujet : déjà que les dépendances c’est aussi stable qu’un jeu de mikado, si on rajoute AUR c’est comme faire couler de la colle Loctite sur le jeu de mikado en question :mrgreen: ), vous avez 3 options : utiliser le client ownCloud (c’est triste, mais ça fonctionne totalement), utiliser n’importe quel autre client WebDAV (reste  le configurer comme vous voulez), ou… eh bien, compiler le client officiel Nextcloud à partir des sources. C’est pas super méchant, et c’est ce qu’on va faire aujourd’hui. En avant !

logo nextcloud

On installe les dépendances et de quoi compiler

Lancez un terminal en tant que superutilisateur, soi via l’item qui va bien s’il existe, soi normalement en entrant :

sudo -s

 

Entrez le mot de passe administrateur, et c’est réglé.

Ensuite, on télécharge et on installe les dépendances et les outils de compilation :

apt update && apt install -y build-essential git cmake openssl libssl-dev sqlite3 libsqlite3-dev qt5-default libqt5webkit5-dev qttools5-dev qttools5-dev-tools python-sphinx texlive-latex-base inotify-tools qt5keychain-dev

 

Une fois que tout ça est fait, on est paré pour la suite.

 

On récupère les sources

Plaçons-nous dans un répertoire approprié pour la compilation, j’ai choisi :

cd /usr/local/src

 

Et on suit la procédure développée par Nextcloud, en gros.

git clone https://github.com/nextcloud/client_theming.git
cd client_theming
git submodule update --init
cd client
git submodule update --init
cd ..
mkdir build-linux
cd build-linux
cmake -D OEM_THEME_DIR=`pwd`/../nextcloudtheme ../client

 

Ubuntu étant parfois ( 😉 ) mal foutu, il nous faut remplacer le ‘n’ de ‘nextcloud’ par un ‘N’ majuscule, pour que le tableau de bord Ubuntu le prenne en compte. Dans le doute, faites-le, ça ne change pas grand chose au pire.

sed -i 's/Icon=nextcloud/Icon=Nextcloud/g' src/gui/nextcloud.desktop
sed -i 's/Icon\[\(.*\)\]=nextcloud/Icon\[\1\]=Nextcloud/g' src/gui/nextcloud.desktop

On compile (et on ajuste) !

Pour compiler et installer, c’est aussi simple qu’à l’accoutumée :

make && make install

 

compilation

 

Il vous faut également ajouter une variable d’environnement, et tant qu’à faire, étendons-la à tout le système. Pour ça, ouvrez le fichier /etc/environment avec votre éditeur préféré (donc emacs ou nano, le reste n’étant que fumisterie). Ajoutez la ligne suivante :

LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib/x86_64-linux-gnu

 

Redémarrez la machine, et ouvrez un terminal. Tapez-y simplement :

nextcloud

 

Là, 2 options :

  1. le client de synchronisation Nextcloud s’ouvre : c’est gagné, paramétrez votre compte et tout roule.
  2. le client ne se lance pas, et vous avez une erreur qui dit : error while loading shared libraries: libnextcloudsync.so.0, alors continuez 😉

 

Le hic est lié à « ldconfig », un outil qui va charger pour tout le système un ensemble de bibliothèques partagées, pour les rendre disponibles pour toutes vos applications. Sauf que là, il semble qu’il ne cherche pas au bon endroit. Je ne suis pas expert de cet outil, il y a probablement une solution plus élégante, mais à force de galérer j’ai fini par trouver cette astuce qui a le mérite de fonctionner. Je vous laisse proposer mieux en commentaire si besoin 😉

Comme pour le précédent fichier, ouvrez avec votre éditeur préféré et en tant que root le fichier : /etc/ld.so.conf.d/x86_64-linux-gnu.conf , et ajoutez la ligne :

/usr/local/lib/x86_64-linux-gnu

 

Ensuite, dans votre terminal et toujours en tant que root, lancez :

ldconfig

 

Ensuite, relancez la commande nextcloud au nom de votre utilisateur habituel : tout devrait bien se passer !

 

 

Profitez bien de votre Nextcloud, maintenant que vous l’avez synchronisé 😀

Mots clés