Doccano: ssh プロトコルを使用した Squire.git からの RHEL7 での npm インストールが失敗する

作成日 2020年01月17日  ·  3コメント  ·  ソース: doccano/doccano

問題

ソースからのインストールの場合、 npm install でエラーが発生します
npm install によって生成されたデバッグ ログも添付しました。
次の回避策を試しました
1) GitHub で SSH pub/秘密鍵のペアを作成する
その後、npm で失敗するコマンドを問題なく手動で実行できます。

/usr/bin/git ls-remote -h -t ssh://[email protected]/seonim-ryu/Squire.git

2) git の代わりに https を使用するように git を強制してみてください。

git config --global url."https://github.com/".insteadOf [email protected]:
git config --global url."https://".insteadOf git://

問題を再現する方法
次を実行するスクリプトを作成しました

yum install rh-python36* -y
yum install rh-nodejs12* -y
yum install gcc-c++ -y
yum groupinstall "Development tools" -y
source scl_source enable rh-nodejs12 rh-python36

git clone https://github.com/chakki-works/doccano.git
cd doccano
virtualenv venv
source venv/bin/activate
pip install --upgrade pip
pip install -r requirements.txt
cd frontend

npm install

エラーメッセージ


[root]# npm i
npm WARN deprecated [email protected]: use String.prototype.padStart()
npm WARN deprecated [email protected]: core-js@<3 is no longer maintained and not recommended for usage due to the number of issues. Please, upgrade your dependencies to the actual version of core-js@3.
npm ERR! Error while executing:
npm ERR! /usr/bin/git ls-remote -h -t ssh://[email protected]/seonim-ryu/Squire.git
npm ERR!
npm ERR! fatal: failed to stat '.': Permission denied
npm ERR!
npm ERR! exited with error code: 128

npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2020-01-17T14_05_41_472Z-debug.log

あなたの環境

[root]# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 7.7 (Maipo)

[root]# yum list installed | grep rh-python
rh-python36.x86_64             2.0-1.el7            @rhel-server-rhscl-7-rpms
[root]# python --version
Python 3.6.9

[root]# yum list installed | grep pip
rh-python36-python-pip.noarch  9.0.1-2.el7          @rhel-server-rhscl-7-rpms
[root]# pip --version
pip 9.0.1 from /opt/rh/rh-python36/root/usr/lib/python3.6/site-packages (python 3.6)

[root]# yum list installed | grep -A 2 virtualenv
rh-python36-python-virtualenv.noarch 15.1.0-2.el7         @rhel-server-rhscl-7-rpms
[root]# virtualenv --version
15.1.0

[root]# yum list installed | grep npm
rh-nodejs12-npm.x86_64         6.10.3-12.10.0.4.el7 @rhel-server-rhscl-7-rpms
[root]# npm --version
6.10.3

[root]# yum list installed | grep rh-node
rh-nodejs12.x86_64             3.4-1.el7            @rhel-server-rhscl-7-rpms
[root]# node --version
v12.10.0

[root]# yum list installed | grep git
git.x86_64                     1.8.3.1-20.el7       @rhel-7-server-rpms
[root]# git --version
git version 1.8.3.1

[root]# gcc --version
gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-39)
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

これが失敗したのは、つい最近の数件です。
2020-01-17T16_49_58_359Z-debug.log

question

最も参考になるコメント

OK、今何がうまくいくかを見つけました。
どうやら、これは npm を sudo-ed セッションとして実行するとどうなるかです。
ファイル/フォルダーの権限を変更し、代わりに標準ユーザーとして実行する必要がありました。

全てのコメント3件

このエラーは doccano ではなく、ネットワーク設定が原因のようです。 最初にnpm install from git を正しく確認してください。

git からの npm install の意味が明確ではありません。 詳しく説明していただけますか? どのネットワーク設定について話しているのですか?

次のコマンドを問題なく実行できると述べました

/usr/bin/git ls-remote -h -t ssh://[email protected]/seonim-ryu/Squire.git

ただし、npm を実行すると、失敗します。 この特定のリポジトリが他の多くのように https の代わりに git (ssh プロトコル) リンクを使用している理由がわかりません。

OK、今何がうまくいくかを見つけました。
どうやら、これは npm を sudo-ed セッションとして実行するとどうなるかです。
ファイル/フォルダーの権限を変更し、代わりに標準ユーザーとして実行する必要がありました。

このページは役に立ちましたか?
0 / 5 - 0 評価