ln: не удалось создать символ c ссылка: ошибка протокола (в Vagrant) - PullRequest
0 голосов
/ 18 марта 2020

Я использую Laravel Усадьба (Vagrant, Ubuntu). Мой хост-компьютер Windows 10 работает под управлением VirtualBox.

В качестве администратора (так как я уже видел тонны ответов, в которых говорится, что отсутствие разрешений обычно является причиной того, что у людей возникают проблемы с символическими ссылками), Я открываю Git Bash и запускаю это:

vagrant@vboxHomestead:~/Code/myproject$ ls -lah /home/vagrant/foo/blah
total 0
drwxrwxrwx 1 vagrant vagrant 0 Mar 17 23:09 .
drwxrwxrwx 1 vagrant vagrant 0 Mar 17 22:36 ..
-rwxrwxrwx 1 vagrant vagrant 0 Mar 17 23:09 asdf.txt
vagrant@vboxHomestead:~/Code/myproject$ sudo ln -s /home/vagrant/foo/blah /home/vagrant/Code/myproject/storage/app/public/blah
ln: failed to create symbolic link '/home/vagrant/Code/myproject/storage/app/public/blah': Protocol error

В чем проблема? Это как-то связано с папками Homestead ? Как мне достичь своей цели?

(Мои /home/vagrant/Code/ и /home/vagrant/foo/ отображаются на отдельные диски на моей Windows машине.)

PS И перед попыткой описанные выше шаги, я даже удалил Homestead standard publi c symlink просто чтобы избежать других возможных осложнений.

PPS Я также пытался добавить this рядом с нижняя часть (над последним end) моего Homestead Vagrantfile перед вращением коробки:

config.vm.provider "virtualbox" do |v|
    v.customize ["setextradata", :id, "VBoxInternal2/SharedFoldersEnableSymlinksCreate/v-root", "1"]
end

Ответы [ 2 ]

0 голосов
/ 11 апреля 2020

При использовании Homestead создание символической ссылки в каталоге publi c в Windows также создает символическую ссылку на vagrant. Обратный путь может (!) Создать эту ошибку и оставить неработающую символическую ссылку в вашем каталоге Windows.

0 голосов
/ 18 марта 2020

Я заметил, что php artisan storage:link теперь также вызывает «ошибку протокола».

Поэтому, чтобы сузить проблему, я создал совершенно бесплатный sh проект и коробку Homestead и попытался создать символические ссылки (включая php artisan storage:link), но также получил «Ошибка протокола».

И я был очень осторожен, используя Git Bash (мой клиент терминала / командной строки) в качестве администратора, поэтому я уже следил совет большинства ответов по StackExchange.

Я также решил переместить одну из моих Windows папок (ту, в которой у меня была карта Homestead на /home/vagrant/foo/), чтобы они были в папке Windows, которая Усадьба сопоставлена ​​с /home/vagrant/Code/. *

Я решил перезапустить Windows 10 полностью. Теперь, после запуска новых бродячих коробок, php artisan storage:link и создания моей другой символической ссылки сработало.

* Я не уверен, что перемещение папки Windows было даже необходимо. Возможно, я мог бы оставить папки на отдельных дисках Windows. Но в то время я хотел минимизировать возможные осложнения.

...