Chap-7. Linux で apache 等をソースからコンパイル

Sec-2.Debian-stable、Ubuntu 及びその派生
Sec-3.Redhat クローン(AlmaLinux)
Sec-4.Arch派生(Manjaro、ArcoLinuxなど)
Sec-6.openSUSE (tw) 及びその派生


1)チェックするディストリ(つまりお試しするディストリ)の選定は、基本的に Chap-26-2.の考え方をベースにして、インストールが容易なものを選んでいます。
2)カーネルコンパイルについては最近はチェックしていません。記述を無くしました。
上記1の考え方をとる場合、自分でコンパイルする必要性はほぼ無いです。(コンパイルオプションを変えて自分が必要な機能を追加する時くらい)
上記2)のようなことを言うと、そもそもメルサバ、ウェブサバ、言語処理系だってコンパイルする必要はないだろうって突っ込まれそうですが、笑。


Sec-1. Slackware

最近 Slackware 使ってません。このセクション省略です。





Sec-2. Debian-stable、Ubuntu 及びその派生

(1)----- Postfix -----

(準備)
バークレーのデータベースライブラリ libdb-dev と m4 プリプロセッサをインストールしておきます。

# apt install libdb-dev m4

(コンパイル・インストール作業)

$ make -f Makefile.init makefiles
$ make -j N (N は利用CPUの可能スレッド数よりちょい少なめを適宜選ぶ)
# make install

(インストール後の作業)

/usr/lib/senemail がある場合はこれを rm します。
また、別のメルサバ(exim4 等)が動いている場合は、Postfix の動作確認する前に止めておきます。

動作確認するとき、mail コマンドが入っていないことがあります。GNUのソース(mailutils-3.7.tar.gz 等)を持ってきて自分でコンパイル・インストールするか、あるいはパッケージに mailutils、mailx、s-nail 等というのがあればどれかをインストールします。それで大抵 mail コマンドが入ります。
ただし、ディストリによっては postfix まで同時に入れる場合があります。そうなると自分でコンパイル・インストールしたものを上書きされそうです。要注意です。

(2)----- Apache -----

(準備)

いくつかのパッケージをインストールします。

# apt install libapr1-dev libaprutil1-dev libpcre3-dev libssl-dev

(コンパイル・インストール作業)

$ configure --prefix=hogehoge
$ make  -j N
# make install

(インストール後の作業)

特にありません。httpd.conf を適宜編集するだけです。


(3)----- guile -----

(準備)

 以下のように、いくつかのパッケージをインストールします。

# apt  install  libltdl-dev  libgmp3-dev  libunistring-dev  libgc-dev  libffi-dev  pkg-config

(コンパイル・インストール作業)

$ configure --prefix=hogehoge
$ make -j N  
# make install

(インストール後の作業)

シェアードオブジェクトの所在をOSに登録する必要があります。
たいてい、/etc/ld.so.conf.d/ ディレクトリの中にライブラリの場所を書いたファイルを入れます。後は ldconfig やるだけ。


(4)----- Lua -----

(準備)

 libreadline-dev パッケージをインストールします。

Makefile 中でインストールする場所を指定します。また src ディレクトリ中の makefile をいじって -fPICオプションをつけます。
つける場所は大抵、MYCFLAGS

(コンパイル・インストール作業)

$ make linux AUXLIBS=-ltermcap
# make install

(インストール後の作業)

特になにも無かったと思います。




Sec-3. Redhat クローン(AlmaLinux)

AlmaLinux 8 の場合は /etc/yum.repos.d/ の中の PowerTools で enabled=1 としておきます。
AlmaLinux 9 の場合は almaLinux-crb.repo で enabled=1 としておきます。
CUI インストールの場合は redhat-rpm-config を入れる必要があるかもしれません。
コンパイルするために入れるパッケージは以下の具合です。

(Postfix)
# dnf install libdb-devel  libnsl2-devel m4
(m4 は cui インストールしたときは必要かもしれません。GUIインストールしたときは自動的に入っていると思います)

(Apache)
# dnf install apr-devel  apr-util-devel pcre-devel openssl-devel

(guile)
# dnf install libtool-ltdl-devel  gmp-devel  libffi-devel libunistring-devel  gc-devel

(Lua)
# dnf install readline-devel


コンパイル・インストール作業・インストール後の作業
ほぼDebian と同じです。

ver9 では mail コマンドを s-nail パッケージを入れて導入しました。





Sec-4. Arch派生(Manjaro、ArcoLinuxなど) 

コンパイルするために入れるパッケージはほぼありません。

(postfix)
無し。

(apache)
もしかしたら # pacman -S apr apr-util pcre
かもしれません。

(guile)
無し。

(lua)
無し

以前はpostfix コンパイルのために  /usr/include/resolv.h を修正する必要がありました。
2022ー06現在、その修正は必要無くなっています。

コンパイル・インストール作業・インストール後の作業
ほぼDebian と同じです。




Sec-5. Mageia

 このセクションは削除しました。





Sec-6. openSUSE (tw) 及びその派生 (Gecko 等)

 コンパイルするために必要なパッケージは、以下のとおりです。

(postfix)
# zypper install gcc-c++ libdb-4_8-devel m4 libnsl-devel

(apache)
# zypper install libopenssl-devel apr-devel apr-util-devel pcre-devel

(guile)
# zypper install libtool gmp-devel libunistring-devel libffi-devel gc-devel

(lua)
# zypper install readline-devel

なお、以前はpostfix をコンパイルする際、最初の make は

$ make -f Makefile.init makfiles  AUXLIBS="-lnsl"

としていました。2022年時点では AUXLIBS="-lnsl" のオプションは要らなくなっています。
また lua のコンパイルは普通に

$ make linux AUXLIBS=-ltermcap

で良くなったようです。
結局、全部普通になった、笑。







**** 今更役にたちませんが前の原稿です ****
一つ前の原稿  www.quinos.net/topic7/topic7.02.html
二つ前の原稿  www.quinos.net/topic7/topic7.01.html