
数日間そこにいましたが、もう少し経験のあるアドバイスをもらう時期が来たと思います。
私は Perl アプリケーションをパッケージ化しようとしていますが、そのファイルはすべて/var/www/<packagename>
システム上のディレクトリに配置する必要があります。
これまでのところ、パッケージをビルドすることはできましたが、このディレクトリにファイルが配置されず、その方法に関する簡潔な方法も読んでいません。
現時点では、私のパッケージは lintian の警告を除けば適切にビルドされていますが、主に dh_make のテンプレート ファイルを使用していることが原因です。適切に動作するようになったら更新します。
基本的に、今のところ私の構造は次のようになっています:
ls:
packagedirectory-1.0
- debian directory with control/copyright/rules/ ...
- directory belonings to app
- directory belonging to app
- files belonging to app
package)1.0-1.tar.gz
私は
dpkg-buildpackage -us -uc
(今は署名していませんが、適切にビルドされたら署名します)パッケージディレクトリからこれを実行します。これにより.deb
、、、、およびが出力されます.changes
。.orig.tar.gz
.dsc
/var/www/<packagename>
どなたか助けていただければ幸いです。繰り返しますが、ここで私が抱えている主な問題は、インストール時にアプリのファイル/ディレクトリを配置したいということです。
答え1
Debian パッケージは /var/www の下にファイルをインストールすべきではありません。これはファイル階層標準の /var ディレクトリの 1 つではなく、ローカル管理者の管理下にあります。パッケージは、これが Web サーバーのドキュメント ルートであると想定すべきではありません。ユーザーがデフォルトのドキュメント ルートを変更することは非常に一般的であり、パッケージはユーザーが特定の設定を保持すると想定すべきではありません。
インストールされた Web サーバー経由でファイルを利用できるようにするパッケージでは、代わりに README.Debian ファイルにローカル管理者向けの手順を記載し、理想的には Apache などの一般的な Web サーバーの設定フラグメントを含める必要があります。
phpldapadmin (人気の PHP ベースの LDAP 管理ツール) には、/etc/apache2/conf.d/ に含めるファイルと 2 つのオプションが付属しています。
# Option 1: Define /phpldapadmin alias, this is the default
<IfModule mod_alias.c>
Alias /phpldapadmin /usr/share/phpldapadmin/htdocs
</IfModule>
# OR Option 2: You can also use phpLDAPadmin as a VirtualHost
<VirtualHost *:*>
ServerName ldap.example.com
ServerAdmin [email protected]
DocumentRoot /usr/share/phpldapadmin/htdocs
ErrorLog logs/ldap.example.com-error.log
CustomLog logs/ldap.example.com-access.log common
</VirtualHost>
#Then define the directory options like default index, access control etc.
<Directory /usr/share/phpldapadmin/htdocs/>
DirectoryIndex ...
...
</Directory>
この例に従うと、/var/www/yourpackageに表示したいファイルを/usr/share/yourpackage/htdocsにインストールし、編集します。あなたのそれに応じて、含まれている apache conf を変更します。次に、含まれている apache conf スニペットを /usr/share/doc/yourpackage/examples/ に保存するか、パッケージとともに /etc に直接インストールします。README.Debian (同じ doc ディレクトリ内) に、ユーザーが /etc/yourapp.conf または /etc/yourapp/apache.conf を /etc/apache2/conf.d/yourapp.conf にリンクして Apache を再起動するように指示を追加します。
答え2
最終的に、次の情報を使用しました。https://stackoverflow.com/questions/3214319/i-need-my-debian-rules-file-to-simply-copy-files-to-its-target質問です。これはないパッケージを外部で使用する場合、/var/www ファイルにファイルを配置する適切な方法 - これは、内部で使用されるパッケージであるため、私の場合は機能します。
参照してください過剰処方のコメントこれに関しては、非常に詳細な情報が含まれているにもかかわらず、実際の質問には答えず、単にそうすべきではないことと回避策を述べているだけだったので、受け入れられませんでした。