Debianパッケージルールでコマンドを実行しますか?

Debianパッケージルールでコマンドを実行しますか?

私はこれで説明されているものと似たようなことをしようとしています。Q&A、私が使用することを除いてsetfacl

私は以下を持っていますdebian/rules

...
override_dh_fixperms:
    dh_fixperms
    setfacl -m u:applicationX:rw /etc/NetworkManager/

このパッケージはJenkinsサーバー上に構築されました。エラーを返します。

make[2]: setfacl: Command not found

このコマンドはインストールプロセス中に実行されると予想していましたが、パッケージがインストールされているデバイスでは、ビルドプロセス中にコマンドがsetfaclJenkinsサーバーで実行されるようです。

上記の作業を行う方法を誤解しましたか?ターゲットコンピュータで実行できるルールはありますか?

また、変更されるファイルは私のパッケージ自体の一部ではありません。

ベストアンサー1

パッケージのビルド中はACLを保存できません。パッケージをインストールした後、これを行う必要がありますpostinst。これを行うには、postinstディレクトリdebianにファイルを作成し、setfaclその中にコマンドを追加します。また、ファイルaclに依存関係を追加する必要がありますcontrol

あなたのパッケージが属していないという事実は、/etc/NetworkManager面倒をさらに重み付けます。しかし、あなたのパッケージはDebianアーカイブにアップロードされる運命ではないようです。 ACLファイルを削除して再作成することは可能です/etc/NetworkManagerが、実際にはそうする可能性はほとんどありません。

おすすめ記事