使用したい仮想マシンがあります。 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 --version gcc(GCC) 4.1.2 20080704(Red Hat 4.1.2-51)
答え1
DpkgはDebianとDebianのようなディストリビューションで使用するように設計されています。他のシステムでコンパイルするのは難しいかもしれませんが、とにかく効率的に使用することはできません。さらに、2.6.18のカーネルバージョンはかなり古く(CentOS 5の臭いがします)、dpkgの以前のバージョンのみが機能する可能性があります。
gcc --version gcc(GCC) 4.1.2 20080704(Red Hat 4.1.2-51)
したがって、Red Hatディストリビューションがあります。RHELまたはCentOSなどの再パッケージです。 Red Hatディストリビューションの基本パッケージ操作ツール(dpkgと同じ)は次のとおりです。回転速度。高度なパッケージ操作ツール(apt-getと同じ)はまあ。
Linux コンピュータが実行されているディストリビューションを確認するためのより体系的なアプローチについては、次を参照してください。展開名を効率的に決定するスクリプトを作成するにはどうすればよいですか?。運が良ければlsb-release -si
答えが与えられます。それ以外の場合、/etc/*release*
またはなどの指示ファイルを見つけます/etc/*version*
。
答え2
すべての依存関係、特にGCCをインストールしましたか?
unrecognized command line option "-Wvla"
GCCがないようです。、またはバージョンが十分に新しくない。
正確にどのシステムを実行していますか(distro、バージョン...)?
PS:Debian/barebones以外のLinuxシステムにdpkgをインストールし、Debianがインストールしないのはなぜですか?