Как исправить ошибку ‘An unknown git error occurred’ при выполнении npm install в одной папке, если она работает в другой папке.

Вопрос или проблема

Мой сервер работает на CentOS 8, и я установил последнюю версию nodejs (v14.17.5) и NPM (v7.21.0), у обеих нет папки .git.

У меня очень-очень странная проблема. Если я перехожу в папку example1.com и запускаю npm install, я получаю следующую ошибку:

[root@www centos]# cd /var/www/example1.com/httpdocs/
[root@www chat]#  npm install
npm WARN old lockfile
npm WARN old lockfile Файл package-lock.json был создан со старой версией npm,
npm WARN old lockfile поэтому необходима загрузка дополнительной метаданной из реестра.
npm WARN old lockfile
npm WARN old lockfile Это одноразовое исправление, пожалуйста, будьте терпеливы...
npm WARN old lockfile
npm ERR! code 128
npm ERR! Произошла неизвестная ошибка git
npm ERR! команда git --no-replace-objects ls-remote ssh://[email protected]/Defipoolhub/node-time.git
npm ERR! [email protected]: Доступ запрещен (публичный ключ).
npm ERR! фатальная ошибка: Не удалось прочитать из удаленного репозитория.
npm ERR!
npm ERR! Пожалуйста, убедитесь, что у вас есть правильные права доступа,
npm ERR! и репозиторий существует.

npm ERR! Полный журнал этой операции можно найти в:
npm ERR!     /root/.npm/_logs/2021-08-23T10_03_50_797Z-debug.log

Однако, если перейти в другую папку, на том же сервере, и с тем же package.json, у меня нет никаких проблем, как это может быть так,

[root@www centos]# cd /var/www/example2.com/httpdocs/
[root@www chat]#  npm install

все обновлено, 224 пакета проверены за 3с

4 пакета ищут финансирование
  выполните `npm fund` для деталей

4 уязвимости (2 низких, 2 высоких)

Для устранения всех возможных проблем (включая критические изменения), выполните:
  npm audit fix --force

Некоторые проблемы требуют проверки и могут потребовать выбора
другой зависимости.

Выполните `npm audit` для получения подробной информации.

Есть идеи, как отладить эту проблему, я отключил SELinux, и это не решило проблему.

У меня была похожая проблема, хотя после ошибки команды git говорилось, что не удалось записать или создать временную директорию. Я использую Ubuntu, и это сработало для меня (не уверен, что это чистое решение, если честно, мне просто нужно, чтобы это работало несколько дней)

sudo npm cache clean -f
sudo npm install -g n
sudo n stable
sudo npm install --unsafe-perm=true --allow-root

Надеюсь, это поможет!!

Ответ или решение

Ошибка "An unknown git error occurred", которая возникает при выполнении команды npm install в одном каталоге, но не в другом, на CentOS 8 может быть вызвана несколькими факторами, учитывая, что проблема связана с правами доступа и настройкой Git. Чтобы решить эту проблему, можно предпринять следующие шаги:

Описание проблемы

Ваш сервер работает на CentOS 8, и вы используете Node.js версии 14.17.5 и NPM версии 7.21.0. При попытке установки пакетов с помощью команды npm install в каталоге /var/www/example1.com/httpdocs/, вы получаете ошибку Git с кодом ошибки 128, которая указывает на проблемы с доступом по публичному ключу при подключении к репозиторию на GitHub. Однако, в другом каталоге /var/www/example2.com/httpdocs/ установка проходит без проблем.

Возможные причины и решения

  1. Проверка прав доступа SSH:

    • Убедитесь, что SSH-ключи настроены правильно и что у пользователя системы есть доступ к репозиторию Git.
    • Выполните команду ssh -T [email protected] для проверки SSH-подключения к GitHub.
    • Убедитесь, что текущий пользователь имеет необходимые права доступа. Возможно, необходимо скопировать SSH-ключи в соответствующую папку пользователя.
  2. Сравнение сред:

    • Проверьте различия в окружениях между двумя каталогами. Например, убедитесь, что в каждом каталоге используется одинаковый конфигурационный файл .npmrc.
    • Проверьте переменные окружения и конфигурации Git в обоих каталогах с помощью команд git config --list и env.
  3. Обновление и очистка кэша NPM:

    • Попробуйте обновить NPM и Node.js до последних стабильных версий, используя команды:
      sudo npm cache clean -f
      sudo npm install -g n
      sudo n stable
    • Затем выполните npm install --unsafe-perm=true --allow-root, чтобы исключить любые временные проблемы с правами доступа.
  4. Анализ ошибок из лог-файла:

    • Изучите содержимое файла /root/.npm/_logs/2021-08-23T10_03_50_797Z-debug.log, чтобы выявить дополнительные ошибки или предупреждения.
  5. Проверка SELinux и прав доступа к файлам:

    • Проверьте, правильно ли настроен SELinux, если вы не уверены, что его отключение выполнено корректно.
    • Удостоверьтесь, что у пользователя есть достаточные права на запись в каталоге установки.

Заключение

Если приведенные советы не помогают, возможно, потребуется исследовать иные аспекты конфигурации системы или обратиться к свежей установке Node.js и NPM. Кроме того, полезно проконсультироваться с административной документацией Git и NPM для углубленного понимания специфических ошибок системы, с которыми вы сталкиваетесь. Применение этих шагов позволит вам локализовать проблему и устранить сбои в работе вашего приложения.

Оцените материал
Добавить комментарий

Капча загружается...