Aller au contenu

Installer Le Serveur Calibre Sur Ds212+ En Chroot


zouh

Messages recommandés

Je viens d'installer avec succès le serveur calibre sur mon DS212+ (processeur arm). J'ai fait un petit tuto ci-dessous :

Sur mon PC, sous archlinux, j'ai installé debootstrap (dépôt AUR). Si vous avez une distrib à base de debian, vous pourrez facilement installer debootstrap à partir de vos dépôts habituels. Pour les windowsiens, il reste la solution d'installer une Ubuntu dans VirtualBox.

Puis dans une console, j'ai exécuté :

sudo debootstrap --foreign --arch armel sid chrootcible "http://ftp.fr.debian.org/debian"

depuis le chemin /data/Documents/Install_Ubuntu/Arch_linux/calibre_sur_NAS-synology/
après avoir créé le répertoire :
/data/Documents/Install_Ubuntu/Arch_linux/calibre_sur_NAS-synology/chrootcible

Ce qui a eu pour effet de créer toute une arborescence sous
/data/Documents/Install_Ubuntu/Arch_linux/calibre_sur_NAS-synology/chrootcible
constituant un système de base debian, version sid, pour une architecture arm.

Pourquoi --arch armel ?
Parce que mon DS212+ possède un processeur arm.
Pour un NAS à base de processeur Intel, il aurait fallu écrire :

sudo debootstrap --foreign --arch i386 sid chrootcible "http://ftp.fr.debian.org/debian"

(ou i686 ? je n'ai pas creusé cette question, n'étant pas concernée).

Pourquoi sid (=version unstable de debian) et pas wheezy (=version testing de debian) ni squeeze (=version stable de debian) ?
Pour bénéficier de la version la plus récente possible de calibre, et espérer que le serveur-calibre fonctionne correctement.
En effet :
sid ---> version 0.9.11 de calibre
wheezy ---> version 0.8.51 de calibre
squeeze ---> version 0.7.7 de calibre

Sur le NAS, créer, via "Panneau de configuration" de DSM, le nouveau répertoire partagé /volume1/debian, auquel on ne donne accès qu'à admin, en lecture/écriture.

Sur le PC, réduire l'arborescence chrootcible en une archive :

sudo tar -czf chrootcible.tar.gz chrootcible

On obtient un fichier chrootcible.tar.gz de 86 Mo environ.

Avec le "File Station" de DSM, transférer l'archive chrootcible.tar.gz dans le répertoire /volume1/debian.

Se connecter en ssh, en root (même mot de passe que pour admin) au NAS (il faut évidemment avoir activé le service ssh sur le NAS, dans le panneau de configuration DSM). Puis décompresser l'archive chrootcible.tar.gz, et suprrimer chrootcible.tar.gz (on n'en a plus besoin après décompression).
Ce qui donne :

[chris@christiane calibre_sur_NAS-synology]$ ssh root@synology
root@synology's password:


BusyBox v1.16.1 (2012-12-11 12:47:34 CST) built-in shell (ash)
Enter 'help' for a list of built-in commands.

synology> cd /volume1/debian
synology> tar -xzf chrootcible.tar.gz
synology> rm chrootcible.tar.gz
synology>

Vérifier qu'on est bien dans /volume1/debian :

synology> pwd
/volume1/debian

Ensuite, lancer la 2ème étape de l'installation du chroot :

synology> chroot chrootcible /debootstrap/debootstrap --second-stage
... plusieurs lignes de compte-rendu d'exécution, qui se terminent par : ...
I: Base system installed successfully.
synology>

Recopier le fichier resolv.conf dans le chroot :

synology> cp /etc/resolv.conf  /volume1/debian/chrootcible/etc/
synology>

Sur le NAS, il n'y a pas de fichier hostname :

synology> cat /etc/hostname
cat: can't open '/etc/hostname': No such file or directory
synology>

On en crée cependant un dans l'environnement chroot :

synology> echo synology > /volume1/debian/chrootcible/etc/hostname
synology> cat /volume1/debian/chrootcible/etc/hostname
synology
synology>

Montage de proc du chroot environnement :

synology> mount -o bind /proc /volume1/debian/chrootcible/proc
synology>

Maintenant, on peut enfin entrer dans le chroot.
On vérifie d'abord qu'on est bien dans /volume1/debian :

synology> pwd                          
/volume1/debian
synology>

puis on entre en chroot :

synology> chroot chrootcible/ /bin/bash
root@synology:/#

Remarquer le changement du prompt.

Pour l'instant, aucun dépôt n'est précisé :

root@synology:/# cat /etc/apt/sources.list
root@synology:/#

On ajoute le dépôt sid :

root@synology:/# echo "deb http://ftp.fr.debian.org/debian/ unstable main contrib non-free" >> /etc/apt/sources.list

puis :

root@synology:/# apt-get update
... plusieurs lignes de compte-rendu d'exécution ...  
Fetched 10.6 MB in 36s (288 kB/s)    
Reading package lists... Done
root@synology:/#

Puis :

root@synology:/# aptitude upgrade
The following packages will be upgraded:
[… … etc … …]
root@synology:/#

Puis :

root@synology:/# aptitude install locales
The following NEW packages will be installed:
[ … … etc … … ]
Generation complete.                                         
root@synology:/#

Puis (cocher les 3 fr_FR dans la liste interactive qui s'affiche) :

root@synology:/# dpkg-reconfigure locales
Generating locales (this might take a while)...
  fr_FR.ISO-8859-1... done
  fr_FR.UTF-8... done
  fr_FR.ISO-8859-15@euro... done
Generation complete.
root@synology:/#

Vérification que les locales fr sont maintenant bien installées :

root@synology:/# locale -a
C
C.UTF-8
POSIX
fr_FR
fr_FR.iso88591
fr_FR.iso885915@euro
fr_FR.utf8
fr_FR@euro
français
french
root@synology:/#

Pour définir la locale de l'utilisateur en cours (root), on le met dans le script de lancement de son shell :

root@synology:~# echo "export LANG=fr_FR.utf8" >> ~/.bashrc
root@synology:~# echo "export LC_ALL=fr_FR.utf8" >> ~/.bashrc
root@synology:~#

À la prochaine connexion, les locales seront correctes et il n'y aura plus de messages d'erreur.

Mettre le bon fuseau horaire (timezone) (sélectionner Europe, puis Paris, dans la liste interactive qui s'affiche) :

root@synology:~# dpkg-reconfigure tzdata
Current default time zone: 'Europe/Paris'
Local time is now:      Mon Jan  7 17:24:40 CET 2013.
Universal Time is now:  Mon Jan  7 16:24:40 UTC 2013.
root@synology:~#

Arriver dans son home (~) à la connexion :

root@synology:~# echo "cd $HOME" >> ~/.bashrc
root@synology:~#

On lance l'installation de calibre (la distribution gère les dépendances, via apt) :

root@synology:/# apt-get install calibre
Reading package lists... Done
Building dependency tree... Done
The following extra packages will be installed:
  ca-certificates calibre-bin cpp cpp-4.6 dbus file fontconfig fontconfig-config fonts-droid fonts-liberation gcc-4.6-base ghostscript gir1.2-glib-2.0 gsfonts hicolor-icon-theme imagemagick imagemagick-common iso-codes
...etc... ...
Suggested packages:
  cpp-doc gcc-4.6-locales dbus-x11 ghostscript-cups ghostscript-x hpijs imagemagick-doc autotrace cups-bsd lpr lprng curl enscript ffmpeg gimp gnuplot grads hp2xx html2ps libwmf-bin mplayer povray radiance sane-utils texlive-base-bin
...etc... ...
The following NEW packages will be installed:
  ca-certificates calibre calibre-bin cpp cpp-4.6 dbus file fontconfig fontconfig-config fonts-droid fonts-liberation gcc-4.6-base ghostscript gir1.2-glib-2.0 gsfonts hicolor-icon-theme imagemagick imagemagick-common iso-codes
...etc... ...
0 upgraded, 248 newly installed, 0 to remove and 0 not upgraded.
Need to get 128 MB of archives.
After this operation, 429 MB of additional disk space will be used.
Do you want to continue [Y/n]? Y

... Prendre patience ...

Lorsque c'est fini, on peut lancer les commandes-lignes de calibre, notamment le serveur (calibre-server).
Mais comme tout processus lancé en chroot ne peut atteindre aucun fichier en dehors de son arborescence (ici /volume1/debian/chrootcible), ce qui est une sécurité (et l'avantage du chroot) il est nécessaire d'installer les données de calibre (le fichier metadata.db + les répertoires contenant les livres) dans cette arborescence, par exemple dans :
/volume1/debian/chrootcible/home/calibre-data

Pour avoir calibre en français :

root@synology:/# nano /root/.config/calibre/global.py
root@synology:/#
et modifier la ligne language = None en language = 'fr'.

Pour gérer à distance ma bibliothèque Calibre sur le NAS à partir de calibre s'exécutant sur le PC/archlinux, j'ai du d'abord activer le partage NFS sur le NAS, et installer nfs-utils dans archlinux du PC.
Sur le NAS, j'ai du éditer /etc/exports, avec l'utilitaire "Config File Editor" :


/etc/exports sur le NAS :

/volume1    192.168.1.0/24(rw,sync,no_wdelay,root_squash,insecure_locks,fsid=0,anonuid=1024,anongid=100)

Le fsid=0 est primordial, sinon on a une erreur du style :

mount.nfs4: 127.0.0.1:/export failed, reason given by server: No such file or directory

Puis j'ai ajouté la ligne suivante dans /etc/fstab de l'archlinux du PC :

192.168.1.192:/  /media/NAS-synology  nfs4    rw      0       0

Ainsi. sur le répertoire /media/NAS-synology, je trouve toute l'arborescence /volume1 du synology, qui peut donc être vue depuis tout exlorateur de fichiers, comme dolphin ou nautilus.

Et dans Calibre, version graphique (GUI) tournant sur mon PC/archlinux, j'ai indiqué comme chemin de la bibliothèque :

/media/NAS-synology/debian/chrootcible/home/calibre-data

Ainsi, ma bibliothèque est visible en consultation et téléchargement de livres depuis tout mon réseau lan et wifi de la maison, sans qu'il y est besoin que mon PC/archlinux soit allumé, et je la gère (ajout de livres, modifications…) depuis mon PC/archlinux.

Lancement du serveur calibre, toujours dans le chroot :

root@synology:/# calibre-server --daemonize --with-library /home/calibre-data/
root@synology:/#

Le processus est bien lancé en arrière-plan :

root@synology:/# ps aux | grep calibre
root     14980 39.0 12.0 391440 61556 ?        Sl   17:27   0:07 /usr/bin/python2.7 /usr/bin/calibre-server --daemonize --with-library /home/calibre-data/
root     16315  0.0  0.1   1960   648 ?        S+   17:27   0:00 grep calibre
root@synology:/#

Une fois ce processus lancé, on peut quitter chroot :

root@synology:/# exit
exit
synology>

Noter à nouveau le changement du prompt.

Même après être sorti du chroot, ce processus tourne bien toujours en arrière-plan :

synology> ps
  PID USER       VSZ STAT COMMAND
    1 root      2976 S    init
    2 root         0 SW   [kthreadd]
    3 root         0 SW   [ksoftirqd/0]
    … etc …
14773 root     13792 S    /usr/syno/apache/bin/httpd -f /usr/syno/apache/conf/httpd.conf-sys
14980 root      382m S    /usr/bin/python2.7 /usr/bin/calibre-server --daemonize --with-library /home/calibre-data/
    … etc …
31131 root      8216 S    /usr/sbin/ntpd -p /var/run/ntpd.pid -g
synology>

Il suffit de taper l'adresse http.//192.168.1.192:8080 dans n'importe quel navigateur, pour accéder au catalogue calibre :

capture.jpeg

Pour tout logiciel compatible OPDS, comme FBreader ou ebookdroid sur Android, le catalogue à indiquer est :

http://192.168.1.192:8080/opds

Bien sûr, il faut remplacer 192.168.1.192 par l'adresse IP de votre NAS.

Après chaque redémarrage du NAS, pour relancer le serveur calibre, il faudra exécuter les commandes suivantes :

[chris@christiane calibre_sur_NAS-synology]$ ssh root@synology
root@synology's password:


BusyBox v1.16.1 (2012-12-11 12:47:34 CST) built-in shell (ash)
Enter 'help' for a list of built-in commands.

synology> cd /volume1/debian
synology> chroot chrootcible /bin/bash
root@synology:~# mount -t proc proc /proc
root@synology:~# calibre-server --daemonize --with-library /home/calibre-data/
root@synology:~#

Vérification optionnelle :

root@synology:/# ps aux | grep calibre
root     24816  9.8  8.9 375728 45696 ?        Sl   11:20   0:05 /usr/bin/python2.7 /usr/bin/calibre-server --daemonize --with-library /home/calibre-data/
root     28849  0.0  0.1   1960   648 ?        S+   11:21   0:00 grep calibre
root@synology:/#

On peut automatiser la chose dans un script sh :

Script /usr/local/bin/mon_calibre-server.sh, à rendre exécutable (chmod +x /usr/local/bin/mon_calibre-server.sh). Attention, on est toujours à l'intérieur du chroot :

#!/bin/bash
mount -t proc proc /proc
calibre-server --daemonize --max-cover 300x400 --password xxxxxxxxxxx --with-library /home/calibre-data/
sleep 8
ps aux | grep calibre-server

J'ai ajouté un mot de passe d'accès au catalogue (l'username est par défaut "calibre", modifiable avec le paramètre --username). Malheureusement, la protection par mot de passe n'est pas compatible avec toutes les applis clientes (ebookdroid par exemple, sous android). Personnellement, j'ai renoncé à cette protection.

J'ai également réduit la taille maximale d'affichage des couvertures, qui était trop grande à mon goût, sur une tablette.

À chaque redémarrage du NAS, il suffira d'invoquer, après être entré dans le chroot :

root@synology:/# mon_calibre-server.sh

Sortie du chroot :

root@synology:/# exit
exit
synology>

2ème vérification optionnelle :

synology> ps | grep calibre
  926 root      368m S    /usr/bin/python2.7 /usr/bin/calibre-server --daemonize --max-cover 300x400 --password xxxxxxxx --with-library /home/calibre-data/
 6628 root      2980 S    grep calibre
synology>

Sortie de la connexion ssh au NAS :

synology> exit
Connection to synology closed.
[chris@christiane calibre_sur_NAS-synology]$

Enjoy…!

Modifié par zouh
Lien vers le commentaire
Partager sur d’autres sites

OK, merci, je n'avais pas vu le SPK, au temps pour moi. Je viens de l'installer:

Mais ce SPK ne répond pas à mes besoins : c'est une debian-squeeze, et j'ai besoin d'une debian-sid, pour bénéficier d'une version suffisamment récente de calibre.

D'autre part, j'ai besoin d'installer mes données calibre sous la racine du debian-chroot (mécanisme du chroot oblige…), et je ne trouve pas très pratique de devoir les installer sous :

/volume1/@appstore/debian-chroot/var/chroottarget/

Avec mon chroot installé manuellement dans /volume1/debian, j'ai pu installer mes données calibre dans :

/volume1/debian/chrootcible/home/calibre-data

ce qui me permet de voir ce répertoire via l'interface graphique de File Station, chose impossible pour tout ce qui est en-dessous de /volume1/@appstore/ (mais on pourrait contourner cet inconvénient au moyen d'un lien symbolique).

Oui, j'avais vu également l'alternative BicBucStriim, comme celle de COPS (basée aussi sur un serveur PHP), que j'avais installée et utilisée avec succès. Mais la compatibilité OPDS n'était pas parfaite (ne fonctionnait pas avec toutes les appls dites compatibles OPDS).

Avec le serveur natif calibre, je n'ai rencontré aucune erreur de fonctionnement avec les applis clientes, contrairement à COPS (je n'ai pas encore essayé BicBucStriim).

À propos, j'ai cherché vainement le SPK BicBucStriim, censé être dans le dépôt synocommunity ; qu'ai-je loupé ? J'aimerais bien l'essayer. Merci ! :)

Modifié par zouh
Lien vers le commentaire
Partager sur d’autres sites

  • 2 mois après...

L'alternative BicBucStriim est sympatique aussi : http://projekte.textmulch.de/bicbucstriim/

Disposant d'un peu de temps libre cette semaine, je viens de l'installer par curiosité.

je pense avoir suivi scrupuleusement le README

Suis bloqué à l'install avec un message "error loading page" :(

***EDIT***

Au temps pour moi, avais oublié de mettre le répertoire calibre dans PHP open_basedir

Modifié par CoolRaoul
Lien vers le commentaire
Partager sur d’autres sites

  • 8 mois après...
  • 2 semaines après...

Pour toute la partie chroot il y a un SPK : http://www.synocommunity.com/packages#debian-chroot

L'alternative BicBucStriim est sympatique aussi : http://projekte.textmulch.de/bicbucstriim/

Bonjour,

Je viens d'installer le package Debian-chroot. Que dois-je faire ensuite pour installer Calibre car la commande "apt-get update" ne fait rien.

Merci par avance

Patrick

Lien vers le commentaire
Partager sur d’autres sites

  • 1 mois après...

Désolée pour cette réponse tardive.

En fait, je ne me sers pas beaucoup du serveur calibre sur mon NAS. L'alternative COPS, pour laquelle un package SPK existe, offre les mêmes services, voire mieux, que le serveur calibre.

Si vous voulez malgré tout installer le serveur calibre sur votre synology, normalement, en suivant pas à pas la procédure, ça devrait fonctionner. Notez bien que je n'ai pas utilisé le package Debian-chroot, mais que j'ai installé mon propre chroot manuellement, les raisons sont expliquées

Lien vers le commentaire
Partager sur d’autres sites

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.