5 votes

Le système utilise l'ancienne version de rSync au lieu de la nouvelle.

J'ai un ordinateur Mac et je voudrais envoyer des sauvegardes vers un NAS Synology.

Apple a préchargé rSync 2.6.9 avec son système d'exploitation.

J'ai installé rSync 3.1.3 en utilisant HomeBrew car Synology Active Backup nécessite au moins la version 3.0. HomeBrew a installé rSync dans /usr/local/bin/rsync.

Le problème est que lorsque je me connecte à l'ordinateur Mac en utilisant rSync, le Mac utilise la version 2.6.9 au lieu de la nouvelle version que j'ai installée. Comment puis-je faire en sorte qu'il utilise la nouvelle version au lieu de l'ancienne ?

Je sais qu'il faut modifier le PATH de l'utilisateur local pour mettre /usr/local/bin/rsync avant /usr/bin/rsync. Cela fonctionne lorsque je suis connecté à l'aide du terminal ou de SSH. Cependant, lorsque je me connecte à l'aide de Synology, il invoque toujours la version 2.6.9, ce qui le rend inutilisable.

Y a-t-il quelque chose là-dedans qui peut amener le système à utiliser 3.1.3 dans le /usr/local/bin/rsync au lieu de l'original qui est fourni avec l'ordinateur ?

Merci d'avance.

4voto

Jose Chavez Points 645

La réponse dépend de la façon dont vous avez configuré ActiveBackup, car vous pouvez l'exécuter de trois façons différentes :

1) Rsync en mode shell via SSH

2) Mode module Rsync (directement)

3) Mode module Rsync via SSH

En utilisant le mode 1, ActiveBackup se connectera au Mac et lancera rsync lui-même. Cela ne passe pas du tout par launchd. Je vois qu'on vous a conseillé d'utiliser "--rsync-path", mais ce n'est pas une option pour vous, simplement parce qu'ActiveBackup ne vous permet pas de définir ce paramètre.

Ce que vous devez faire, c'est vous assurer que lorsqu'ActiveBackup lance rsync sur le serveur distant, il lancera la bonne version - SANS possibilité de changer la commande qu'ActiveBackup envoie. Il y a deux façons de faire cela, selon que votre version d'ActiveBackup est celle qui émet la commande "rsync" ou celle qui émet la commande "/usr/bin/rsync".

Si c'est le premier (essayez d'abord), modifiez le fichier /private/etc/paths et assurez-vous que la ligne "/usr/local/bin" précède la ligne "/usr/bin".

S'il s'agit de la deuxième, suivez les étapes suivantes :

  1. Redémarrer le Mac en mode récupération

  2. Ouvrez le Terminal et désactivez SIP : "csrutil disable".

  3. Redémarrez et ouvrez le Terminal

  4. Oubliez le vieux rsync : "mv /usr/bin/rsync /usr/bin/rsync.orig"

  5. Lien dans le nouveau rsync : "ln -s /usr/local/bin/rsync /usr/bin/rsync"

Vous voudrez tester cela avec ActiveBackup, puis redémarrer en mode récupération pour activer à nouveau SIP avec "csrutil enable".

Notez qu'une mise à jour ultérieure de MacOS pourrait remplacer rsync. Si cela se produit, répétez simplement le processus. Notez que comme Apple n'a pas mis à jour rsync depuis des années, il est peu probable que cela se produise.

Si vous utilisez le mode 2, ActiveBackup communique directement avec le démon rsync, et ne lance pas la commande rsync elle-même sur le Mac. Dans ce cas, vous ne pouvez pas utiliser le conseil d'utiliser "--rsync-path", car il ne s'applique pas du tout ici. La façon de résoudre ce problème dépend de la façon dont vous avez effectivement lancé le démon rsync. Comme vous n'avez rien détaillé sur son démarrage, je suppose que cela signifie que vous ne l'avez pas réellement démarré.

Cependant si vous avez suivi un guide pour activer rsyncd - vous l'avez probablement fait en ajoutant un launchd "LaunchDaemon". Dans ce cas, vous devrez modifier votre fichier launch daemon et trouver la clé "Program" et changer l'élément de chaîne correspondant en :

/usr/local/bin/rsync

Si vous utilisez le mode 3, vous voudrez suivre le guide du mode 1 car les étapes nécessaires sont les mêmes.

0voto

v01pe Points 101

J'ai eu exactement le même problème, mais je ne voulais pas changer la version de rsync pour tout le monde sur le serveur osx (je suis face au scénario 3 tel que @jksoegaard l'a décrit). J'ai réussi à simplement changer le PATH pour le fichier ssh session qui rsync en changeant le shell de connexion de l'utilisateur de /bin/bash à un script (que seul mon utilisateur peut lire et modifier) contenant :

#!/bin/bash
export PATH="/usr/local/bin:$PATH"
/bin/bash "$@"

En fait, cela précède /usr/local/bin à la PATH et passe ensuite tous les arguments à bash. Utilisation de ~/.bashrc , ~/.bash_profile etc. n'ont pas fonctionné pour moi pour une raison quelconque.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X