Linux deb パッケージの解凍、変更、その他の操作方法のコード例

Linux deb パッケージの解凍、変更、その他の操作方法のコード例

さまざまな理由により、debパッケージ内のさまざまなファイルの内容を直接変更する必要がある場合があります。

対処する必要がある主な問題は 3 つあります。

0. deb パッケージ ファイルを解凍するにはどうすればいいですか?

1. 変更するファイルを変更しますか?

2. 変更されたコンテンツの deb パッケージを生成しますか?

解凍コマンドは

#パッケージ内のファイルを抽出ディレクトリに解凍します

lin@lin-host:~/Desktop/100 を再起動してツール$ ls
LongTestTools.sh loong-test-s2s3_1.0.0-2_all.deb readme.txt
lin@lin-host:~/Desktop/100 回ツールを再起動します$ dpkg -X loong-test-s2s3_1.0.0-2_all.deb を抽出します/
./
./usr/
./usr/bin/
./usr/bin/BootReplace.sh
./usr/bin/BootTest.sh
./usr/bin/LongTestTools.sh
./usr/bin/RebootReplace.sh
./usr/bin/RebootTest.sh
./usr/bin/SleepTest.sh
./usr/bin/SuspendTest.sh
lin@lin-host:~/Desktop/100 を再起動してツール$ ls
LongTestTools.sh loong-test-s2s3_1.0.0-2_all.deb readme.txt を抽出します。
lin@lin-host:~/Desktop/100 再起動ツール$ツリー抽出/
抽出する/
└── ユーザー
  └──ビン
    ├── BootReplace.sh
    ├── BootTest.sh
    ├── LongTestTools.sh
    ├── RebootReplace.sh
    ├── 再起動テスト.sh
    ├── スリープテスト.sh
    └── SuspendTest.sh

# パッケージ extract/DEBIAN/ の制御情報を抽出します:

lin@lin-host:~/Desktop/100 回ツールを再起動します$ dpkg -e loong-test-s2s3_1.0.0-2_all.deb extract/DEBIAN/ 
lin@lin-host:~/Desktop/100 再起動ツール$ツリー抽出/
抽出する/
├── デビアン
│ ├── コントロール
│ └── md5sums
└── ユーザー
  └──ビン
    ├── BootReplace.sh
    ├── BootTest.sh
    ├── LongTestTools.sh
    ├── RebootReplace.sh
    ├── 再起動テスト.sh
    ├── スリープテスト.sh
    └── SuspendTest.sh

3 つのディレクトリ、9 つのファイル

#ファイルを変更する

vi で抽出/usr/bin/BootTest.sh

変更したコンテンツを再パッケージ化してdebパッケージを生成します

lin@lin-host:~/Desktop/100 ツールを再起動します$ dpkg-deb -b extract/ 
dpkg-deb: 新しいソフトウェア パッケージ loong-test-s2s3 を作成しています。パッケージ ファイルは extract.deb です。
lin@lin-host:~/Desktop/100 を再起動してツール$ ls
抽出 extract.deb LongTestTools.sh readme.txt

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • IntelliJ IDEA リモート デバッグ Linux Java プログラム、ログを見るだけでなく問題を見つけます (推奨)
  • Linux で .so および実行ファイルがデバッグコンパイルされているかどうかを確認する方法 (必読)
  • Linux でソフトウェア tar.gz、rpm、deb をインストールする方法の詳細な説明
  • Debian 構成 JDK1.7 と Linux Java Helloworld
  • Debian Linux で ixgbe ドライバーをコンパイルしてインストールするチュートリアル
  • Debian Linux にパッケージがインストールされているかどうかを確認する方法
  • Windows および Linux での PHP コード デバッグ ツールである Xdebug の詳細なインストールと構成
  • Linux サーバー システム CentOS、uBuntu、Gentoo、FreeBSD、Debian の比較
  • Linux VPS セキュリティ設定 1: SSH ポートの変更 (CentOS/Debian)

<<:  Vue3 親子コンポーネントパラメータ転送における sync 修飾子の使用法の詳細な説明

>>:  IDEA で MySQL にリンクするとエラー 08001 が発生し、接続に成功した後にテーブルが表示されない問題と解決策

推薦する

シェルで文字列内のスペースや指定された文字を削除する方法

インターネット上には、正しい方法であっても、使用しても正しい結果が得られない方法が数多くあります。正...

MySQL 8.0 における非同期レプリケーションの 3 つの方法について簡単に説明します。

この実験では、空のデータベース、オフライン、オンラインの 3 つのモードで、1 つのマスターと 2 ...

HTML における iFrame タグの 2 つの使用法

最近、私は「ぶどうコレクション」というプロジェクトに取り組んでいます。簡単に言うと、Budou ペー...

JavaScript を使用してテーブル情報を追加および削除する

JavaScript 入門JavaScript は軽量なインタープリタ型の Web 開発言語です。言...

Dockerがログファイルを保存する場所の詳細な説明

目次ログはどこに保存されますか?コンテナ内のアプリケーションからのログを表示するDockerデーモン...

MySQLトランザクション処理の使用方法とサンプルコードの詳細な説明

MySQL トランザクション サポートは、MySQL サーバー自体にバインドされているのではなく、ス...

MySQLのkillがスレッドをkillできない理由

目次背景問題の説明原因分析シミュレーションする総括する背景日常の使用において、MySQL で個別また...

dubbo での Zookeeper リクエストのタイムアウト問題: mysql8.0.15 に接続する mybatis+spring の構成

ここ2日間Javaを復習するつもりなので、練習にdubboを使ってショッピングモールプロジェクトを書...

20個のJavaScriptワンラインコードを共有する

目次1. ブラウザのクッキーの値を取得する2. RGBを16進数に変換する3. クリップボードにコピ...

Kubernetes ポッドオーケストレーションとライフサイクルの詳細な説明

目次K8Sマスター基本アーキテクチャポッドオーケストレーションコンセプトPod オブジェクトのプロパ...

DockerにElasticsearch7.6クラスタをインストールしてパスワードを設定する方法

目次基本的な設定バージョンとDockerイメージについて始めるelasticsearch.ymlにつ...

MySQL における between の境界と範囲の説明

境界範囲間のmysql間の範囲は両側の境界値を含む例: 3 から 7 までの id は、id >...

Vue.js アプリケーションのパフォーマンス最適化分析 + ソリューション

目次1. はじめに2. Vue JS のパフォーマンス最適化が必要な理由は何ですか? 3. Vueの...

新しいウィンドウで開くジャンプメニュー、window.open の使い方の紹介

コードをコピーコードは次のとおりです。 <前> <div> <sele...