在 x86_64 位上安装 checkinstall

在 x86_64 位上安装 checkinstall
  • 我下载了源代码以检查安装 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

我对这个问题进行了广泛的搜索,并且解决方案看起来很有希望。我应该尝试将 checkinstall 安装为 吗fpm?最好的方法是什么?

Centos 6.3 x86_64

答案1

如果你使用 ,fpm几乎就不需要做checkinstallfpm仍然有一些缺陷,需要对 进行一些后期处理rpmrebuild。 就我而言,我在初次构建 时遇到了同样的错误checkinstall,说再见,然后通过 搜索 RPMRPMFind 网站,其中出现了一个合适的版本。

很少使用checkinstall,但fpm对我来说却是一种享受。甚至可以fpm在初始 gem 安装后将其打包成 RPM,然后正确地重新安装 :)

针对 @Michael Hampton 的请求和您的澄清:您没有令人信服的理由从源代码编译 PHP 并尝试(赤脚!)跟踪 PHP 的前沿技术以用于您的生产环境。与任何其他程序相比,PHP 经常破坏向后兼容性。但是,能够推出 RPM 对于许多只有源代码可用的情况非常有用。

编辑 #3: 的另一个优点fpm是不用在 下运行root。实际上,这可以减轻一点精神压力。

相关内容