使用OS
# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)
インストール元は epel
# yum --enablerepo=epel list |grep rdiff-backup
rdiff-backup.x86_64 1.2.8-13.el7 @epel
rdiff-backup コマンドのインストール先は/usr/bin 以下
# /usr/bin/rdiff-backup --version
rdiff-backup 1.2.8
このサーバから複数サーバのバックアップを行っています。こんな感じ。
# rdiff-backup 192.168.1.200::/home/ /home/backup/192.168.1.200/home/
CentOS7 1.2.8 と 2.0.5 が混在
Almalinux 8 2.0.5 と 2.2.2 が混在
epelのリポジトリにあるバージョンが変わっていっている(どのタイミングかは不明、pythonのバージョン依存があるのでCentOS7に2.2系はepelからは入らないと思われる)
CentOS7 のバージョン違い
# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
# rdiff-backup --version
rdiff-backup 2.0.5
Almalinux 8 の手持ち
# cat /etc/redhat-release
AlmaLinux release 8.6 (Sky Tiger)
# rdiff-backup --version
rdiff-backup 2.0.5
# cat /etc/redhat-release
AlmaLinux release 8.7 (Stone Smilodon)
# rdiff-backup --version
rdiff-backup 2.2.2
rdiff-backup公式サイト
"GitHub - rdiff-backup/rdiff-backup: Reverse differential backup tool, over a network or locally.":https://github.com/rdiff-backup/rdiff-backup
rdiff-backup コマンドはリモートバックアップが可能です
バージョン間の互換性がないため、バックアップする側とバックアップされる側が同一のバージョンを使う必要があります
Almalinux 8 rdiff-backup 2.0.5を使い始めたので公式サイトを参考に
"rdiff-backup/migration.adoc at master · rdiff-backup/rdiff-backup · GitHub":https://github.com/rdiff-backup/rdiff-backup/blob/master/docs/migration.adoc
rdiff-backup 2.0.5のインストールをした
CentOS7でyumからインストールしたpython3(pythonのバージョンは3.6)からpythonの仮想環境(venv)を作成。仮想環境のpipからrdiff-backupをインストールする
python3はCentOS7のもの
# yum list |grep python3
python3.x86_64 3.6.8-18.el7 @updates
仮想環境用にディレクトリ作成
# mkdir /usr/local/rdiff-backup-2.0
仮想環境作成
# python3 -m venv /usr/local/rdiff-backup-2.0
# cd /usr/local/rdiff-backup-2.0
pyvenv.cfg ↑で生成されたまま特に修正はしていない
# cat /usr/local/rdiff-backup-2.0/pyvenv.cfg
home = /usr/bin
include-system-site-packages = false
version = 3.6.8
pip search は使えなくなったので、サイトでrdiff-backupのバージョンを確認
"rdiff-backup · PyPI":https://pypi.org/project/rdiff-backup/2.0.5/#files
※CP36(python36) のwheelファイルがあればpython36で利用可能。
インストール
/usr/local/rdiff-backup-2.0/bin/pip install rdiff-backup==2.0.5
# ./bin/pip list
pip (9.0.3)
rdiff-backup (2.0.5)
setuptools (39.2.0)
ここにインストールされるのでこのコマンドを使ってrdiff-backup2.0.5のリモートサーバのバックアップができる
# /usr/local/rdiff-backup-2.0/bin/rdiff-backup --version
rdiff-backup 2.0.5
とここまでがAlmalinux 8を使い始めたころの話。その後しばらく運用…
このまえAlmalinux 8をアップデートしたらrdiff-backup 2.2.2になってしまった…
rdiff-backup 2.2.2をインストールする。
pythonコマンドはpyenvで使いたいバージョンをインストールする。それ以降は↑と同じ。
「Python 3.7 or higher」とのことなのでpython39をインストールする
# mkdir -p /usr/local/opt
# git clone https://github.com/pyenv/pyenv.git /usr/local/opt/pyenv
# cd /usr/local/opt/pyenv
# git log --oneline --decorate --tags
# git checkout v2.3.11
build に必要なパッケージをインストール
# yum install make gcc zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel openssl-devel tk-devel libffi-devel xz-devel libuuid-devel gdbm-devel libnsl2-devel
# ./bin/pyenv install 3.9.16
# /root/.pyenv/versions/3.9.16/bin/python3.9 --version
Python 3.9.16
export しないと仮想環境は使えなそうだが、直接コマンドを実行すれば問題ない
rdiff-backup-2.2ディレクトリ作成、仮想環境を作る
# mkdir /usr/local/rdiff-backup-2.2
# /root/.pyenv/versions/3.9.16/bin/python3.9 -m venv /usr/local/rdiff-backup-2.2/
# cd /usr/local/rdiff-backup-2.2
pyvenv.cfg ↑で生成されたまま特に修正はしていないß
# cat pyvenv.cfg
home = /root/.pyenv/versions/3.9.16/bin
include-system-site-packages = false
version = 3.9.16
pipでインストール
# ./bin/pip install rdiff-backup
# ./bin/pip list
Package Version
------------ -------
pip 22.3.1
PyYAML 6.0
rdiff-backup 2.2.2
setuptools 58.1.0
# /usr/local/rdiff-backup-2.2/bin/rdiff-backup --version
rdiff-backup 2.2.2
これを使う。コマンドを使うとinfoされるがコマンド体系が変わるそうなので注意。