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가 있습니다. 한 폴더를 살펴보니 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)로 옮기면 문제가 해결되었습니다.

관련 정보