CentOS 5.2 x86_64にyumでcheckinstallをインストールできなかったので自力でインストールしてみました。 警告いっぱい出ます。 とりあえず使えるっぽいからいっかw

環境

  • OS:CentOS 5.2 x86_64

手順

  1. gccをインストール
  2. rpm-buildをインストール
  3. ソースコードからcheckinstallをインストール
  4. RPMからcheckinstallを再インストール

gccをインストール

  1. yum install gcc

rpm-buildをインストール

  1. yum install rpm-build

ソースコードからcheckinstallをインストール

  1. cd /tmp
  2. wget http://www.asic-linux.com.mx/~izto/checkinstall/files/source/checkinstall-1.6.1.tgz
  3. tar zxf checkinstall-1.6.1.tgz
  4. cd checkinstall-1.6.1/installwatch-0.7.0beta5
  5. vi installwatch.c.patch
  6. 以下のパッチをコピペして保存
  7. patch
  8. cd ../
  9. makemake install
--- installwatch.c.ORG 2007-04-07 14:27:23.000000000 -0400
+++ installwatch.c 2007-04-07 14:25:06.000000000 -0400
@@ -84,7 +84,7 @@
static int (*true_open)(const char *, int, );
static DIR *(*true_opendir)(const char *);
static struct dirent *(*true_readdir)(DIR *dir);
-static int (*true_readlink)(const char*,char *,size_t);
+static ssize_t (*true_readlink)(const char*,char *,size_t);
static char *(*true_realpath)(const char *,char *);
static int (*true_rename)(const char *, const char *);
static int (*true_rmdir)(const char *);
@@ -546,7 +546,7 @@
struct utimbuf timbuf;
size_t truesz;
char linkpath[PATH_MAX+1];
- size_t linksz;
+ ssize_t linksz;

#if DEBUG
debug(2,"copy_path(%s,%s)\n",truepath,translroot);
@@ -1582,7 +1582,7 @@
struct stat reslvinfo;
instw_t iw;
char wpath[PATH_MAX+1];
- size_t wsz=0;
+ ssize_t wsz=0;
char linkpath[PATH_MAX+1];

@@ -2698,8 +2698,8 @@
return result;
}

-int readlink(const char *path,char *buf,size_t bufsiz) {
- int result;
+ssize_t readlink(const char *path,char *buf,size_t bufsiz) {
+ ssize_t result;
instw_t instw;
int status;

RPMからcheckinstallを再インストール

  1. /usr/local/sbin/checkinstall
  2. 「Please choose the packageing~」と表示されたら「R」を入力し「Enter」キーを押す
  3. rpm -Uvh –nomd5 /usr/src/redhat/RPMS/x86_64/checkinstall-1.6.1-1.x86_64.rpm -excludepath /selinux

参考にした主なサイト