`dpkg`なしでDebianパッケージファイルを開く

`dpkg`なしでDebianパッケージファイルを開く

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あります。Macポートなぜなら、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ますbzip2xz.deb

関連情報