2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

sudoでasdfをインストールしてハマった話(権限エラー)

Posted at

経緯

asdfをインストールする際、うっかり sudo を使ってしまいました。
.bashrcにPATHを通した後、その場では特にエラーもなく進んだのですが、後々プラグイン追加時に以下のようなエラーが出て気づきました。

エラーメッセージ

$ sudo asdf plugin add nodejs https://github.com/asdf-vm/asdf-nodejs.git
sudo: asdf: command not found

$ asdf plugin add nodejs https://github.com/asdf-vm/asdf-nodejs.git
mkdir: cannot create directory ‘/home/ユーザ名/.asdf/plugins’: Permission denied
fatal: could not create leading directories of '/home/ユーザ名/.asdf/plugins/nodejs': Permission denied

原因

sudoでasdfをインストールしたため、.asdfディレクトリ以下の所有者が root になっていました。asdfは一般ユーザの環境でコントロールすべきツールなので、本来 sudo は不要です。

ちなみに…

$sudo asdf
$asdf

が両方とも機能したのは、間違って作った.asdf/のパーミッションが-rwxr-xr-xでその他グループにもxがあるからでした。

ただプラグインとなると、rootが所有者なので一般ユーザでは書き込み(ディレクトリ作成)できず失敗。
またsudoコマンドは効かないのは、PATHを通した.bashrcは一般ユーザで通したから。

解決方法

所有グループ, 所有者を自分のユーザに変更してあげればOK

$sudo chgrp -R $(whoami) ../.asdf
$sudo chown -R $(whoami) ../.asdf

感想

  • 作業は丁寧に。開発環境のセットアップ時は、つい sudo で強引に進めてしまいがちですが、後々のトラブルの元になるので要注意でした(自戒)
2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?