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を用いた,リポジトリ/ユーザ/グループの管理ができるようになりました.
以上で作業終了です.
AlmaLinux8.7 で Submin を使う ~2.OSの準備②~
CentOS6で利用していたSubversion(なんと2014/11構築!!)をAlmaLinux8.7に移すことにしました.
Subversionの管理にSubminを使います.
SubminはPython2を使用するため,AlmaLinux9ではなく,Python2が使える8.7にしました.
実はSubminとSubversionをつなぐモジュールが簡単に手に入らず,Subversionのコンパイルからやっています.
いろんな方の記事を参考にして,本件向けに手順をまとめなおしています.
感謝です!
今回は準備編の残りです.
AlmaLinux にメール・Web・FTPのそれぞれのサーバを設定をしました.
[目次]
※現在の仕事上,Linuxはまれに触れる程度ですので盛大な勘違いや思い込みがあるかも?
※その時は教えてくださいね.
作業方針
- 本構築前のお試しなのでWindows10/11上でHyper-Vにて構築します.
- 「su -」は使わず,「sudo」で進めます.
メールサーバ(Postfix)の導入
参考:メールサーバー構築(Postfix+Dovecot)(AlmaLinux) - すだちWiki
1)Postfixのインストール
sudo dnf install postfix -y
2)Cyrusをインストール
※SASL(Simple Authentication and Security Layer)のパッケージ
※PostfixでSMTP認証をつかえるようにするために使用.
sudo dnf install cyrus-sasl cyrus-sasl-md5 cyrus-sasl-plain -y
3)Postfixの設定
①.イントラ向けの例
※既にあるメールサーバへ連携する手順です.
※実際はそれぞれの管理者に確認を.
mail.cfの編集
sudo vi /etc/postfix/main.cf
relayhost のコメントアウトしてある所へ下記を記入
(メモ:vi画面で/relayhostと入力すると検索.nと入力で次を検索できます.)
relayhost = メールサーバー名:ポート番号
末尾に下記を追加
(メモ:vi画面で9999Gとかすると一気に末尾へ.oと入力でカーソルの下に入力行を追加できるモードに.)
smtp_sasl_auth_enable = yes<br> smtp_sasl_password_maps = hash:/etc/postfix/mailsvinfo #メモ:↑の「mailsvinfo」は次の項でviで作成するファイル名と同じなら何でも可 smtp_sasl_security_options = noanonymous<br> smtp_sasl_mechanism_filter = CRAM-MD5,LOGIN,PLAIN
smtp_sasl_password_maps の編集
sudo vi /etc/postfix/mailsvinfo
リレー先サーバのアドレスと,認証で使用するユーザ名とパスワードを書き込みます.
メールサーバー名:ポート番号 ユーザ名:パスワード
コマンドラインに戻って下記を実行.
sudo chmod 640 /etc/postfix/mailsvinfo sudo postmap /etc/postfix/mailsvinfo
/etc/postfix/メールサーバー名.db ができていればOK
②.Gmail連携の例はこちらを参考に
4)起動設定
自動起動の設定と即時起動
–now オプションをつけて「 enable (自動起動)」と「 start (起動)」を同時に実行.
sudo systemctl enable --now postfix
※メモ:状態の確認:systemctl status postfix
※メモ:Postfixの起動:sudo systemctl start postfix
※メモ:Postfixの停止:sudo systemctl stop postfix
※メモ:Postfixの再起動:sudo systemctl restart postfix
※メモ:Postfixを自動起動に設定:sudo systemctl enable postfix
5)動作確認
mailコマンドのインストール
sudo dnf install mailx -y
送信テスト
echo 'メール本文' | sudo mail -s 'メールタイトル' 送信先メールアドレス
下記状態なら完了
・メールが届いた.
・sudo cat /var/log/maillog
で確認すると エラーが出ていない
(status=sentになっている)
Webサーバ(Apache)の導入
1)Apacheのインストール
※メモ:httpd-devel は後のコンパイル作業等で必要になります.
※メモ:Webサーバを使うだけなら httpd だけでOK.
sudo dnf install httpd httpd-devel -y
2)自動起動の設定と即時起動
–now オプションをつけて「 enable (自動起動)」と「 start (起動)」を同時に実行.
sudo systemctl enable --now httpd
3)firewall設定
外部のマシンから接続できるようにhttpを許可する
sudo firewall-cmd --add-service=http --zone=public --permanent
※80番ポートのみを許可する方法もある
sudo firewall-cmd --add-port=80/tcp --zone=public --permanent
再起動して設定を反映
sudo firewall-cmd --reload
4)hostnameの登録
sudo vi /etc/httpd/conf/httpd.conf
ServerName localhost.localdomain:80
を追記
※IPアドレスでもOK
⇒ 今回は ServerName 172.27.32.87:80
で追記
※メモ:バージョンの確認:httpd -v
(-V
にすると詳細表示)
※メモ:状態の確認:systemctl status httpd
※メモ:httpdの起動:sudo systemctl start httpd
※メモ:httpdの停止:sudo systemctl stop httpd
※メモ:httpdの再起動:sudo systemctl restart httpd
※メモ:httpdを自動起動に設定:sudo systemctl enable httpd
FTPサーバ(Vsftpd)の導入
参考:保護中: AlmaLinux8:FTPサーバー設定 - 初心者におすすめ!コピペでできる自宅サーバーAlmaLinux8の作り方。
1)Vsftpdのインストール
sudo dnf install vsftpd -y
2)環境設定
sudo vi /etc/vsftpd/vsftpd.conf
12行目:匿名ログインを禁止する.(12Gと入力するとその行へジャンプします)
anonymous_enable= NO
82,83行目:行頭の「#」を削除してコメント解除.アスキーモードでの転送を許可する.
ascii_upload_enable=YES
ascii_download_enable=YES
100,101行目:行頭の「#」を削除してコメント解除.chrootを有効にします.
chroot_local_user=YES
chroot_list_enable=YES
103行目:行頭の「#」を削除しコメント解除.リストファイルを指定.
chroot_list_file=/etc/vsftpd/chroot_list
109行目:行頭の「#」を削除しコメント解除.ディレクトリ転送を有効にします.
ls_recurse_enable=YES
114行目:IPv4を有効に変更.
listen=YES
123行目:IPv6を無効に変更.
listen_ipv6=NO
ローカルタイム指定を最終行に追記.
use_localtime=YES
上層への移動を許可するユーザーを追加.
sudo vi /etc/vsftpd/chroot_list
ユーザー名を追記.
ユーザ名1 ユーザ名2 |
「/var/www/html」への書き込みを許可する.
sudo chmod 0777 /var/www/html
3)自動起動の設定と即時起動
–now オプションをつけて「 enable (自動起動)」と「 start (起動)」を同時に実行.
sudo systemctl enable --now vsftpd
4)firewall設定
外部のマシンから接続できるようにftpを許可する
sudo firewall-cmd --add-service=ftp --zone=public --permanent
※21番ポートのみを許可する方法もある
sudo firewall-cmd --add-port=21/tcp --zone=public --permanent
再起動して設定を反映
sudo firewall-cmd --reload
おまけ:rootでFTPできるようにする場合
参考:
りなっくすなう。: LinuxのFTPサーバ(vsftpd)にrootで接続
※FFFTPのPASVモードはチェック入っていても大丈夫だった
vsftpd.confのuserlist_enable=YESとなっていることを確認する.
sudo grep -n userlist_enable /etc/vsftpd/vsftpd.conf
(結果)
118:userlist_enable=YESuser_listのrootをコメントアウト
sudo vi /etc/vsftpd/user_list
⇒「root」をコメントアウトするftpusersのrootをコメントアウト
sudo vi /etc/vsftpd/ftpusers
⇒「root」をコメントアウトするchroot_listに追加
sudo vi /etc/vsftpd/chroot_list
⇒ユーザー名「root」を追記します.vsftpdを再起動して設定を反映
sudo systemctl restart vsftpd
今回はここまで.つぎはいよいよSubversionとSubminのインストールです.
AlmaLinux8.7 で Submin を使う ~1.OSの準備①~
この記事は2023年2月ごろに書き溜めていたものです.
2023年8月現在,RedHatのに独占的とも思える騒動で今後のAlmaLinuxはどう変わっていくんでしょうね. https://www.publickey1.jp/blog/23/almalinuxred_hat_enterprise_linuxabirhel.html
CentOS6で利用していたSubversion(なんと2014/11構築!!)をAlmaLinux8.7に移すことにしました.
Subversionの管理にSubminを使います.
SubminはPython2を使用するため,AlmaLinux9ではなく,Python2が使える8.7にしました.
実はSubminとSubversionをつなぐモジュールが簡単に手に入らず,Subversionのコンパイルからやっています.
いろんな方の記事を参考にして,本件向けに手順をまとめなおしています.
感謝です!
今回は前準備として,Windows10/11上でHyper-Vにて仮想環境を構築し,OSのインストールと基本的な設定をしました.
[目次]
※現在の仕事上,Linuxはまれに触れる程度ですので盛大な勘違いや思い込みがあるかも?
※その時は教えてくださいね.
作業方針
- 本構築前のお試しなのでWindows10/11上でHyper-Vにて構築します.
- 「su -」は使わず,「sudo」で進めます.
インストールするOSの入手
AlmaLinux-8.7-x86_64-minimal.iso の入手
公式サイト:https://almalinux.org/ja/ にアクセスします.
「ダウンロード」より,適したCPUを選んでダウンロードサイトを選択.
※選択するダウンロードサイトで転送速度が全然違います.遅いなぁと思ったら他も試してみるといいです.「AlmaLinux-8.7-x86_64-minimal.iso(10-Nov-2022 07:12, 1.7GByte)」をダウンロードする.
「latest」のほうが良いのでしょうが,その場合はこの後の処理はバージョン差等に注意が必要となる...かも...
※ 2023年8月追記:現在,「ダウンロード」には 8.7 が見えませんが,ダウンロード先で過去のバージョンを選べます.
仮想環境の用意
Windows11/Windows10Proで無償で利用できる,Hyper-V を使用します.
使用可能にするための詳細はここでは省略.
作成時の注意点のみ記述します.
世代指定は「第2世代」にします.
ネットワークの構成は,今後の作業のなかで,IPアドレスで指定する箇所がいくつかあるるため,下記対策を参考にして,アドレスを固定します. https://chiritsumo-life.com/20200718/hyperv-closednetwork/chiritsumo-life.com
作成した仮想マシンは「設定」でセキュアブートを無効にします.
OSのインストール
下記画面にてそれぞれを設定してインストール開始です.
- インストール先:いったん設定画面を開き,表示を確認.
- 日付と時刻:日本をクリックして,アジア/東京に設定.
- ネットワークとホスト名:ホスト名やIPアドレス等を設定.
- rootパスワード:rootのパスワードを設定.
- ユーザの作成:これからの作業で使用するユーザを作成.
インストール後のOSの整備
1)ネットワークとホスト名の変更(nmtuiコマンド)
※OSインストール時の設定を変更したい場合の手順です.
コマンドプロンプトで nmtui
と入力して実行します.
こんな感じのGUI画面で設定できます.
※ここでは下記の想定とします.
- IPアドレス=172.27.32.87/20
- プロキシ=10.10.0.1:8080
(※利用しているネットワークにプロキシがある想定です)
2)sudoコマンドの有効化
- 方法① - visudoで登録
※検索するとこの方法をよく見つけたのでメモです.
※今回は後述の方法②にしました.
su visudo
⇒ root ALL=(ALL) ALL`と記述されている箇所の下にroot権限を与えるユーザーを登録します.
- 方法② - 権限のあるグループへ参加
su usermod -aG wheel ユーザ名
⇒ sudoが可能なグループ「wheel」に所属となります.
※sudo コマンド有効化を確認
exit
(su していた時)- 方法②はここで一旦ログインしなおしが必要
sudo vi
で正常に動作すればOK
3)SELinuxを無効化
sudo vi /etc/sysconfig/selinux
下記変更
SELINUX=enforcing
↓
SELINUX=disabled
変更を反映のためにOSを再起動
sudo reboot
再起動後に下記コマンドを実行
getenforce
⇒ 「Disabled」と表示されればSELinuxは無効になっています.
4)dnfのプロキシ対応(※プロキシがある場合)
sudo vi /etc/dnf/dnf.conf
最後尾に下記追加
proxy=http://proxy_host:proxy_port
※proxy_host:proxy_portは実際に合わせて値は設定します.
例)proxy=http://10.10.0.1:8080
5)dnfパッケージの更新
既存のすべてのパッケージを最新の状態にする.
(インストール中の競合を回避するための作業だそうです.)
sudo dnf upgrade --refresh -y
※画面がたくさん流れます.
6)EPELリポジトリの導入
※RHEL用ビルド済みパッケージ(Frdoraプロジェクトが作成)
sudo dnf install epel-release -y
※下記コマンドで導入したリポジトリの一覧表示ができます.
dnf repolist
7)開発ツールパッケージを一括インストール
sudo dnf group install "Development Tools" -y
※画面がたくさん流れます.
※グループに含まれるパッケージ内容の確認方法
sudo dnf groupinfo "Development Tools"
8)gccのマニュアルをインストール(これはたぶんおまけの作業)
sudo dnf install man-pages -y
※gccのバージョン確認方法
gcc --version
9)gitのプロキシ対応(※プロキシがある場合)
sudo git config --global http.proxy http://proxy_host:proxy_port
※proxy_host:proxy_portは実際に合わせて値は設定します.
例)sudo git config --global http.proxy http://10.10.0.1:8080
※sudoするので,/rootに定義ファイルができ,以降,sudoでないとgitが実行できません.
※設定結果の確認は下記コマンドです
sudo git config --global -l
⇒ 「http.proxy=http://proxy_host:proxy_port」と表示されればOK
※ローカルユーザで使いたいなら,sudoなしで上記コマンド実行.
git config --global http.proxy http://proxy_host:proxy_port
※proxy_host:proxy_portは実際に合わせて値は設定します.
例)git config --global http.proxy http://10.10.0.1:8080
※設定結果の確認は下記コマンドです.
git config --global -l
⇒ 「http.proxy=http://proxy_host:proxy_port」と表示されればOK
10)curlのプロキシ対応(※プロキシがある場合)
sudo vi ~/.curlrc
最後尾に下記追加(おおよそは新規作成)
proxy=http://proxy_host:proxy_port
※proxy_host:proxy_portは実際に合わせて値は設定します.
例)proxy=http://10.10.0.1:8080
※ローカルユーザで使いたいなら,sudoなしで上記コマンド実行.
vi ~/.curlrc
最後尾に下記追加(おおよそは新規作成)
proxy=http://proxy_host:proxy_port
※proxy_host:proxy_portは実際に合わせて値は設定します.例)proxy=http://10.10.0.1:8080
今回はここまで.