web-dev-qa-db-ja.com

Umake-ホームディレクトリの外部にインストールするときに許可が拒否される(rootとしても)

Umakeを使用してfirefox-devをインストールしようとしています。デフォルトでは、umakeのインストールパスは~/.local/share/です。 /usr/local/または/opt/でしたかったです。

問題は、ファイル/ディレクトリを作成する権限がないumake(または、実行されるos.pyスクリプト)のようです-これは、Sudoを使用して管理者ユーザーとして実行している場合でも発生します。 'Sudo -iを使用してrootユーザーに切り替えました。

関連するエラーの例を次に示します。

    os.makedirs(self.install_path, exist_ok=True)
  File "/usr/lib/python3.5/os.py", line 231, in makedirs
    makedirs(head, mode, exist_ok)
  File "/usr/lib/python3.5/os.py", line 241, in makedirs
    mkdir(name, mode)
PermissionError: [Errno 13] Permission denied: '/opt/umake'

/ home /ディレクトリの外でumakeを使用してバイナリをインストールする方法はありますか?

編集:コマンドの実行に異常はありません-Sudo umake web firefox-dev。どこで実行してもかまいません。

インストールパス(インストール試行中にプロンプ​​トに入力される)については、明示的に宣言された絶対パス(最終的に、そして当然のことながら、エラーメッセージをファイル作成に戻すプッシュリーを自分で作成することを含む)からすべてのオプションをもう一度試しましたターゲットディレクトリで「./」を使用します。

Rootとして自分で何かをすることにはまったく問題はありませんが、これらの権限はpythonインストールスクリプトに継承されていないようです。

1
chrBrd

さて、これはUbuntu Makeでの(かなり長年の) issue であることがわかりました。

上記のリンクの開発者の1人が提案する回避策がいくつかあります。

最初の(推奨)ソリューション:

Sudo -s
unset Sudo_UID
unset Sudo_GID

次に、umakeを実行して、通常どおりアプリケーションをインストールします。これで、任意のディレクトリにインストールできるようになります。完璧に動作します。

2番目のオプションは、目的のインストールフォルダーを事前に作成し、非ルートユーザーが書き込むことができるようにインストールディレクトリのアクセス許可を設定することですが、アクセス許可が再帰的に適用され、umakeであっても、一部のアプリケーションでこれを使用すると問題が発生しましたSudoを使用して実行されました。最初の方法に固執します。

2
chrBrd