1
0

CentOS 7 で複数バージョンのrdiff-backup を使う

Posted at

使用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されるがコマンド体系が変わるそうなので注意。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0