checkinstall-1.6.2.tar.gz 。 tar -xzvf checkinstall-1.6.2.tar.gz make 。 它打印这个错误:
[root@ip-50-63-180-135 checkinstall-1.6.2]# make 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]: Entering directory `/home/sofiane/checkinstall-1.6.2/installwatch' gcc -Wall -c -D_GNU_SOURCE -DPIC -fPIC -D_REENTRANT -DVERSION=\"0.7.0beta7\" installwatch.c installwatch.c:2942: error: conflicting types for 'readlink' /usr/include/unistd.h:828: note: previous declaration of 'readlink' was here installwatch.c:3080: error: conflicting types for 'scandir' /usr/include/dirent.h:252: note: previous declaration of 'scandir' was here installwatch.c:3692: error: conflicting types for 'scandir64' /usr/include/dirent.h:275: note: previous declaration of 'scandir64' was here make[1]: *** [installwatch.o] Error 1 make[1]: Leaving directory `/home/sofiane/checkinstall-1.6.2/installwatch' make: *** [all] Error 2
我在这个问题上广泛search,这个解决scheme看起来很有前途。 我应该尝试将checkinstall安装为fpm吗? 最好的办法是什么?
Centos 6.3 x86_64
如果你使用fpm ,几乎不需要做checkinstall 。 fpm仍然有一些疣,并需要一些后处理与rpmrebuild 。 在我的情况下,在checkinstall初始构build期间,我得到了同样的错误,说再见,然后通过RPMFind.netsearchRPM,在那里出现一个合适的版本。
很less使用checkinstall ,但fpm对我来说是一种享受。 在最初的gem安装之后,甚至可以将fpm包装到RPM中并正确地重新安装它:)
接下来是迈克尔•汉普顿(Michael Hampton)的请求和澄清:您没有足够的理由从源代码编译PHP,并试图追踪(为您的生产环境)PHP的出血性边缘。 PHP比任何其他程序都经常打破向后兼容性。 但是,能够推出RPM对于只有源代码可用的许多情况非常有用。
编辑#3: fpm另一个优点是没有root下运行。 其实,保存一点精神压力。