2017-03-15 8 views
0

私はLinuxパッケージを初めて使用しています。私はプログラムをdebrpmパッケージに梱包しています。私は助けにfpmを使用しています。私は、設定ファイルが自動的に更新されるように、インストール終了時にAPIキーを入力する必要があります。rpmパッケージに--after-installを指定してrpmを作成するとエラーが発生します

#!/bin/bash 
set -e 

read -p 'Please enter your API key(skip this step by just press ENTER): ' apikey_var 
if [[ ! -z $apikey_var ]] 
then 
    echo "The API key is set. You could always change it by editing /etc/agent/process-collector.ini file" 
    sed "s/sample_apikey/$apikey_var/" /etc/agent/process-collector.ini.example > /etc/agent/process-collector.ini 
else 
    echo "You didn't enter any API key, you could always add it by editing /etc/agent/process-collector.ini file" 
    mv /etc/agent/process-collector.ini.example /etc/agent/process-collector.ini 
fi 

と、私はこのスクリプトを含めるために、FPMの--after-installフラグを使用しています:私はこの部分が含まれているblah.postinstファイルを持っています。

これはdebパッケージのために動作しますが、私はrpmパッケージを作成し、それをインストールしようとするFPMを使用した後、ラインread -p 'Please enter your API key(skip this step by just press ENTER): ' apikey_varは(私が思う)エラーが得られます。

warning: %post(process-agent-0.99.0-1.x86_64) scriptlet failed, exit status 1 
Non-fatal POSTIN scriptlet failure in rpm package dd-process-agent-0.99.0-1.x86_64 

私はblah.postinstでそのコードを想像手動でrpmパッケージを作成すると、スクリプトはspecファイルの%postセクションに収まりますが、何が問題になるか分かりません。誰でもこれを助けることができますか?あるいは、少なくとも私はどのようにこれをデバッグするのですか?ありがとう。

答えて

1

これはこれまで説明しました。 rpmは、自動となるように設計されています。 ではありません。は、端末が対話することを期待しています。別のセッション(anacondaまたはpuppetなど)にある可能性があります。それはバックグラウンドかもしれない。それはcronの仕事かもしれない。最初の実行時に情報を収集するか、「スタートガイド」ガイドに記載されているスクリプトを実行させます。

+0

涼しいですが、それをよく知っている人からの声があるのは常に良いことです。 –

関連する問題