отказано в разрешении на выполнение '/ usr / bin / spin' в WSL (ubuntu 18.04)

Я уже довольно давно использую подсистему Windows для Linux для SPIN (Promela). Однако без каких-либо изменений в настройке, внезапно с 28 октября 2019 года я получаю сообщение об ошибке «В разрешении отказано» для «/ usr / bin / spin». Другие команды в том же месте '/ usr / bin / ..' работают так же, как и раньше. Я проверил для clear, gcc -v, yacc -v и sudo apt install gcc.

Расположение команды в WSL находится в каталоге rootfs, к которому нельзя получить доступ с помощью cd или chmod. Поэтому я не знаю, действительно ли это проблема с правами, потому что другие команды в том же месте работают нормально.

Что странно, так это то, что «sudo apt install spin» говорит: «spin - это уже самая новая версия (6.4.6 + dfsg-2)». Но 'spin -v' говорит: "-bash: / usr / bin / spin: Permission denied"


person Sneha Sahu    schedule 28.10.2019    source источник
comment
Один из вариантов - установить исполняемый файл nano в путь, принадлежащий вашей учетной записи, а затем обновить переменную среды PATH, чтобы включить также новый путь. Если .bashrc доступен в Подсистеме Windows для Linux, вы можете обновить PATH в нем.   -  person Patrick Trentin    schedule 28.10.2019
comment
@PatrickTrentin nano уже установлен, и каталог '... / rootfs / bin' также существует в PATH. '.bashsrc' также существует, но извлекает информацию из переменных Windows ENV. Итак, эта информация есть в WSL.   -  person Sneha Sahu    schedule 29.10.2019
comment
@SnehaSahu Я имел в виду spin, извини. Я понял, что проблема в том, что исполняемый файл spin правильно размещен в месте, включенном в PATH, но у исполняемого файла больше нет нужных разрешений (или они запрещены), и что chmod не может использоваться в /usr/bin. Вот почему я предложил установить spin по другому пути, по которому можно успешно использовать chmod.   -  person Patrick Trentin    schedule 29.10.2019
comment
@PatrickTrentin Также странно то, что «sudo apt install spin» говорит, что spin - это уже самая новая версия (6.4.6 + dfsg-2). Но 'spin -v' говорит -bash: / usr / bin / spin: Permission denied   -  person Sneha Sahu    schedule 29.10.2019
comment
@SnehaSahu, вы пробовали тривиальное решение, sudo apt remove spin и sudo apt install spin?   -  person Patrick Trentin    schedule 29.10.2019
comment
@PatrickTrentin Да, правильная проблема связана с правами, но только для вращения, а не других команд. Также защищен весь каталог, начинающийся с «rootfs». Насколько я понимаю, чтобы использовать спин с WSL, он должен находиться где-то внутри rootfs, а не в каком-либо другом каталоге.   -  person Sneha Sahu    schedule 29.10.2019
comment
просто попробовал и снова ошибка разрешения -… Удаление вращения (6.4.6 + dfsg-2) ... dpkg: обработка ошибок пакета spin (--remove): невозможно безопасно удалить '/ usr / bin / spin': разрешение отказано E: подпроцесс / usr / bin / dpkg вернул код ошибки (1)   -  person Sneha Sahu    schedule 29.10.2019
comment
На самом деле нет необходимости иметь spin под /usr/bin. Я держу его под /opt/my_resources/spin в моей системе. Его можно скачать, скомпилировать и запустить локально.   -  person Patrick Trentin    schedule 29.10.2019
comment
@PatrickTrentin, где находится каталог / opt? -% systemroot% / AppData / Local / Packages / CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc / LocalState / rootfs /… или другое место?   -  person Sneha Sahu    schedule 29.10.2019
comment
Сначала я бы попытался загрузить / скомпилировать / выполнить spin в локальном каталоге (например, $HOME).   -  person Patrick Trentin    schedule 29.10.2019


Ответы (1)


Тривиальное решение, данное Патриком, похоже, сработало. ;)

Поскольку было отказано в разрешении, ошибка для файла в rootfs/usr/bin также была невозможна. Поэтому я сначала вручную удалил файл из этого места, затем sudo apt remove spin, а затем «sudo apt install spin».

Теперь вращение вроде работает нормально.

person Sneha Sahu    schedule 29.10.2019