사용하려는 가상 머신이 있습니다. 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, 버전...)?
추신: Debian/barebones가 아닌 Linux 시스템에는 dpkg를 설치하고 Debian은 설치하지 않는 이유는 무엇입니까?