Manjaroのnvmでノードを実行中に問題が発生しました。 OSレベルのバグかもしれませんが、初心者なのでよくわかりません。

Manjaroのnvmでノードを実行中に問題が発生しました。 OSレベルのバグかもしれませんが、初心者なのでよくわかりません。

この質問はスタックオーバーフローの質問のようには見えないので、参加しようとしています。

問題:nvm installで実行されているNodeとnpmは正しく機能しますが、エラーが発生した場合は何も機能しません。これらのエラーはOSレベル(権限またはファイルの問題)にあると思われますが、回避策がわかりません。何が間違っているか(以下の情報が十分な場合)、または解決策がどこにあるのか(以下の情報が十分でないか、間違っている場合)を教えてください。

私はしばらくManjaroを使用してきましたが、まだLinuxを初めて使用しています。私は複数のNode.jsバージョンを管理するためにNVMを使用してきましたが、しばらく前に動作が停止しました。ただコンピュータを時々使用するのにノードの問題かと思っていましたが、今日入り、nvm/nodeを完全に削除して再インストールしました。その後、標準NUXTアプリケーションを起動しようとしましたが、失敗したため、OSレベルにあると思いました。

NVMをインストールしてからLTSノード(12.14)をインストールし、新しいnuxtプロジェクトを試しました。

npx create-nuxt-app test

すべての質問に答えると洗脳が始まります...多くの間違いがありますが、終了します...エラー例:

../lib/kerberos.cc: In static member function ‘static Nan::NAN_METHOD_RETURN_TYPE Kerberos::AuthGSSServerStep(Nan::NAN_METHOD_ARGS_TYPE)’:
../lib/kerberos.cc:802:44: error: no matching function for call to ‘v8::Value::ToObject()’
  802 |   Local<Object> object = info[0]->ToObject();
      |                                            ^
In file included from /home/un/.cache/node-gyp/12.14.0/include/node/node.h:63,
                 from ../lib/kerberos.h:4,
                 from ../lib/kerberos.cc:1:
/home/un/.cache/node-gyp/12.14.0/include/node/v8.h:2576:44: note: candidate: ‘v8::MaybeLocal<v8::Object> v8::Value::ToObject(v8::Local<v8::Context>) const’
 2576 |   V8_WARN_UNUSED_RESULT MaybeLocal<Object> ToObject(
      |                                            ^~~~~~~~
/home/un/.cache/node-gyp/12.14.0/include/node/v8.h:2576:44: note:   candidate expects 1 argument, 0 provided

node-gypはエラーが頻繁に発生するもののようで、npmページには「Node.js用のデフォルトプラグインモジュールをコンパイルするためのもの」と記載されていますが、これがまさにこれがOSレベルの問題だと思う理由です。

だからアプリケーションが設定されていますが、実行しようとすると

npm run dev

次のメッセージが表示されます。


> [email protected] dev /home/un/test
> nuxt

sh: /home/un//test/node_modules/.bin/nuxt: Permission denied
npm ERR! code ELIFECYCLE
npm ERR! errno 126
npm ERR! [email protected] dev: `nuxt`
npm ERR! Exit status 126
npm ERR! 
npm ERR! Failed at the [email protected] dev script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/un/.npm/_logs/2020-01-03T15_35_00_168Z-debug.log

node/npm/NUXT に慣れていない人のための注意: これは標準的な洗脳プロセスに過ぎません。ここにはカスタムコードはありません。これは多くの人がプロジェクトを開始するために使用したコードなので、なぜ機能しないのか理解できません(特に機能している場合)。

「権限の拒否」がユーザーアクセスの問題を意味しているかどうか疑問に思っていますが、確認する方法がわかりません。

システム更新を実行すると、最新のファイルに関するエラーも発生します。

助けてくれてありがとう。解決策がない場合は、少なくとも何が間違っているのか、どこで解決策を見つけることができるかについていくつかの提案を提供してください。

追加情報が必要な場合はお知らせください。

追加する他のタグが何であるかわかりませんか?文書エラー、洗脳、更新の問題

編集:ファイル権限:.nvm/versions/v12.14.0のノードは-rwxr-xr-x、npmとnpxはlrwxrwxrwx、-rwxr-xr-xを使用して実際のnpmに接続しますが、実際のnpxはis -rw- r --r-- (ユーザー実行可能ファイルはありません) しかし、私はこれを変更したことがなく、私が言ったように動作しました。 node_modulesのすべてのフォルダにはdrwxr-xr-xがあります。 1つのフォルダを見ると、jsファイルは-rw-r--r--です(しかしJavaScriptなので、実行する必要はないと思います...

Edit2:ちょうどnode_modulesフォルダに.binフォルダがなく、nuxtフォルダもまったくないことがわかりましたが、「許可拒否」ではなく、ファイルが見つからないというエラーだと思いました。

chmod 775 -R node_modulesその後、ビルドをやり直してください。今回は.binファイルを作成しましたが、リンクがlrwxrwxrwxで、元のファイルが-rwxrwxr-xであったにもかかわらず、webpack(node_modules/.bin/webpack:権限が拒否されました)ではまだ失敗しました。

これは状況を変えましたが、まだプロジェクトを開始できません。私もこれがこの問題に対処する通常の方法ではないと思います。もしそうなら、ウェブサイトはこれが必須であると言います。

答え1

気になるようにライセンス問題のようです。ユーザーがファイルを実行できること/home/un//test/node_modules/.bin/nuxt、フォルダに/home/un//test/node_modules/.bin/SUIDまたは/およびSGIDビットが設定されていないことを確認してください。 node_modulesフォルダはnpmによって自動的に作成されるため、そうではありませんが、サービスを実行するユーザーアカウントに基づいてディレクトリ全体に対する権限を繰り返し付与する必要があると思います。

答え2

まあ、この質問は私が予想した質問ではありません。私のノードファイルはbtrfsハードドライブにあります。だからうまくいかないようです。

そこに移動しましたが、まだ動作しているようで、バグや動作しないようになりました。

とにかくファイルをプライマリハードドライブ(ext4)に移動することで問題が解決しました。

関連情報