この簡単なガイドでは、 dpkg-repack
と呼ばれる便利なユーティリティを紹介します。 、これは、debianベースのシステムにすでにインストールされているDebianバイナリパッケージを再作成するために使用されます。
dpkg-repackとは何ですか?
このシナリオを想像してください。 Debianベースのシステムにいくつかのパッケージをインストールしました。また、同じパッケージを別のシステムにインストールしたいとします。しかし、バイナリアーカイブ、つまりdebファイルを失いました。公式ウェブサイトまたはリポジトリから再度ダウンロードしますか?
特定のパッケージの特定のバージョンが他の場所で利用できなくなった場合はどうなりますか?心配ない!これらはすでにシステムにインストールされているため、.deb
を簡単に再作成できます。 ファイル。 dpkg-repack
に挨拶します !
dpkg-repack
は、システムにすでにインストールされているDebianバイナリパッケージを再作成するためのコマンドラインDebianパッケージアーカイブツールです。
簡潔に言うと、dpkg-repack
ユーティリティは.deb
を作成できます システムにすでにインストールされているdebianパッケージからファイルを取り出します。
dpkg-repack
ユーティリティは、必要な多くの状況で役立ちます。
-
.deb
を再作成します インストールされている既存のDebianパッケージのファイル - あるシステムから別のシステムにパッケージを簡単にコピーします。
- アップグレードする前に、パッケージの現在の状態を保存してください。
- 将来の使用に備えて、パッケージの特定のバージョンをバックアップします。
- ダウンロードできなくなった特定のパッケージを保存します。
Debian、Ubuntu、および派生物にdpkg-repackをインストールします
dpkg-repack
Debian、Ubuntu、およびそのバリアントのデフォルトのリポジトリで利用できます。 dpkg-repack
をインストールするには 、次のコマンドを実行するだけです:
$ sudo apt install dpkg-repack
dpkg-repackを使用してDebianバイナリパッケージを再作成します
1.このガイドでは、MicrosoftTeamsアプリケーションを使用します。 少し前にUbuntuデスクトップにインストールしました。
$ dpkg -l | grep teams
出力例:
ii teams 1.3.00.5153 amd64 Microsoft Teams for Linux is your chat-centered workspace in Office 365.
teams.deb
はもうありません ファイル。 MicrosoftTeamsアプリケーションをインストールした直後に削除しました。公式ダウンロードページにアクセスして、もう一度ダウンロードできます。しかし、なぜそれを何度もダウンロードする必要があるのでしょうか?これで、teams.deb
を簡単に再作成できます dpkg-repackを使用したファイル。
2. teams.deb
を作成するには dpkg-repack
を含むインストール済みのteamsパッケージのファイル ユーティリティ、実行:
$ dpkg-repack teams
出力例:
dpkg-deb: building package 'teams' in './teams_1.3.00.5153_amd64.deb'.
ご覧のとおり、上記のコマンドは"teams_1.3.00.5153_amd64.deb'"
を再作成しました。 UbuntuデスクトップにすでにインストールされているTeamsパッケージのファイル。新しく作成されたdebファイルは、現在の作業ディレクトリに保存されます。
同様に、インストールされているDebianパッケージを.deb
に戻すことができます。 dpkg-repack
を使用したパッケージ ユーティリティ。
3.スペースで区切られた複数のdebファイルを再作成することもできます:
$ dpkg-repack <package1> <package2> <package3>
4.権限の問題が原因でdebファイルを再構築できない場合は、 fakerootから試してください。 以下のような環境:
$ fakeroot -u dpkg-repack teams
dpkg-repackユーティリティの興味深い機能の1つは、パッケージの解凍中にパッケージに変更が加えられた場合(つまり、/ etc内のファイルが変更された場合)、新しいパッケージが変更を継承することです。
debファイルの内容を表示する
ステップ1: 次のコマンドを使用して、そのdebファイルの内容を表示できます。
$ dpkg --contents teams_1.3.00.5153_amd64.deb
出力例:
drwxr-xr-x root/root 0 2020-05-26 15:15 ./ drwxr-xr-x root/root 0 2020-05-26 15:15 ./usr/ drwxr-xr-x root/root 0 2020-05-26 15:15 ./usr/bin/ -rwxr-xr-x root/root 286 2020-02-20 16:46 ./usr/bin/teams drwxr-xr-x root/root 0 2020-05-26 15:15 ./usr/share/ . . . drwxr-xr-x root/root 0 2020-05-26 15:15 ./usr/share/teams/swiftshader/ -rwxr-xr-x root/root 286264 2020-02-20 16:46 ./usr/share/teams/swiftshader/libEGL.so -rwxr-xr-x root/root 2677296 2020-02-20 16:46 ./usr/share/teams/swiftshader/libGLESv2.so -rwxr-xr-x root/root 114964776 2020-02-20 16:46 ./usr/share/teams/teams -rw-r--r-- root/root 1040912 2020-02-20 16:46 ./usr/share/teams/v8_context_snapshot.bin
ステップ2: dpkg-repackは、同じパッケージのセットを複数のシステムにインストールする場合に便利です。外付けハードドライブまたはLAN経由で他のシステムに転送し、dpkgコマンドを使用してインストールするだけです。
$ sudo dpkg -i <package-name>
ステップ3: 依存関係をダウンロードする必要があることに注意してください。依存関係をインストールするには、次を実行します:
$ sudo apt-get -f install
または、次のリンクで説明されているように、パッケージの依存関係を見つけることができます。
- Linuxでパッケージの依存関係を一覧表示する方法
次に、dpkg-repack
を使用してそれらすべてを再作成します 上記のように。
ステップ4: これは、パッケージを以前の作業バージョンにロールバックする場合にも役立ちます。たとえば、Vim
をアップグレードしたとしましょう。 新しい利用可能なバージョンへのパッケージ。新しいバージョンが期待どおりに機能しない場合は、dpkg-repack
を使用して以前に作成した古いバージョンにロールバックするだけです。 。
詳細については、manページを参照してください:
$ man dpkg-repack
関連記事:
- ソースからDebianパッケージを構築する方法
- CheckInstallを使用してソースからパッケージを構築する方法
- エイリアンを使用してLinuxパッケージを変換する方法