无法在 Linux 2.6.18 上安装 dpkg

无法在 Linux 2.6.18 上安装 dpkg

我有一个正在尝试使用的虚拟机。它似乎没有 dpkg 或 apt-get,所以我从以下位置下载了源代码http://packages.debian.org/sid/dpkg-dev

如果我运行 ./configure 然后运行 ​​make 我得到

$ make
make  all-recursive
make[1]: Entering directory `/home/dbadmin/temp/dpkg-1.16.8'
Making all in lib
make[2]: Entering directory `/home/dbadmin/temp/dpkg-1.16.8/lib'
Making all in compat
make[3]: Entering directory `/home/dbadmin/temp/dpkg-1.16.8/lib/compat'
  CC     empty.o
cc1: error: unrecognized command line option "-Wvla"
make[3]: *** [empty.o] Error 1
make[3]: Leaving directory `/home/dbadmin/temp/dpkg-1.16.8/lib/compat'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/home/dbadmin/temp/dpkg-1.16.8/lib'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/dbadmin/temp/dpkg-1.16.8'
make: *** [all] Error 2

我尝试 $ ./configure --disable-compiler-warnings $ make 来获取...

  CC     trigproc.o
  CC     update.o
  CCLD   dpkg
archives.o: In function `tar_writeback_barrier':
/home/dbadmin/temp/dpkg-1.16.8/src/archives.c:1139: undefined reference to `sync_file_range'
archives.o: In function `fd_writeback_init':
/home/dbadmin/temp/dpkg-1.16.8/src/archives.c:77: undefined reference to `sync_file_range'
collect2: ld returned 1 exit status
make[2]: *** [dpkg] Error 1
make[2]: Leaving directory `/home/dbadmin/temp/dpkg-1.16.8/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/dbadmin/temp/dpkg-1.16.8'
make: *** [all] Error 2

这是我的机器

$ uname -a
Linux server.name.domain.tld 2.6.18-194.26.1.el5xen #1 SMP Fri Oct 29 14:30:03 EDT 2010 x86_64 x86_64 x86_64 GNU/Linux

我应该如何获得一个功能包管理器来解决这个问题?

更新: $ gcc --版本 gcc (GCC) 4.1.2 20080704 (红帽 4.1.2-51)

答案1

Dpkg 设计用于 Debian 和类似 Debian 的发行版。在其他系统上编译可能很困难,并且无论如何您都无法有效地使用它。另外,2.6.18 的内核版本很古老(我闻到了 CentOS 5),只有旧版本的 dpkg 有机会工作。

gcc --版本 gcc (GCC) 4.1.2 20080704(红帽 4.1.2-51)

所以你有一个红帽发行版:RHEL或其重新打包,例如 CentOS。 Red Hat 发行版上的基本包操作工具(相当于 dpkg)是转速。高级包操作工具(相当于 apt-get)是

有关确定 Linux 计算机正在运行哪个发行版的更系统的方法,请参阅如何编写有效确定发行版名称的脚本?。如果你幸运的话,lsb-release -si会给你答案。否则,请查找指示性文件,例如/etc/*release*/etc/*version*.

答案2

您是否安装了所有依赖项,特别是 GCC?

unrecognized command line option "-Wvla" 听起来你没有 GCC,或者版本不够新。

您到底运行什么系统(发行版、版本……)?

PS:为什么要在非debian / barebones Linux系统上安装dpkg,而不安装Debian?

答案3

由于似乎使用基于 Red Hat 的系统,默认的包管理器应该是rpm或许yum相应的用户前端。

请注意,您安装的任何软件包都需要适合您的系统和其他已安装的软件包。

相关内容