############################################################
# OSによってパターンが変わります
############################################################
# 管理者権限で実行
su - # case by CentOS
sudo su # case by ubuntu
############################################################
# 以降の手順は基本的に同じです。
############################################################
# ソースダウンロード先
comp_dir=/usr/local/src
# パッケージ名
pack_name=vsftpd
# バージョン
version=-3.0.2
# ソースのファイル形式
ext=.tar.gz
# tar解凍時のオプション
ext_opt=z
# インストール先ディレクトリ
ins_dir=/opt/${pack_name}
# ダウンロード元パッケージ
dl_uri=https://security.appspot.com/downloads/vsftpd-3.0.2.tar.gz
cd ${comp_dir}
rm -rf ${pack_name}${version}
wget ${dl_uri} -O ${pack_name}${version}${ext}
tar ${ext_opt}xf ${pack_name}${version}${ext}
cd ${comp_dir}/${pack_name}${version}
# makeに失敗するのでlibcap.o を指定しないようにする
cp -a ./vsf_findlibs.sh ./vsf_findlibs.sh.bk
vi ./vsf_findlibs.sh
< # # Look for libcap (capabilities)
< # if locate_library /lib/libcap.so.1; then
< # echo "/lib/libcap.so.1";
< # elif locate_library /lib/libcap.so.2; then
< # echo "/lib/libcap.so.2";
< # else
< # locate_library /usr/lib/libcap.so && echo "-lcap";
< # locate_library /lib/libcap.so && echo "-lcap";
< # locate_library /lib64/libcap.so && echo "-lcap";
< # fi
---
> # Look for libcap (capabilities)
> if locate_library /lib/libcap.so.1; then
> echo "/lib/libcap.so.1";
> elif locate_library /lib/libcap.so.2; then
> echo "/lib/libcap.so.2";
> else
> locate_library /usr/lib/libcap.so && echo "-lcap";
> locate_library /lib/libcap.so && echo "-lcap";
> locate_library /lib64/libcap.so && echo "-lcap";
> fi
# 設定ファイルの読み込み先を設定
sed -ie "s|/etc/vsftpd.conf|${ins_dir}/etc/vsftpd.conf|g" ./defs.h
sed -ie "s|/etc/vsftpd.conf|${ins_dir}/etc/vsftpd.conf|g" ./defs.he
make -j
/bin
/mv $
{ins_dir
} /tmp
/$
{pack_name
}_bk`
date +%Y
%m
%d
%H
%M
%S`
# installターゲットが雑(PREFIX指定できない)なので自分でインストール
mkdir -p $
{ins_dir
}/{sbin
,etc
} install -m 755 vsftpd ${ins_dir}/sbin/vsftpd
mkdir -p $
{ins_dir
}/man
/man
{5,8} install -m 644 vsftpd.8 ${ins_dir}/man/man8/vsftpd.8
install -m 644 vsftpd.conf.5 ${ins_dir}/man/man5/vsftpd.conf.5
install -m 644 vsftpd.conf ${ins_dir}/etc/vsftpd.conf