Installer le client Seafile sur Debian
Seafile dispose d'un client en ligne de commande pour GNU/Linux. Ce guide facilite son installation sur Debian.
Ce guide est testé sur:
- Debian 9.0 Stretch
Ce guide est testé avec ces versions du client Seafile:
- 6.2.5
Prérequis
Ce guide recommande:
- un serveur Seafile, comme décrit par Installer Seafile sur Debian.
Paramètres
Détectez le proxy de commande (command ou sudo):
cmdProxy='command'
command type -f 'sudo' >'/dev/null' && cmdProxy='sudo'
Renseignez le nom de l'utilisateur du client Seafile:
seafcliUser="www-data"
Installation
Déterminez le chemin d'installation:
installPath="/usr/local/share/seafile-cli"
Créez le chemin si nécessaire:
${cmdProxy} mkdir -p "${installPath}"
Préparation de l'environnement
Installez les logiciels nécessaires:
${cmdProxy} apt-get install sudo ca-certificates lsb-release
Mise en place des dépôts
Récupérez le nom de la distribution:
debianVersion="$(${cmdProxy} lsb_release -cs)"
Ajoutez les dépôts Seafile à la configuration Apt:
${cmdProxy} tee "/etc/apt/sources.list.d/seafile.list" \
<<< "# Seafile for ${debianVersion}deb http://deb.seadrive.org ${debianVersion} main
"
Installez la clef de signature du dépôt:
${cmdProxy} apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-keys '8756C4F765C9AC3CB6B85D62379CE192D401AB61'
Mettez à jour la liste des paquets disponibles:
${cmdProxy} apt-get update
Mise en place du logiciel
Installez le logiciel:
${cmdProxy} apt-get install seafile-cli
Créez un lien symbolique vers les certificats racines pour l'accès HTTPS:
${cmdProxy} mkdir -p '/etc/pki/tls/certs'
${cmdProxy} ln -s '/etc/ssl/certs/ca-certificates.crt' '/etc/pki/tls/certs/ca-bundle.crt'
Initialisation
Mettez en place le script init.d du client pour l'utilisateur:
command wget --quiet --no-check-certificate --output-document=- \
'https://raw.github.com/biapy/howto.biapy.com/master/seafile/seaf-cli-init.d' \
| command sed -e "s/%USER%/${seafcliUser}/g" \
| ${cmdProxy} tee "/etc/init.d/seaf-cli-${seafcliUser}"
${cmdProxy} chmod +x "/etc/init.d/seaf-cli-${seafcliUser}"
Détectez le dossier personnel de l'utilisateur:
seafcliUserPath="$(command getent 'passwd' "${seafcliUser}" \
| command cut --delimiter=':' --fields=6)"
Assurez-vous que l'utilisateur dispose des droits d'écriture sur son dossier personnel:
${cmdProxy} chown "${seafcliUser}" "${seafcliUserPath}"
Créez le dossier .config pour l'utilisateur:
${cmdProxy} mkdir -p "${seafcliUserPath}/.config"
${cmdProxy} chown "${seafcliUser}" "${seafcliUserPath}/.config"
Initialisez le client pour l'utilisateur choisi:
${cmdProxy} "/etc/init.d/seaf-cli-${seafcliUser}" init -d "${seafcliUserPath}/.config"
Ajoutez le démon au démarrage du système:
${cmdProxy} insserv "seaf-cli-${seafcliUser}"
Lancez le démon:
${cmdProxy} service "seaf-cli-${seafcliUser}" 'start'
Configuration
Mise en place d'une bibliothèque
Renseignez l'URL de la bibliothèque à ajouter sur le serveur Seafile (copié/collée depuis le navigateur):
libraryUrl="https://seafile.domain.com/repo/fa9df3e8c-2de3-5f82-9ca3-ad53678033b8/"
Renseignez l'emplacement ou sera synchronisée la bibliothèque:
libraryPath="${HOME}/seafile/"
Déterminez l'identifiant de la bibliothèque et l'URL du serveur:
seafileServer="$(command echo "${libraryUrl}" \
| command sed -e 's|\(http[s]*://[^/]*/\).*$|\1|')"
libraryId="$(command echo "${libraryUrl}" \
| command sed -e 's|^.*/repo/||' -e 's|^.*/lib/||' -e 's|/$||g')"
Assurez-vous de l'existence du dossier cible:
${cmdProxy} mkdir -p "${libraryPath}"
${cmdProxy} chown -R "${seafcliUser}" "${libraryPath}"
Installez la bibliothèque:
${cmdProxy} "/etc/init.d/seaf-cli-${seafcliUser}" download \
-l "${libraryId}" \
-s "${seafileServer}" \
-d "${libraryPath}"
Remarque: Alternativement, synchronisez la bibliothèque avec un dossier existant avec:
# ${cmdProxy} "/etc/init.d/seaf-cli-${seafcliUser}" sync \
# -l "${libraryId}" \
# -s "${seafileServer}" \
# -d "${libraryPath}"
Mise à jour
Arrêtez les clients Seafile:
command find '/etc/init.d' -type f -name 'seaf-cli-*' \
| while read initScript; do
initName="$(command basename "${initScript}")"
${cmdProxy} service "${initName}" 'stop'
done
Mettez à jour les dépôts:
${cmdProxy} apt-get update
Mettez à jour le logiciel
${cmdProxy} apt-get upgrade
Démarrez les clients Seafile:
command find '/etc/init.d' -type f -name 'seaf-cli-*' \
| while read initScript; do
initName="$(command basename "${initScript}")"
${cmdProxy} service "${initName}" 'start'
done
Désinstallation
Détectez le proxy de commande (command ou sudo):
cmdProxy='command'
command type -f 'sudo' >'/dev/null' && cmdProxy='sudo'
Arrêtez les clients Seafile et désinstallez les scripts init.d:
command find '/etc/init.d' -type f -name 'seaf-cli-*' \
| while read initScript; do
initName="$(command basename "${initScript}")"
${cmdProxy} service "${initName}" 'stop'
${cmdProxy} rm "${initScript}"
${cmdProxy} update-rc.d "${initName}" 'remove'
done
Supprimez le logiciel:
${cmdProxy} apt-get autoremove seafile-cli
Le client Seafile n'est plus présent sur le système. Vous pouvez, si vous le souhaitez, supprimer les dossiers synchronisés.
Remerciements
- Merci aux développeurs de Seafile (en).