`dpkg` 없이 데비안 패키지 파일 열기

`dpkg` 없이 데비안 패키지 파일 열기

deb바이너리를 Linux에 설치한 바이너리와 비교하려면 MacOS High Sierra에서 Debian 패키지 파일을 열어야 합니다 .

사실 이 가방은mssql-server_14.0.3008.27-1_amd64.deb

명령 file이 말했다 Debian binary package (format 2.0).

tar x그리고 unzip작동하지 않습니다.

무엇을 해야 할까요?

답변1

실제 파일의 외부 레이어는 .deb실제로 ar아카이브입니다.

압축을 풀거나 열면 일부 파일이 생성되므로 디렉터리로 이동하는 것이 좋습니다.

$ mkdir debtmp
$ mv mssql-server_14.0.3008.27-1_amd64.deb 
$ cd debtmp

따라서 이를 여는 첫 번째 단계로 다음을 수행합니다.

$ ar xv mssql-server_14.0.3008.27-1_amd64.deb 
x - debian-binary
x - control.tar.gz
x - data.tar.xz

생성된 파일의 경우 debian-binary.deb 형식 버전만 포함됩니다.

$ cat debian-binary 
2.0

control.tar.gz사후/사전/설치 스크립트, 종속성 및 체크섬 파일을 포함한 apt/dpkg 정보가 포함되어 있습니다. 그래서 우리는 실제로 지금은 그것에 별로 관심이 없습니다.

$ tar -tvf control.tar.gz 
drwxr-xr-x  0 root   root        0 18 Nov 04:55 ./
-rw-r--r--  0 root   root      546 18 Nov 04:55 ./control
-rw-r--r--  0 root   root       25 18 Nov 04:55 ./shlibs
-rwxr-xr-x  0 root   root      383 18 Nov 04:55 ./preinst
-rwxr-xr-x  0 root   root      107 18 Nov 04:55 ./config
-rwxr-xr-x  0 root   root      289 18 Nov 04:55 ./postrm
-rw-r--r--  0 root   root        0 18 Nov 04:54 ./templates
-rwxr-xr-x  0 root   root      251 18 Nov 04:55 ./prerm
-rw-r--r--  0 root   root       60 18 Nov 04:55 ./triggers
-rwxr-xr-x  0 root   root      771 18 Nov 04:55 ./postinst
-rw-r--r--  0 root   root     6155 18 Nov 04:55 ./md5sums

data.tar.zx그렇다면 이 파일에는 구성 파일과 실행 파일이 포함되어 있으므로 이 파일에 더 관심이 있습니다 .

먼저 를 설치하고 xz사용해야 합니다.맥 포트, tar왜냐하면 우리는 .deb를 다루고 있기 때문입니다 .tar.xz.

sudo port install xz

.tar.gz참고: 이 내용은 여러분이 다루고 있는 댓글과 기타 .debs에서 제 관심을 끌었습니다. 하지만 macOS에서는 .tar.gz이 기능이 함께 제공되어 gunzip기본적으로 설치됩니다.bzip2

따라서 압축을 풀려면 다음을 수행하십시오.

$ tar xvf data.tar.xz 
x ./
x ./opt/
x ./opt/mssql/
x ./opt/mssql/bin/
x ./opt/mssql/bin/sqlservr
x ./opt/mssql/bin/crash-support-functions.sh
[snip]
x ./usr/share/doc/mssql-server/license_Std_Linux.txt.gz
x ./usr/share/doc/mssql-server/license_Eval_Linux_Chinese (Simplified).txt.gz
x ./usr/share/doc/mssql-server/license_Std_Linux_French.txt.gz
x ./lib/
x ./lib/systemd/
x ./lib/systemd/system/
x ./lib/systemd/system/mssql-server.service

마지막으로 모든 파일은 로컬 디스크에 배치되고 바이너리는 디렉터리에서 얻을 수 있습니다.opt/mssql/bin/

추가 참고 사항: @AustinHemmelgarn의 훌륭한 의견에 따르면 마지막 단계는 다른 파일 에서 압축되거나 압축 gzip되지 bzip2않을 수도 있습니다.xz.deb

관련 정보