JythonでPythonスクリプトを実行します。PythonスクリプトをJythonで実行すると "sys-package-mgr *:パッケージキャッシュディレクトリを作成できません"
正しく結果のショーが、同時に警告メッセージ、そこにある「SYS-パッケージ-MGR *は:キャッシュディレクトリのパッケージを作成することはできません」
どのように私はこの問題を解決するだろうか?
JythonでPythonスクリプトを実行します。PythonスクリプトをJythonで実行すると "sys-package-mgr *:パッケージキャッシュディレクトリを作成できません"
正しく結果のショーが、同時に警告メッセージ、そこにある「SYS-パッケージ-MGR *は:キャッシュディレクトリのパッケージを作成することはできません」
どのように私はこの問題を解決するだろうか?
1 ~~~事前に
おかげで)エラーメッセージにディレクトリへの書き込みを許可するアクセス権を変更することにより。 python.cachedir.skip = true
を設定することにより
2)あなたはこれを読むことができます。
をさらに洞察するために。
ディレクトリを書き込み可能にすると、問題は「遠ざかりますが」、大きなセキュリティホールが発生します。誰でも今の世界の書き込み可能なディレクトリに、ユーザーのjpython環境で実行されるコードを導入することができます。
cachedirをスキップするように設定すると、パフォーマンスが低下することがあります(パフォーマンスを向上させる以外のキャッシングスキームを実装する理由)。
代わりに、私は次のことをやった:
私は新しいグループを作成(私の場合の日食では、それはJPythonのだったかもしれません)。私はそのグループにjpythonのユーザーを追加しました。
$ sudo groupadd eclipse
私はEclipseのプラグインフォルダとその子どものグループを 'eclipse'に変更しました。
/opt/eclipse/plugins $ sudo chgrp -R eclipse *
は
/opt/eclipse/plugins $ sudo chmod -R g+w *
/opt/eclipse/plugins $ find * -type d -print | sudo xargs chmod g+s
この追加されたグループを書き込み可能に以下のようにI、グループの権限を変更し、再帰的にすべてのディレクトリにS_GIDビットを設定します。この最後のビットは、作成された新しいディレクトリに、同じグループIDをその親として持つようにします。
最後の仕上げは、ユーザーが(022)から007に007
$ sudo vi /etc/login.def
変化UMASKに設定Eclipse用のumaskを変更しました。 UMASK = 007
あなたは例えば、あなたがjythonのを起動するときに「python.cachedir」オプションを設定することでへ&書き込みアクセスを読んでいる場所にキャッシュディレクトリの場所を変更することができます。
jython -Dpython.cachedir=*your cachedir directory here*
または:
java -jar my_standalone_jython.jar -Dpython.cachedir=*your cachedir directory here*
あなたはPythonについて読むことができます。ここCACHEDIRオプション: http://www.jython.org/archive/21/docs/registry.html
私がこれまでに行うことがわかった最も簡単な修正:
$ sudo chmod -R 777 /opt/jython/cachedir
私は、本番環境でこの答えを使って、誰を警告します。あなたのキャッシュを使って猿にローカルアクセスできる人を招待するので、権限を書き込み可能に設定しないでください。潜在的な悪用のようだ! – Carl