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 10/11/2015 12:16

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 7.0 Wheezy

Ce guide est testé avec ces versions du client Seafile:

  • 4.3.2

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 python2.7 python2.7-simplejson sudo ca-certificates

    Mise en place du logiciel

    Détectez l'architecture du système:

    arch="$(command dpkg --print-architecture)"
    if [ "${arch}" = "amd64" ]; then
      arch="x86-64"
    fi

    Installez le logiciel:

    command wget 'https://raw.github.com/biapy/howto.biapy.com/master/various/sf-downloader' \
    --quiet --no-check-certificate --output-document='/tmp/sf-downloader'
    source="$(${cmdProxy} bash '/tmp/sf-downloader' --strip-components=1 --output-directory="${installPath}" \
    --generic="http://seafile.com/en/download/" \
    --tgz 'seafile' "seafile-cli_VERSION_${arch}.tar.gz")"

    Mettez en place l'exécutable:

    ${cmdProxy} ln -s "${installPath}/seaf-cli" '/usr/local/bin/seaf-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

    Déterminez le chemin d'installation:

    installPath="/usr/local/share/seafile-cli"

    Détectez le proxy de commande (command ou sudo):

    cmdProxy='command'
    command type -f 'sudo' >'/dev/null' && cmdProxy='sudo'

    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

    Détectez l'architecture du système:

    arch="$(command dpkg --print-architecture)"
    if [ "${arch}" = "amd64" ]; then
      arch="x86-64"
    fi

    Installez le logiciel:

    command wget 'https://raw.github.com/biapy/howto.biapy.com/master/various/sf-downloader' \
    --quiet --no-check-certificate --output-document='/tmp/sf-downloader'
    source="$(command bash '/tmp/sf-downloader' --strip-components=1 --output-directory="${installPath}" \
    --generic="http://seafile.com/en/download/" \
    --tgz 'seafile' "seafile-cli_VERSION_${arch}.tar.gz")"

    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éterminez le chemin d'installation:

    installPath="/usr/local/share/seafile-cli"

    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} rm -r '/usr/local/bin/seaf-cli' "${installPath}"

    Le client Seafile n'est plus présent sur le système. Vous pouvez, si vous le souhaitez, supprimer les dossiers synchronisés.

    Remerciements

    MaxiReglisse a écrit :
    05/02/2015 12:36
    un grand merci pour ce tutoriel !

    quelques remarques, peut-être dûes au fait que j'ai utilisé une version plus récente du client (4.0.4) :

    le répertoire .config n'est pas créé automatique, et donc la commande suivante échoue.
    ${cmdProxy} "/etc/init.d/seaf-cli-${seafcliUser}" init -d "${seafcliUserPath}/.config"

    par ailleurs, .config n'est pas un nom de répertoire judicieux, et d'ailleurs, sur https://seacloud.cc/group/3/wiki/seafile-cli-manual/, il est proposé de nommer ce répertoire .seafile-client, ce qui a plus de sens. la commande devient donc :

    ${cmdProxy} "mkdir ${seafcliUserPath}/.seafile-client"
    ${cmdProxy} "/etc/init.d/seaf-cli-${seafcliUser}" init -d "${seafcliUserPath}/.seafile-client"

    Ensuite, le répertoire .ccnet ne dispose pas du fichier seafile.ini, comme si l'init ne l'avait pas créé. je rajoute donc la commande suivante :

    ${cmdProxy} "echo \"${seafcliUserPath}/.seafile-client/seafile-data\" > ${seafcliUserPath}/.ccnet/seafile.ini"

    Que dire encore ?
    il ne faut pas utiliser ce script en étant root, car le client seafile ne peut pas créé de répertoire dans /root/seafile... ou alors il faut bricoler. mais avec un user lambda, ça marche nickel !

    en espérant que ce retour servira.

    Ernest.
    Pierre-Yves Landuré a écrit :
    10/11/2015 10:45
    Merci pour ces retours. Je viens de mettre à jour le guide pour prendre en compte les nouvelles versions du client Seafile.
    Ajouter un commentaire

    Vous pouvez ajouter un commentaire en complétant le formulaire ci-dessous. Le format doit être plain text. Les url et les courriels sont transformés en liens cliquables. Les commentaires sont modérés.