何故か今日も redmine の postinst を掘っている件

むむむ。なんか微妙なことやってて整理しなきゃいけないので、ってことで。

順に確認

fRails* な変数について、ってことで順に。

変数宣言

以下。

fRailsEnv=production
fRailsLog=/var/log/redmine
fRailsVar=/var/lib/redmine
fRailsCache=/var/cache/redmine
fRailsDir=/usr/lib/ruby/vendor_ruby/rails

ちなみに直上で redmine/old-instances について繰り返して以下なナニをしてますね。

    if which ucf >/dev/null 2>&1; then
        ucf --purge /etc/redmine/$lInstance/database.yml
        ucf --purge /etc/redmine/$lInstance/email.yml
        ucf --purge /etc/redmine/$lInstance/session.yml
    fi
    rm -rf /etc/redmine/$lInstance

そりゃ良いとして、/var/*/redmine なナニは debian/dirs に定義されてて導入時に mkdir されてるはず。で、configure ないし reconfigure 時に権限付けてます。

case "$1" in
    configure|reconfigure)
        # passenger runs as the owner of that file, thanks Micah Anderson.
        chown www-data:root /usr/share/redmine/config/environment.rb
        chown -f www-data:www-data $fRailsLog
        chown -f www-data:www-data $fRailsVar
        chown -f www-data:www-data $fRailsCache

次。こんどは redmine/current-instances なループで以下。

db_get redmine/current-instances || true
gInstances="${RET}"
for lInstance in $gInstances; do
    fRailsEtc=/etc/redmine/$lInstance
    fRailsLog=/var/log/redmine/$lInstance
    fRailsVar=/var/lib/redmine/$lInstance
    fRailsCache=/var/cache/redmine/$lInstance
    # dbconfig needs this folder to ouput database.yml
    mkdir -p $fRailsEtc
    chown -f www-data:www-data $fRailsEtc

/etc/redminedebian/dirs に記述があります。ただ、上記で列挙されているディレクトリについては基本的に自分で掘って権限付ける必要がある模様。例えば /etc/redmine/default の中に database.yml とかを投入していく模様。ucf で云々してるのは基本的に fRailsEtc 配下の *.yml について、という形になっております。