dpkg は解凍するだけでインストールできません。なぜですか?

dpkg は解凍するだけでインストールできません。なぜですか?

を使用してdpkg -bパッケージを作成しようとしています。パッケージディレクトリ構造は次のとおりです。

ubuntu@ip-10-241-62-56:~/USB_RnD_DEB/BACKUP/usblinux1.1$ tree
.
├── DEBIAN
│   └── control
└── usr
    ├── bin
    │   └── usblinux-runner.sh
    └── share
        └── usblinux
               |-->installer.sh
               |--> LOTS AND LOTS OF FILES

これは、usblinux-runner.sh以下を含む小さなシェルスクリプトで構成されています。

#!/bin/bash
echo "Installing the USB REDIRECTOR as Client !"
echo "-----------------------------------------"
sudo apt-get update
sudo apt-get install build-essential
sudo /usr/share/usblinux/./installer.sh install-client

今これはパッケージで提供されます。

ubuntu@ip-10-241-62-56:~/USB_RnD_DEB/BACKUP$ sudo dpkg -b usblinux1.1/
dpkg-deb: building package `usblinux' in `usblinux1.1.deb'.
ubuntu@ip-10-241-62-56:~/USB_RnD_DEB/BACKUP$ ls
usblinux1.1  usblinux1.1.deb

今これはうまくいきます。パッケージをインストールするときに解凍し、usblinux-runner.sh を/usr/bin&usblinux に入れます。/usr/bin/share

usblinux-runner.sh ファイルをインストールまたは実行しません。解凍してシェルスクリプトを実行していませんでしたが、コンソールに何の出力も表示されませんでした。

sudo dpkg -i usblinux1.1.deb 
Selecting previously unselected package usblinux.
(Reading database ... 82106 files and directories currently installed.)
Preparing to unpack usblinux1.1.deb ...
Unpacking usblinux (1.1) ...
Setting up usblinux (1.1) ...

誰かが問題を特定するのに役立ちますか?

ベストアンサー1

これは正常な現象です。デフォルトでは、インストールパッケージはバイナリを実行しません(そうでなければe2fsprogsインストールするのがどれほど楽しいか想像してみてください!)。

usblinux-runner.shパッケージのインストール後にスクリプトが自動的に実行されるようにするには、以下を追加する必要があります。postinstスクリプト、実行されますusblinux-runner.sh。注意することがあります。管理者スクリプトでは他のパッケージをインストールできないため、この行をapt-get削除する必要があります。でも大丈夫です。依存関係(パッケージが依存する)を宣言する正しい方法は、build-essential制御ファイル内の項目でそれを宣言することです。これらすべてを念頭に置いてスクリプトを実行することをお勧めDepends:します。postinst

/usr/share/usblinux/installer.sh install-client

あなたはここにいる必要はありませんsudo。とにかく管理者スクリプトが実行されますroot

おすすめ記事