Installation error (no symlinks on vagrant filesystem)


#1

Need help resolving this error
Running command - failed!
[ERROR] An error occurred while running npm install (exit code 185):

    npm WARN deprecated object-keys@0.2.0: Please update to the latest object-keys
    npm WARN ETXTBSY: text file is busy, rmdir '/usr/local/src/myprojects/app/ionic-angular-super/node_modules/yargs-parser/node_modules'
    npm ERR! path ../@ionic/app-scripts/bin/ionic-app-scripts.js
    npm ERR! code EPROTO
    npm ERR! errno -71
    npm ERR! syscall symlink
    npm ERR! EPROTO: protocol error, symlink '../@ionic/app-scripts/bin/ionic-app-scripts.js' -> '/usr/local/src/myprojects/app/ionic-angular-super/node_modules/.bin/ionic-app-scripts'

    npm ERR! A complete log of this run can be found in:
    npm ERR!     /home/vagrant/.npm/_logs/2017-06-09T21_06_50_800Z-debug.log

#2

What did you do to get this error?
If it was a ionic command, run it again and add --verbose at the end.
Please also post your ionic info output. Thanks.


#3

Anything unusual about the filesystem or OS environment involved here?

EDIT: Now I see the “vagrant”. I would suggest reading through this issue.


Npm ERR! ELOOP: too many symbolic links encountered, open '/Users/vagrant/git/node_modules/cordova-plugin-device/package.json'
#4

Now that error message makes total sense :confused:


#5

thanks guys. I am checking out the issue link.


#6

I think I have found a solution which is short and hopefully sweet. Shared/sync’d folders is where the problem lies. Want to avoid the home directory in the guest being shared/sync’d so here is the fix in the vagrantfile
this stops the sharing/syncing of home directory
config.vm.synced_folder “.”, “/vagrant”, disabled: true

here is my code where I sync other directories based on specifications in a CSV file (, ) pairs
if File.exist?(“sync_dir.csv”)
config.vm.synced_folder “.”, “/vagrant”, disabled: true
#config.vm.synced_folder “.”, “/tmp/vagrant"
CSV.foreach(“sync_dir.csv”) do |sync_dirs|
guest_path = sync_dirs[1].lstrip
origin_path = File.expand_path(sync_dirs[0].lstrip,”.")
config.vm.synced_folder origin_path, guest_path, owner: “vagrant”, group: “vagrant”, mount_options: [“uid=1234”, “gid=1234”]
end
end

I have my development directories sync’d btwn windows host and vagrant guest since I was initially doing SCM from the host. Now If I need to do any development from the guest under home directory I do SCM from there independently. I tried template super and have rendered on ioinic viewer and I have had not bugs at all.

Let me know if I should try any other boundary conditions to verify that this is a fail safe approach.that perhaps go into an FAQ and not be buried in a Forum.