Saya memiliki Ubuntu 12.10 berjalan sebagai tamu VMware di host Windows 8 saya.
Saya telah berbagi folder pada Host Windows 8 saya dan sudah terpasang di tamu Ubuntu saat startup menggunakan entri ini di fstab
:
//myhost/work /work cifs credentials=/home/user/.smbcredentials,noserverino,nounix,uid=user,gid=user,file_mode=0777,dir_mode=0777 0 0
Berbagi berfungsi dengan baik dan dapat dilayani oleh server web seperti nginx.
Namun, sepertinya ada masalah ketika saya menginstal paket node.js menggunakan npm, saya mendapatkan banyak kesalahan seperti ini:
user@ubuntu:/work/test$ sudo npm install grunt
npm http GET https://registry.npmjs.org/grunt
npm http 304 https://registry.npmjs.org/grunt
...
npm ERR! error rolling back Error: ENOTEMPTY, rmdir '/work/test/node_modules/grunt/node_modules/lodash'
npm ERR! error rolling back [email protected] { [Error: ENOTEMPTY, rmdir '/work/test/node_modules/grunt/node_modules/lodash']
npm ERR! error rolling back errno: 53,
npm ERR! error rolling back code: 'ENOTEMPTY',
npm ERR! error rolling back path: '/work/test/node_modules/grunt/node_modules/lodash' }
npm ERR! Error: UNKNOWN, symlink '../which/bin/which'
npm ERR! If you need help, you may report this log at:
npm ERR! <http://github.com/isaacs/npm/issues>
npm ERR! or email it to:
npm ERR! <[email protected]>
npm ERR! System Linux 3.5.0-26-generic
npm ERR! command "/usr/bin/node" "/usr/bin/npm" "install" "grunt"
npm ERR! cwd /work/test
npm ERR! node -v v0.10.0
npm ERR! npm -v 1.2.14
npm ERR! path ../which/bin/which
npm ERR! code UNKNOWN
npm ERR! errno -1
npm ERR! Error: ENOENT, chmod '/work/test/node_modules/grunt/node_modules/findup-sync/test/fixtures/aaa.txt'
npm ERR! If you need help, you may report this log at:
npm ERR! <http://github.com/isaacs/npm/issues>
npm ERR! or email it to:
npm ERR! <[email protected]>
npm ERR! System Linux 3.5.0-26-generic
npm ERR! command "/usr/bin/node" "/usr/bin/npm" "install" "grunt"
npm ERR! cwd /work/test
npm ERR! node -v v0.10.0
npm ERR! npm -v 1.2.14
npm ERR! path /work/test/node_modules/grunt/node_modules/findup-sync/test/fixtures/aaa.txt
npm ERR! fstream_path /work/test/node_modules/grunt/node_modules/findup-sync/test/fixtures/aaa.txt
npm ERR! fstream_type File
npm ERR! fstream_class FileWriter
npm ERR! fstream_finish_call chmod
npm ERR! code ENOENT
npm ERR! errno 34
npm ERR! fstream_stack /usr/lib/node_modules/npm/node_modules/fstream/lib/writer.js:305:19
npm ERR! fstream_stack Object.oncomplete (fs.js:93:15)
npm ERR! Error: ENOENT, lstat '/work/test/node_modules/grunt/node_modules/minimatch/test/basic.js'
npm ERR! If you need help, you may report this log at:
npm ERR! <http://github.com/isaacs/npm/issues>
npm ERR! or email it to:
npm ERR! <[email protected]>
npm ERR! System Linux 3.5.0-26-generic
npm ERR! command "/usr/bin/node" "/usr/bin/npm" "install" "grunt"
npm ERR! cwd /work/test
npm ERR! node -v v0.10.0
npm ERR! npm -v 1.2.14
npm ERR! path /work/test/node_modules/grunt/node_modules/minimatch/test/basic.js
npm ERR! fstream_path /work/test/node_modules/grunt/node_modules/minimatch/test/basic.js
npm ERR! fstream_type File
npm ERR! fstream_class FileWriter
npm ERR! code ENOENT
npm ERR! errno 34
npm ERR! fstream_stack /usr/lib/node_modules/npm/node_modules/fstream/lib/writer.js:284:26
npm ERR! fstream_stack Object.oncomplete (fs.js:93:15)
npm ERR! Error: ENOENT, lstat '/work/test/node_modules/grunt/node_modules/glob/test/00-setup.js'
npm ERR! If you need help, you may report this log at:
npm ERR! <http://github.com/isaacs/npm/issues>
npm ERR! or email it to:
npm ERR! <[email protected]>
...
npm ERR! not ok code 0
user@ubuntu:/work/test$
Apa yang bisa menyebabkan masalah ini? Dari baris perintah, saya bisa chmod
, rmdir
antara lain menggunakan sudo tanpa masalah.
Cara mengizinkan membuat symlink di windows halaman ini banyak membantu saya yang menjelaskan bahwa ini terjadi bahkan jika folder bersama Anda dapat ditulisi.
Untuk memperbaikinya, Anda perlu mengaktifkan fitur symlink di VirtualBox.
Jalankan di cmd prompt:
Kemudian verifikasi dengan:
sumber
Setuju dengan lorem, tetapi itu tidak cukup.
jalankan Virtualbox 'sebagai admininstrator' di Windows.
pastikan Anda dieksekusi:
VBoxManage.exe setextradata YOUR_VM BoxInternal2/SharedFoldersEnableSymlinksCreate/YOUR_SHARED_FOLDER 1
Ganti YOUR_VM dan YOUR_SHARED_FOLDER dengan nilai Anda. Anda dapat memeriksa nilainya melalui:
VBoxManage.exe getextradata boot2docker-vm enumerate
Ada bug virtualbox melacak masalah ini.
sumber
Versi VirtualBox yang lebih baru akan memungkinkan symlink jika Anda memulai VirtualBox sebagai Adminstrator (klik kanan: Jalankan sebagai administrator).
Hal yang sama berlaku untuk kotak gelandangan: jalankan cmd.exe / PowerShell Anda sebagai admin dan Anda siap melakukannya.
sumber
dalam masalah npm ini @drmyersii memberikan solusi yang bagus, saya hanya akan menyalin dan menempel agar tidak menautkan jawabannya saja.
ini bekerja sangat baik untuk saya dan sekarang saya dapat menggunakan tegukan dengan scotchbox .
sumber
Bagi saya tidak ada jawaban yang berhasil. Saya tidak yakin mengapa tetapi saya percaya itu karena bagian saya adalah nfs. Jadi saya tidak bisa mendapatkannya untuk memungkinkan symlink bahkan ketika berjalan sebagai Administrator dan mengubah pengaturan setextradata. Saya sedang bekerja dengan tegukan dan beberapa paket lain yang tampaknya memiliki masalah mematuhi --no-bin-links. Itu MASIH mencoba membuat beberapa tautan simbolis dan jelas gagal. Akhirnya utas ini pada Github memberi petunjuk kepada saya menjadi "solusi", mungkin seperti itu. Saya "cukup" menginstal proyek di folder non-shared saya dan menetapkan itu sebagai NODEPATH saya.
Peringatan adalah bahwa hal itu akan mempengaruhi seluruh server dan alur kerja memperbarui / mengubah kemasan.
sumber