プロジェクトの依存関係としてpuppeteer
をインストールできず、ノードを再インストールしようとしました。誰かがこれを修正する方法についてのアイデアを持っていますか? Ubuntu 17.10x64を実行している
Sudo apt-get purge nodejs;
curl -sL https://deb.nodesource.com/setup_8.x | Sudo -E bash -;
apt-get install -y nodejs;
Sudo npm install -g n;
Sudo n stable;
ノードバージョン:
$ node -v
v9.4.0
$ npm -v
5.6.0
インストールしようとしています:
root@server:/var/www/html# npm install --save puppeteer
エラーメッセージ:
> [email protected] install /var/www/html/node_modules/puppeteer
> node install.js
ERROR: Failed to download Chromium r536395! Set "PUPPETEER_SKIP_CHROMIUM_DOWNLOAD" env variable to skip download.
{ Error: EACCES: permission denied, mkdir '/var/www/html/node_modules/puppeteer/.local-chromium'
errno: -13,
code: 'EACCES',
syscall: 'mkdir',
path: '/var/www/html/node_modules/puppeteer/.local-chromium' }
npm WARN [email protected] No description
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] install: `node install.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] install 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! /root/.npm/_logs/2018-02-19T15_55_52_669Z-debug.log
参照されている問題でこれを修正する方法が見つかりません: https://github.com/GoogleChrome/puppeteer/issues/375
2019年4月20日編集:
Lauraalvarezz1によって提案された簡単な解決策は、
Sudo npm install -g puppeteer --unsafe-perm=true
Puppeteerを信頼し、puppeteerをグローバルにインストールしたい限り、これは問題ありません。
ただし、許可関連の問題には--unsafe-perm=true
を使用することに注意してください。理由は次のとおりです。
--no-sandbox
を使用する必要がある場合があります。これを参照してください github issue 。Sudo
を使用してnpmをインストールしました。したがって、グローバルにインストールするものにはすべてSudo
が必要です。
var/www/html
フォルダーに何かをインストールするには、そのフォルダーを所有している必要があります。
Sudo chown -R $USER /var/www/html
または、 nvm を使用してnpmを管理できます。技術的には、ホームディレクトリと現在のユーザーを使用します。
Nvmをインストールした後、それを使用してpuppeteerをグローバルにインストールできます。
npm i -g puppeteer
または、Sudoを使用する必要があります
Sudo npm install --save puppeteer
ただし、許可エラーのためにクロムはダウンロードされません。そのため、前述のように---unsafe-perm=true
を使用する必要があります。
セキュリティ関連リソース:
頑張ってください!
ターミナルでこれを実行します。
Sudo npm install -g puppeteer --unsafe-perm=true
始める前に、Node.jsの最新バージョンを使用していることを確認してください。
操り人形師のドキュメント は次のように述べています。
注:Puppeteerには少なくともNode v6.4.0が必要ですが、以下の例では、Node v7.6.0以降でのみサポートされるasync/awaitを使用しています。
次のコマンドを使用して、使用しているNode.jsのバージョンを確認できます。
node -v
# OR nodejs -v
Node.jsのバージョンがv7.6.0未満の場合は、 現在のバージョンのNode.jsを完全にアンインストールする 。
次に、complete PPAを使用した再インストール を使用できます。
Sudo apt update
curl -sL https://deb.nodesource.com/setup_8.x -o nodesource_setup.sh
Sudo bash nodesource_setup.sh
Sudo apt install nodejs
Sudo apt install build-essential
システムにインストールされているNode.jsとNPMの新しいバージョンを確認できます。
node -v
npm -v
最後に、Puppeteerをインストールできます。
Sudo npm install puppeteer --unsafe-perm=true --allow-root
これで、node
コマンドを使用してPuppeteerスクリプトを実行できます。
node puppeteer-script.js