カテゴリー
Linux

Mailman によるメーリングリスト構築

私が主催しているサークルでメーリングリストを作成することにしました。

無料で使えるメーリングリストありますが、勉強のために、自前でやることにします。

Mailman を自宅サーバーで稼働させることにしました。自宅サーバーは CentOS 5.7 と Postfix が稼働していますので、CentOS のリポジトリからインストールできる Mainman 2.1.9 を利用します。

1. mailman のインストール

mailman をリポジトリからインストールします。

# yum install mailman

2. mailman.conf の編集

mailman.conf が作成されていますので、mailman.conf 末尾の RedirectMatch の青字部分を自分のドメイン名に変更します。

# cd /etc/httpd/conf.d/
# vi mailman.conf
--- mailman.conf ---
...(省略)...
# Uncomment the following line, replacing www.example.com with your server's
# name, to redirect queries to /mailman to the listinfo page (recommended).
RedirectMatch ^/mailman[/]*$ https://www.xxx.com/mailman/listinfo
------------------

※ //www.xxx.com: を自分のドメイン名に修正

3. サイト パスワード設定

mailman サイトの管理用のパスワードを設定します。

# /usr/lib/mailman/bin/mmsitepass password

4. mailman 設定ファイルの編集

mailman の言語設定を日本語にするとともに、URLとメールのホストを指定します。
/usr/lib/mailman/Mailman/mm_cfg.py の末尾に青字部分を追記します。

# cd /usr/lib/mailman
# vi Mailman/mm_cfg.py
--- mm_cfg.py ---
...(省略)...

DEFAULT_SERVER_LANGUAGE = 'ja'
DEFAULT_URL_HOST = 'www.xxx.com'
DEFAULT_EMAIL_HOST = 'mail.xxx.com'
add_virtualhost(DEFAULT_URL_HOST, DEFAULT_EMAIL_HOST)

------------------

5. アップデートの確認

アップデートを実行して更新を確認します。
※Poderosa などで、Windows から SSH アクセスしている場合は、「エンコーディング」を utf-8 から euc-jp に変更します。

# cd /usr/lib/mailman
# bin/update
更新の必要はありません.

6. mailman サイトリストの作成

mailman サイト リストを作成します。

# cd /usr/lib/mailman
# bin/newlist mailman
リスト管理者のメールアドレスを入力してください: foo@xxx.com
foo の初期パスワード:
メーリングリストの作成を完了するには, /etc/aliases (または同等のファイル) に, 以下の行を追加してください.
また, `newaliases' コマンドの実行が必要でしょう.
## foo mailing list
foo: "|/usr/lib/mailman/mail/mailman post foo"
foo-admin: "|/usr/lib/mailman/mail/mailman admin foo"
foo-bounces: "|/usr/lib/mailman/mail/mailman bounces foo"
foo-confirm: "|/usr/lib/mailman/mail/mailman confirm foo"
foo-join: "|/usr/lib/mailman/mail/mailman join foo"
foo-leave: "|/usr/lib/mailman/mail/mailman leave foo"
foo-owner: "|/usr/lib/mailman/mail/mailman owner foo"
foo-request: "|/usr/lib/mailman/mail/mailman request foo"
foo-subscribe: "|/usr/lib/mailman/mail/mailman subscribe foo"
foo-unsubscribe: "|/usr/lib/mailman/mail/mailman unsubscribe foo"
Enter を押して foo の管理者にメール通知する...

7. エイリアスの編集

/etc/aliases の末尾に上記のリストを追記します。

# vi /etc/aliases
--- /etc/aliases ---
...(省略)...

## foo mailing list
foo: "|/usr/lib/mailman/mail/mailman post foo"
foo-admin: "|/usr/lib/mailman/mail/mailman admin foo"
foo-bounces: "|/usr/lib/mailman/mail/mailman bounces foo"
foo-confirm: "|/usr/lib/mailman/mail/mailman confirm foo"
foo-join: "|/usr/lib/mailman/mail/mailman join foo"
foo-leave: "|/usr/lib/mailman/mail/mailman leave foo"
foo-owner: "|/usr/lib/mailman/mail/mailman owner foo"
foo-request: "|/usr/lib/mailman/mail/mailman request foo"
foo-subscribe: "|/usr/lib/mailman/mail/mailman subscribe foo"
foo-unsubscribe: "|/usr/lib/mailman/mail/mailman unsubscribe foo"

------------------

次に、newaliases コマンドを実行します。

# newaliases

8. httpd 再起動

httpd を再起動します。

# /sbin/service httpd restart

9. mailman の起動

最後に、mailman のランレベルを設定して、起動します。

# /sbin/chkconfig mailman on
# /sbin/service mailman start
mailman を起動中:

以上です。

参考サイト:
https://minhtech.com/featuredlinux/install-and-configure-mailman/

カテゴリー
Linux

RPM パッケージの作成方法

RPM (Redhat Package Manager) はレッドハット社の開発したパッケージ管理ツールで、通常はバイナリをインストールするのに使用しますが、ソースファイルからバイナリ、パッケージをビルドするソースRPMもあります。Linux のディストリビューションが提供する機能の一部を変更するために、そのソースに手を入れて、RPMパッケージを再ビルドして、配布するということもできます。

RPMビルド開発環境の準備

Redhat 系 Linux ディストリをインストールする際にインストールタイプを選択する機会がありますここで、「ワークステーション」インストールを選択した場合は特に準備は必要ありません。

「デスクトップ」や他のオプションでインストールした場合は、開発ツールを別途インストールする必要があります。

# yum groupinstall 開発ツール
# yum install rpm-build

上記2つ(もしくは最初の1つ)をインストールするとビルドに必要なものがそろうはずです。

ソースRPM (SRPM) の入手

Linux ディストリの公開されているSRPMからカスタマイズしたいパッケージを入手します。

例えば、Scientific Linux 6.0 の場合:

https://ftp1.scientificlinux.org/linux/scientific/6.0/SRPMS/

にあります。

ここでは、gnome-panel パッケージを入手して試してみます。

# wget https://ftp1.scientificlinux.org/linux/scientific/6.0/SRPMS/vendor/gnome-panel-2.30.2-5.el6.src.rpm

ソースRPM (SRPM) の展開

入手した gnome-panel のソースRPMを展開してみます。
展開するには書きコマンドを実行します:

# rpm -i gnome-panel-2.30.2-5.el6.src.rpm

既定ではユーザーのホームディレクトリに展開され、~/rpmbuild フォルダができているかと思います。さらにその下に:

  • SOURCES
  • SPECS

ができています。

SOURCES には元になるソースの圧縮ファイル gnome-panel-2.30.2.tar.bz2 で格納され、さらに差分がパッチ (*.patch) ファイルが格納されています。

SPECS にはパッケージ作成用の仕様書(spec ファイル)が格納されています。

ソースRPM (SRPM) の構築(ビルド)

まずは、変更を加える前にソースRPMをビルドしてRPMを作成してみます。

# cd ~/rpmbuild
# rpmbuild -bc SPECS/gnome-panel.spec

上記コマンドを実行します:

エラー: ビルド依存性の失敗:
libwnck-devel >= 2.19.5 は gnome-panel-2.30.2-5.el6.i686 に必要とされています
gnome-menus-devel >= 2.27.92 は gnome-panel-2.30.2-5.el6.i686 に必要とされています
NetworkManager-devel は gnome-panel-2.30.2-5.el6.i686 に必要とされています

ビルド依存性の失敗というエラーになりました。不足している上記3つのモジュールをインストールします。

# su -c 'yum install libwnck-devel gnome-menus-devel NetworkManager-devel'

いろいろ依存関係がチェックされ、Complete! と表示されたらOKです。
再度、rpmbuild を実行します。

# rpmbuild -bc SPECS/gnome-panel.spec

ビルドが完了すると ~/rpmbuild ディレクトリの下にさらに下記のディレクトリが作成されてます。

  • BUILD
  • RPMS/i686
  • SRPMS

BUILD には SOURCES のソースが展開され、各パッチがあてられmakeが行われるディレクトリです。

RPMS/i686 には完成したバイナリパッケージ(*.rpm)が置かれます。

ソースの改変/パッチファイルの作成

ソースを改変は、改変対象の機能のオリジナルのソースを改変して、その差分をパッチ形式でビルドできるようにする必要があります。

例えば、gnome-panel/foo.c という名前のファイルがあるとしたら、gnome-panel.org/foo.c という名前のディレクトリにコピーして改変します。次にオリジナルとの差分をパッチとして、再ビルドすればよいことになります。

# diff -u gnome-panel/foo.c gnome-panel.org/foo.c > ~/rpmbuild/SOURCES/foo.patch

パッケージ作成用の仕様書 (SPEC) の作成

SPEC ファイルには、パッケージ情報や、rpm や src.rpm の作成方法が記述されています。

ここでは、一からSPECファイルを記述するのではなくて、すでにある spec ファイルに作成したパッチを当てることをします。

~/rpmbuild/SPEC/gnome-panel.spec というファイルを見ます。

ずらずらとみていくと、SourceX や PatchX (X は数字)と書かれている行があると思います。ここに SourceX はベースとなるソースファイルを記述して、 PatchX にはパッチファイルを記述します。

もともと存在していたソースファイルを改変した場合には SourceX は記述の必要はありません。PatchX を追記します。

例えば:

Patch101:foo.patchBuildRoot: の前(上の行) へ追記します。次に %changelog という行を探して、パッケージの更新履歴を追記します。

最新の更新情報が上にくるように書きます。また、英語で書くの方がよさそうです。

* Fri May 20 2011 mznetlab
- Created foo patch
- See source and patch for more detail

ソースRPM (SRPM) の最構築

ここまで、ひととおりソースRPMの入手から、ソースの改変、パッチ作成、SPECの変更までをやってみました。

変更したソースを反映したRPMを作成するには、再度 rpmbuild で spec ファイルを rpmbuild します。

# rpmbuild -bc SPECS/gnome-panel.spec

RPMS/i686 に更新されたたバイナリパッケージ(*.rpm) ができます。

カテゴリー
Linux

Ubuntu 10.04 LTSをUSBからインストール

少し古いノートPC  (Panasonic Let’s Note CF-W5) に Ubuntu 12.04 LTS をインストールしたのですが、ちょっと遅いので、以前インストールしたことのある Ubuntu 10.04 にインストールし直しました。

インストールCDイメージ(.iso) をダウンロードして、USBメモリからインストールしました。

詳細 (英語) :https://www.ubuntu.com/download/help/create-a-usb-stick-on-windows

準備

  1. 2GB以上のUSBメモリを用意します。
  2. PCにUSBメモリを差してドライブとして認識させます。
  3. Universal USB インストーラをダウンロードします。
  4. Ubuntu 10.04.4 LTS Desktop の iso イメージをダウンロードします。

ステップ1: Universal-USB-Installer の実行

ダウンロードしたインストーラ (例: Universal-USB-Installer-1.8.9.8.exe) をクリックして実行します。ライセンス同意のダイアログがでますので、内容を読んで同意します。 [I Agree] ボタンをクリックします。

Universal_USB_Installer_1.8.7.0_Setup1

ステップ2: Linux ディストリビューションの選択

「Step 1: Select a Linux Distribution from the dropdown to put on your USB」 というドロップダウンからUSBメモリに入れる Linux ディストリビューションを選択します。

ここでは Ubuntu 10.04.X を選択。

Universal_USB_Installer_1.8.7.0_Setup2

ステップ3: Linux の iso イメージの選択

「Step 2: PENDING: Brows to your ubuntu-10.04*desktop*.iso」というラベルのテキストボックスに準備しておいた ubuntu-10.04.04-desktop.iso のパスを指定するか「Browse」で選択します。

 

ステップ4: USBメモリのドライブの指定

「Step 3: Select your USB Flash Drive Letter Only」というラベルの下にあるコンボボックスから USB メモリのドライブを選択します。

ここでは、”E:” です。USB メモリをフォーマットする場合は、「Format E: Drive (Erase Content)」チェックボックスをクリックしておきます。

ステップ5: USB メモリへの書き込みに同意

「Create」ボタンをクリックします。

「Universal USB Installer is Ready to perform the following actions.」というダイアログが表示されたら、「はい(Y)」ボタンをクリックして実行します。

Universal_USB_Installer_1.8.7.0_Setup3

イメージを展開する進捗が表示されますので、このまま待ちます。

Universal_USB_Installer_1.8.7.0_Setup4

USBメモリにイメージの書き込みが終了すると 「Installation Done, Process is Complete!」が表示されますので、 「Close」 ボタンをクリックして終了します。

 

これで、このUSBメモリはブート可能になりました。

インストールする PC にこの USB メモリを差して、USBからブートさせると Ubuntu 10.04 LTS のインストールが始まります。