checkinstallをインストールしてソースファイルからRPMを作成する(64bit版) | 成長の果実

成長の果実

不完全でも良いから前に進む。

[前提]
OS: CentOS 5.7 x64

---------- 以下、記事 ----------



以前、OSが32bit版でのchekinstallのインストール手順を書いていたが、OSが64bit版の場合は同じ手順ではインストールできなかった為、64bit版用に手順を残しておく。


checkinstallをインストールしてソースファイルからRPMを作成する(32bit版)
http://ameblo.jp/welx/entry-11057347817.html



checkinstallの公式サイトより、モジュールをダウンロードしてインストールする。

CheckInstall Homepage
http://www.asic-linux.com.mx/~izto/checkinstall/


# wget http://www.asic-linux.com.mx/~izto/checkinstall/files/source/checkinstall-1.6.2.tar.gz ← 2012.03.12時点での最新版。最新版は公式HPで確認すること
# tar xzvf checkinstall-1.6.2.tar.gz
# cd checkinstall-1.6.2
# make
# make install
# checkinstall ← checkinstall自身もパッケージ化する

checkinstall 1.6.2, Copyright 2009 Felipe Eduardo Sanchez Diaz Duran
このソフトウェアはGNU GPLの下でリリースしています。

The checkinstallrc file was not found at:
/usr/local/sbin/../checkinstallrc

デフォルトの内容を使うものとします

The package documentation directory ./doc-pak does not exist.
Should I create a default set of package docs? [y]:  ← 空Enter

パッケージのドキュメンテーションを準備..OK

使用するパッケージ方式を選んでください。
Slackwareなら[S], RPMなら[R], Debianなら[D]を入力R ←今回はRPM化する


**************************************
**** RPM package creation selected ***
**************************************

このパッケージは以下の内容で構成されます:

1 - Summary: [ CheckInstall installations tracker, version 1.6.2 ]
2 - Name: [ checkinstall ]
3 - Version: [ 1.6.2 ]
4 - Release: [ 1 ]
5 - License: [ GPL ]
6 - Group: [ Applications/System ]
7 - Architecture: [ x86_64 ]
8 - Source location: [ checkinstall-1.6.2 ]
9 - Alternate source location: [ ]
10 - Requires: [ ]
11 - Provides: [ checkinstall ]

変更するものの番号を入力してください。Enterで続行します:  ← 空Enter

Installing with make install...

========================= インストールの結果 ===========================
for file in locale/checkinstall-*.po ; do \
case ${file} in \
locale/checkinstall-template.po) ;; \
*) \
out=`echo $file | sed -s 's/po/mo/'` ; \
msgfmt -o ${out} ${file} ; \
if [ $? != 0 ] ; then \
exit 1 ; \
fi ; \
;; \
esac ; \
done
make -C installwatch
make[1]: ディレクトリ `/tmp/checkinstall-1.6.2/installwatch' に入ります
make[1]: `all' に対して行うべき事はありません.
make[1]: ディレクトリ `/tmp/checkinstall-1.6.2/installwatch' から出ます
export
export CVS_RSH="ssh"
export G_BROKEN_FILENAMES="1"
export HISTSIZE="1000"
export HOME="/root"
export HOSTNAME="xxxxx"
export INPUTRC="/etc/inputrc"
export INSTW_BACKUP="1"
export INSTW_DBGFILE="/var/tmp/tmp.tXkVFO3901/dbgfile"
export INSTW_DBGLVL="0"
export INSTW_EXCLUDE="/dev,/proc,/tmp,/tmp/checkinstall-1.6.2,/var/tmp,"
export INSTW_LOGFILE="/var/tmp/tmp.tXkVFO3901/newfiles.tmp"
export INSTW_ROOTPATH="/var/tmp/tmp.tXkVFO3901"
export INSTW_TRANSL="1"
export LANG="ja_JP.UTF-8"
export LD_PRELOAD="/usr/local/lib64/installwatch.so"
export LESSOPEN="|/usr/bin/lesspipe.sh %s"
export LOGNAME="root"
export LS_COLORS="no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:bd=40;33;01:cd=40;33;01:or=01;05;37;41:mi=01;05;37;41:ex=01;32:*.cmd=01;32:*.exe=01;32:*.com=01;32:*.btm=01;32:*.bat=01;32:*.sh=01;32:*.csh=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.bz2=01;31:*.bz=01;31:*.tz=01;31:*.rpm=01;31:*.cpio=01;31:*.jpg=01;35:*.gif=01;35:*.bmp=01;35:*.xbm=01;35:*.xpm=01;35:*.png=01;35:*.tif=01;35:"
export MAIL="/var/spool/mail/root"
export MAKEFLAGS=""
export MAKELEVEL="1"
export MFLAGS=""
export OLDPWD
export PATH="/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin"
export PWD="/tmp/checkinstall-1.6.2"
export SHELL="/bin/bash"
export SHLVL="5"
export SSH_ASKPASS="/usr/libexec/openssh/gnome-ssh-askpass"
export SSH_CLIENT="xxx.xxx.xxx.xxx 60906 22"
export SSH_CONNECTION="xxx.xxx.xxx.xxx 60906 xxx.xxx.xxx.xxx 22"
export SSH_TTY="/dev/pts/1"
export TERM="xterm-color"
export TEXTDOMAIN="checkinstall"
export TEXTDOMAINDIR="/usr/local/sbin/../lib/checkinstall/locale"
export USER="root"
export _="/usr/bin/make"
make -C installwatch install
make[1]: ディレクトリ `/tmp/checkinstall-1.6.2/installwatch' に入ります
mkdir -p /usr/local/lib
mkdir -p /usr/local/bin
if [ -r /usr/local/lib/installwatch.so ]; then \
rm -f /usr/local/lib/installwatch.so; \
fi
install installwatch.so /usr/local/lib
sed -e "s|#PREFIX#|/usr/local|" < installwatch > /usr/local/bin/installwatch
chmod 755 /usr/local/bin/installwatch
make[1]: ディレクトリ `/tmp/checkinstall-1.6.2/installwatch' から出ます
mkdir -p /usr/local/sbin
install checkinstall makepak /usr/local/sbin
for file in locale/*.mo ; do \
LANG=`echo $file | sed -e 's|locale/checkinstall-||' \
-e 's|\.mo||'` && \
mkdir -p /usr/local/lib/checkinstall/locale/${LANG}/LC_MESSAGES && \
cp $file /usr/local/lib/checkinstall/locale/${LANG}/LC_MESSAGES/checkinstall.mo || \
exit 1 ; \
done
mkdir -p /usr/local/lib/checkinstall
install -m644 checkinstallrc-dist /usr/local/lib/checkinstall
if ! [ -f /usr/local/lib/checkinstall/checkinstallrc ]; then \
cp /usr/local/lib/checkinstall/checkinstallrc-dist /usr/local/lib/checkinstall/checkinstallrc; \
else \
echo; \
echo; \
echo ======================================================== ;\
echo; \
echo An existing checkinstallrc file has been found. ;\
echo The one from this distribution can be found at: ; \
echo; \
echo -e \\t/usr/local/lib/checkinstall/checkinstallrc-dist ; \
echo; \
echo; \
echo ======================================================== ;\
echo; \
fi


========================================================

An existing checkinstallrc file has been found.
The one from this distribution can be found at:

/usr/local/lib/checkinstall/checkinstallrc-dist


========================================================


======================== インストールに成功しました ==========================

Copying documentation directory...
./
./CREDITS
./FAQ
./README
./COPYING
./INSTALL
./RELNOTES
./TODO
./Changelog
./BUGS

tempディレクトリにファイルをコピー..OK

Stripping ELF binaries...OK

manページを圧縮..OK

ファイルリストを作成..OK

RPMパッケージを作成..OK

注意: パッケージはインストールされません

tempファイルを削除..OK

doc-pakディレクトリを削除..OK

バックアップパッケージを書き込み..OK
OK

temp dirを削除..OK


**********************************************************************

Done. The new package has been saved to

/usr/src/redhat/RPMS/x86_64/checkinstall-1.6.2-1.x86_64.rpm
You can install it in your system anytime using:

rpm -i checkinstall-1.6.2-1.x86_64.rpm

**********************************************************************



checkinstall自身をソールファイルからRPM化するところまではできたので、次は実際にインストールしていく。


# rpm -ivh /usr/src/redhat/RPMS/x86_64/checkinstall-1.6.2-1.x86_64.rpm ← インストール
準備中... ########################################### [100%]
1:checkinstall ########################################### [100%]

# rpm -q checkinstall ← RPMデータベースに登録されていることを確認
checkinstall-1.6.2-1

# checkinstall -v ← バージョンを確認

checkinstall 1.6.2, Copyright 2009 Felipe Eduardo Sanchez Diaz Duran
このソフトウェアはGNU GPLの下でリリースしています。





最後にこれが一番重要だが、64bit環境では以下の対処をすることで使用可能となる。

# ln -s /usr/local/lib/installwatch.so /usr/local/lib64/installwatch.so




以上。