私は64ビットのCentos 5 Linuxを使用しています。これは Python2.4 に付属していますが、psycopg2 を取得するには 2.6 以降が必要でした。Python2.7.3 を実行するための仮想環境をインストールしました (このhttp://toomuchdata.com/2012/06/25/how-to-install-python-2-7-3-on-centos-6-2/に基づく) ) root としてログインすると、問題なく動作するようになりました。
しかし、root 以外のユーザーである joshmoe として virtualenv を使用できるようにする必要があります。(そして、この別のユーザーとして postgresql を開始/停止します)
virtualenv に入るコマンドは次のとおりです。
source /root/Python-2.7.3/projectdir/bin/activate
当然のことながら、このコマンドを joshmoe として実行すると、許可が拒否されたというメッセージが表示されます。
-bash: /root/Python-2.7.3/projectdir/bin/activate: Permission denied
このコマンドを joshmoe で使用できるようにするために、/etc/sudoers を編集して次の行を含めました。
joshmoe ALL=NOPASSWD: /root/Python-2.7.3/projectdir/bin/activate
joshmoe ログインから実行すると、次のようになります。
sudo source /root/Python-2.7.3/projectdir/bin/activate
私は以下を取得します:
sudo: source: command not found
このファイルのソースを指定するためにsudoersファイルを正しく使用していないことは明らかです-その「アクティブ化」ファイルへのアクセスを正常に許可しているようですが、組み込みのソース機能にはアクセスしていないようです。次の行のいずれかで、sudoers で構文エラーが発生します。
joshmoe ALL=NOPASSWD: source
joshmoe ALL=NOPASSWD: source /root/Python-2.7.3/projectdir/bin/activate
私は身震いする声明の良い例をたくさん見つけました。しかし、これを機能させる構文がわかりません。これを入手したら、'service postgresql status' などのステートメントにアクセスできるようになることを願っています。