AlmaLinux8.7 で Submin を使う ~3.Subversion/Subminの導入~
CentOS6で利用していたSubversion(なんと2014/11構築!!)をAlmaLinux8.7に移すことにしました.
Subversionの管理にSubminを使います.
SubminはPython2を使用するため,AlmaLinux9ではなく,Python2が使える8.7にしました.
実はSubminとSubversionをつなぐモジュールが簡単に手に入らず,Subversionのコンパイルからやっています.
いろんな方の記事を参考にして,本件向けに手順をまとめなおしています.
感謝です!
最終回です.
いよいよSubversionをコンパイルしてモジュールを入手して環境を構築します.
[目次]
- 作業方針
- 1.Python2.xのインストール
- 2.SQLiteのインストール
- 3.Subversion のソースを入手する
- 4.SWIG のソースを入手する
- 5.SWIGをインストールする
- 6.Subversionをインストールする
- 7.Python連携モジュールのインストール準備
- 8.Python連携モジュールのインストール
- 9.ApacheとSQLiteの連携モジュールのインストール
- 10.Submin のインストール
※ 現在の仕事上,Linuxはまれに触れる程度ですので盛大な勘違いや思い込みがあるかも?
※ その時は教えてくださいね.
作業方針
- 本構築前のお試しなのでWindows10/11上でHyper-Vにて構築します.
- 「su -」は使わず,「sudo」で進めます.
1.Python2.xのインストール
※ Subversion 1.10.2 および Submin はPyrhon2で動作します.
※ swig-pyの作成にPython.h が必要なので, python2-devel もインストールします.
#Python2のインストール sudo dnf install python2 python2-devel -y #シンボリックリンクを作成 sudo ln -s python2.7 /usr/bin/python #動作確認 python -V
2.SQLiteのインストール
※ SubminはSQLiteのデータベースを用いて,SVNのユーザやリポジトリの管理をします.
※ Subversionのコンパイルにsqliteのライブラリ が必要なので, sqlite-devel もインストールします.
※ Subversion はいくつかの内部データベースを管理するために SQLite を使用します.
sudo dnf install sqlite sqlite-devel -y
⇒ 3.26.0 がインストールされる
3.Subversion のソースを入手する
※ 下記の Source Download > 文中の archive download site に過去のソースがあります.
今回は dnf info subversion
で表示されたバージョン 1.10.2 に合わせました.
curl -OL https://archive.apache.org/dist/subversion/subversion-1.10.2.tar.gz ↲ tar -zxvf subversion-1.10.2.tar.gz ↲
4.SWIG のソースを入手する
※ swig-py(SubversionからPythonプログラムを呼び出すためのモジュール)を作成するために必要です
※ 本編はswig-pyを入手するために苦労した手順なのです.
※ http://www.swig.org/より過去のソースを探す(Download > Download area > All releases > swig)
※ Subversion 1.10.2 では,SWIGは1.3.24以降となっています.
(Subversion のソース解凍後にできる,フォルダ直下の subversion/bindings/swig/INSTALL より )
※ SWIG 4.x はPython3対応となります.Python2を使う今回の構成では使用できません.
curl -L https://sourceforge.net/projects/swig/files/swig/swig-1.3.40/swig-1.3.40.tar.gz > swig-1.3.40.tar.gz tar -zxvf swig-1.3.40.tar.gz
5.SWIGをインストールする
cd ~/swig-1.3.40 ./configure --with-python=/usr/bin/python2.7 make sudo make install
6.Subversionをインストールする
#作業のためにSubversionのソースツリーのトップへ移動します. cd ~/subversion-1.10.2 #この後の作業には,APR,APRUTIRITY のライブラリが必要... sudo dnf install apr-devel apr-util-devel #Subversionのコンパイルとインストールをします. ./configure --with-apr=/usr/bin/ --with-apr-util=/usr/bin/ PYTHON=/usr/bin/python2.7 --with-lz4=internal --with-utf8proc=internal make (まぁまぁ時間かかる) sudo make install
※mod_dav_svn は dnf で手に入るのであとで.
7.Python連携モジュールのインストール準備
#上記と同じ「~/subversion-1.10.2」 で実行します. make swig-py make check-swig-py ⇒ けっこう時間かかる...(今回の例では12分) (結果) Ran 127 tests in 729.084s OK
8.Python連携モジュールのインストール
参考:Masanoriのプログラミング日誌++: さくらのVPSへSubversion1.7.2+Submin2.0.2を導入
sudo make install-swig-py #Python2.7のライブラリディレクトリ上へシンボリックリンクを張ります. sudo ln -s /usr/local/lib/svn-python /usr/lib/python2.7/site-packages/svn-python sudo ln -s /usr/local/lib/svn-python/svn /usr/lib/python2.7/site-packages/svn sudo ln -s /usr/local/lib/svn-python/libsvn /usr/lib/python2.7/site-packages/libsvn
9.ApacheとSQLiteの連携モジュールのインストール
sudo dnf install mod_dav_svn -y sudo dnf install apr-util-sqlite -y
10.Submin のインストール
git clone https://github.com/mjholtkamp/submin.git ~/.submin cd ~/.submin sudo python setup.py install --record install-files.txt #Apacheの設定(シンボリックリンクの作成) sudo ln -s /var/lib/submin/conf/apache-2.4-webui-cgi.conf /etc/httpd/conf.d/z001_submin.conf sudo ln -s /var/lib/submin/conf/apache-2.4-svn.conf /etc/httpd/conf.d/z002_submin-svn.conf #Submin環境の初期設定 sudo submin2-admin /var/lib/submin initenv your@email.address (※/var/lib/submin は変更可能.このフォルダ配下に環境が作られる.) (※conf/submin.db が SQLiteのデータ) (※conf/authz は ユーザ・グループ・アクセス権の情報らしい) (※conf/mailer.py.conf はリポジトリ変更時のメール自動送信の設定らしい) #下記内容で応答する Which features do you want to enable? [svn, git, apache, nginx]> svn, apache Path to the repository? [svn]> (あたらしく作るのでそのまま エンターキー ) ⇒ /var/lib/submin に svnディレクトリ が作られて,そこが親リポジトリになる Hostname? [localhost.localdomain]> サーバのIPアドレス:80 (例.172.27.32.87:80 ↲ ⇒ メールのリンク等に使われる) HTTP base? [/]> (そのまま エンターキー ⇒ url は ~/submin/ となる) Email from envelope? [Submin <root@localhost.localdomain>]> Submin <Subversion管理者のメールアドレス> (メール送信元の記述になる.これは一例) ⇒ メールが届けばOK #gitの使用を停止<br> sudo submin2-admin /var/lib/submin config set vcs_plugins svn #状態の確認 sudo submin2-admin /var/lib/submin config get (結果) auth_type sql base_url_git /git base_url_submin /submin base_url_svn /svn base_url_trac /trac commit_email_from Submin <Subversion管理者のメールアドレス> database_version 11 dir_bin static/bin enabled_trac no env_path /bin:/usr/bin:/usr/local/bin:/opt/local/bin git_dir git http_vhost 172.27.32.87:80 session_salt Pi8e1wpO/GLAgyQS smtp_from Submin <Subversion管理者のメールアドレス> svn_authz_file conf/authz svn_dir svn trac_dir trac vcs_plugins svn #httpdの再起動 sudo systemctl restart httpd
Subversion管理者のメールアドレスにメールが届いているはずなのでそのリンクをクリックして,パスワードの変更をしてください.
以降は,「 http://172.27.32.87/submin 」で Submin の画面が表示されます.
これで,GUIを用いた,リポジトリ/ユーザ/グループの管理ができるようになりました.
以上で作業終了です.