GNU/Linux >> Linux の 問題 >  >> Debian

システムにすでにインストールされているDebianバイナリパッケージを再作成する

この簡単なガイドでは、 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パッケージを変換する方法

Debian
  1. Ubuntu /DebianLinuxでDEBパッケージによってインストールされたすべてのファイルを一覧表示する方法

  2. Debian /UbuntuLinuxシステムにインストールされているすべてまたは特定のパッケージを一覧表示する方法

  3. UbuntuとDebianにインストールされているリポジトリを一覧表示する方法

  1. Debian(.deb)パッケージをインストールするさまざまな方法

  2. Debian –インストール日ごとにAptベースのシステムのパッケージを一覧表示しますか?

  3. Debian –依存関係のないトップレベルの手動インストールパッケージを一覧表示しますか?

  1. Debian – Debianにはデフォルトでどのパッケージがインストールされていますか?そのセットの用語はありますか?これらのパッケージの一部が「自動的にインストール」され、一部がインストールされないのはなぜですか?

  2. Debian –すでに実行中のシステムのプラグイン時にUSBデバイスを自動的にマウントする方法は?

  3. Debian – 32ビット(x86)のDebianベースのシステムを64ビットに変換する方法は?