Jython で Python スクリプトを実行したい。
結果は正しく表示されますが、同時に「sys-package-mgr*: パッケージ キャッシュ ディレクトリを作成できません」という警告メッセージが表示されます。
どうすればこの問題を解決できますか?
前もって感謝します~~~
1) エラー メッセージ内のディレクトリへの書き込みを許可するようにパーミッションを変更する。
2) 設定によるpython.cachedir.skip = true
これを読むことができます:
さらなる洞察のために。
これまでに見つけた最も簡単な修正は、次のことでした。
$ sudo chmod -R 777 /opt/jython/cachedir
ディレクトリを誰でも書き込み可能にすると、問題が「なくなる」ことは確かですが、巨大なセキュリティ ホールが発生します。誰でも、ユーザーの jpython 環境で実行される、誰でも書き込み可能なディレクトリにコードを導入できます。
cachedir を skip に設定すると、パフォーマンスが低下する可能性があります (パフォーマンスを向上させる以外にキャッシュ スキームを実装する理由)。
代わりに、次のことを行いました。
新しいグループを作成しました (私の場合は eclipse ですが、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
これにより、書き込み可能なグループが追加され、すべてのディレクトリに S_GID ビットが再帰的に設定されました。この最後のビットにより、作成された新しいディレクトリは、親と同じグループ ID を持つようになります。
最後の仕上げは、Eclipse ユーザーの umask を 007 に変更することでした。
$ sudo vi /etc/login.def
UMASK を 007 に変更します (022 から)。UMASK=007