Vous êtes ici : Accueil / Debian GNU/Linux / Système / Logiciels / Installer le client Seafile sur Debian

Installer le client Seafile sur Debian

Par Pierre-Yves Landuré Dernière modification 15/09/2018 09:20

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:

    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