Saya mencoba untuk mengatur lingkungan simpul saya pada contoh Ubuntu 12.04 baru, dengan Node 0.8.14 sudah diinstal, tetapi saya mengalami masalah ketika saya mencoba untuk menjalankan npm install
. Jadi ketika saya mencoba npm install
, dikatakan bahwa saya perlu menjalankannya sebagai root atau administrator:
Error: EACCES, mkdir '/usr/local/lib/node_modules/coffee-script'
npm ERR! { [Error: EACCES, mkdir '/usr/local/lib/node_modules/coffee-script']
npm ERR! errno: 3,
npm ERR! code: 'EACCES',
npm ERR! path: '/usr/local/lib/node_modules/coffee-script',
npm ERR! fstream_type: 'Directory',
npm ERR! fstream_path: '/usr/local/lib/node_modules/coffee-script',
npm ERR! fstream_class: 'DirWriter',
npm ERR! fstream_stack:
npm ERR! [ 'DirWriter._create (/usr/local/lib/node_modules/npm/node_modules/fstream/lib/dir-writer.js:36:23)',
npm ERR! '/usr/local/lib/node_modules/npm/node_modules/mkdirp/index.js:37:53',
npm ERR! 'Object.oncomplete (fs.js:297:15)' ] }
npm ERR!
npm ERR! Please try running this command again as root/Administrator.
Tetapi ketika mencoba menjalankannya sebagai sudo, dikatakan sebagai berikut:
npm WARN cannot run in wd PackNodeDev@0.0.1-166 npm install -g coffee-script node-gyp (wd=/home/ubuntu/PackNode)
Di package.json saya, ini berisi skrip berikut:
"scripts": {
"preinstall": "npm install -g coffee-script node-gyp",
"start": "node server.js",
"test": "mocha --require should --compilers coffee:coffee-script --colors"
},
Sisa dependensi lainnya valid karena saya telah menginstalnya dengan benar di komputer saya sendiri (Mac) Apakah ada yang tahu mengapa ini terjadi?
sudo npm install --unsafe-perm
sudo npm install
"unsafe-perm":true
npm install --unsafe-perm
bekerja untuk saya, saya mencoba mengikuti implikasi tentang mengubahuser
konfigurasi default . Jadi saya lakukannpm set user my_user
dannpm set group my_group
, yang menambahkan entri yang sesuai dalam.npmrc
file pengguna root . Tetapi masalahnya adalahnode_modules
folder itu sendiri dan subfoldernya masih dimiliki oleh root, jadi itu tidak membantu. Saya tidak bisa menemukan cara agar mereka tidak dimiliki oleh root.Satu-satunya hal yang berhasil bagi saya adalah menambahkan
.npmrc
file yang berisi:Menambahkan konfigurasi yang sama ke
package.json
tidak berpengaruh.sumber
RUN npm set unsafe-perm true
Saya telah mengalami masalah yang sama ketika mencoba untuk mempublikasikan aplikasi nodejs saya di server pribadi yang menjalankan CentOs menggunakan pengguna root. Kesalahan yang sama dipecat oleh "postinstall": "./node_modules/bower/bin/bower install" di file package.json saya jadi satu-satunya solusi yang berfungsi untuk saya adalah menggunakan kedua opsi untuk menghindari kesalahan:
1: gunakan opsi --allow-root untuk perintah install bower
2: gunakan opsi --unsafe-perm untuk perintah install npm
sumber
OP di sini, saya telah belajar lebih banyak tentang simpul sejak saya pertama kali mengajukan pertanyaan ini. Meskipun jawaban Dmitry sangat membantu, yang akhirnya berhasil bagi saya adalah menginstal node dengan izin yang benar.
Saya sangat merekomendasikan untuk tidak menginstal node menggunakan manajer paket apa pun, tetapi untuk mengkompilasinya sendiri sehingga berada di direktori lokal dengan izin normal.
Artikel ini memberikan instruksi langkah-demi-langkah yang sangat jelas tentang cara melakukannya:
https://www.digitalocean.com/community/tutorials/how-to-install-an-upstream-version-of-node-js-on-ubuntu-12-04
sumber
Saya memperbaikinya dengan mengubah kepemilikan
/usr/local
dan~/Users/user-name
suka:sudo chown -R my_name /usr/local
Ini memungkinkan saya untuk melakukan semuanya tanpa
sudo
sumber