カスタムアプリケーションをインストールするためのdebパッケージを作成しています。インストール中に警告が表示されないように、すべてのファイル/フォルダの所有権をrootに変更し、Ubuntuがファイル/フォルダの所有権をパッケージをインストールしたユーザーに変更したため、Ubuntuですべてがスムーズに機能しました。
しかし、Debianにインストールすると、ルートは依然として所有者です。アプリケーションはフォルダを使用してデータを書き込むのに問題があります。標準ユーザーとして実行されているアプリケーションには、このフォルダに書き込む権限がありません。
では、この問題をどのように処理するのですか?以下を実行するdebパッケージにインストール後にスクリプトを作成する必要がありますかchmod o+w
?すでにこれらの権限が設定されているディレクトリをパッケージ化する必要がありますか?
それとも(Ubuntuのように)アプリケーションを自動的にインストールしたユーザーにファイル所有者を設定する方法はありますか?
答え1
Ubuntuでは何が起こるのかわかりませんが、通常は.deb
非標準の権限を持つファイルまたはディレクトリを含むパッケージの場合は、その権限が設定されていることを確認する必要があります。後ろに dh_fixperms
ランニング。dh
-styleを使用すると、rules
次のようにこれを実行できます。
override_dh_fixperms:
dh_fixperms
chmod 777 yourfolder
または
execute_after_dh_fixperms:
chmod 777 yourfolder
次のサイトでもこれを行うことができますpostinst
。
if [ "$1" = "configure" ]; then
chmod 777 yourfolder
fi
しかし、rules
方法はより簡単です。 (少なくともメンテナンススクリプトに頼るよりもこの方法を好む。)
答え2
私はコメントする資格がないので、別の答えを差し上げます。
dh_installdirsを使用してディレクトリを作成しましたが、「override_dh_fixperms」または最新の「execute_after_dh_fixperms」ルールを機能させることはできません。 「https://manpages.debian.org/testing/debhelper/dh.1.en.html」に従って、「debian/<package_name>/path/to/dir」を含むさまざまなパスを試しました。
最終的に唯一の効果があったのは、「postinst」スクリプトを提供することでした。 「ルール」で権限を指定することを好むが、時には必要に応じて行う必要がある場合もあります。