Команда sudo не найдена в Cygwin

В настоящее время я пытаюсь установить и обновить несколько пакетов в ОС Windows. Дело только в том, что я использую Cygwin для ввода команд через терминал (насколько мне известно, я могу вводить команды типа Linux, такие как cd, ls и т. Д. На Cygwin - я могу ошибаться). Однако, когда я пытаюсь установить такой пакет, как:

sudo apt-get install paparazzi-dev 

Я получаю ответ:

-sh: sudo: command not found.

Есть ли у кого-нибудь идеи, как я могу решить эту проблему?


person Adam    schedule 20.03.2014    source источник
comment
Первый результат от Google, от SO: http://stackoverflow.com/questions/4090301/root-user-sudo-equivalent-in-cygwin   -  person Losiowaty    schedule 20.03.2014


Ответы (7)


Cygwin не является полноценным дистрибутивом Linux. Поэтому у вас нет sudo или диспетчера пакетов Debian / Ubuntu apt-get. В репозитории Cygwin доступен ряд пакетов: http://cygwin.com/packages/. Эти пакеты необходимо выбрать во время настраивать.

person Caleb    schedule 20.03.2014
comment
Не хотите сказать нам, какой это может быть пакет? - person Ben; 14.03.2015
comment
@Ben, это полностью зависит от того, какой пакет вы пытаетесь установить. Нет пакета для sudo. Вы не устанавливаете программное обеспечение на Cygwin с помощью sudo или apt-get. Вы можете искать пакеты для определенного файла с помощью trueblade .com / knowledge / - person skiphoppy; 04.04.2016
comment
Он говорит, что sudo - это служебная программа для разрешения доступа к файлам, предназначенная исключительно для Linux, и что в Windows есть ее собственные эквиваленты. Поэтому делать его доступным Cygwin было бы бессмысленно. - person Hashim Aziz; 31.01.2017

Запустите cygwin от имени администратора ... тогда вам не понадобится команда sudo.

person Aimal    schedule 18.08.2014
comment
это также не решает проблему необходимости быть конкретным пользователем для проверки подлинности Windows. - person stu; 20.10.2014
comment
Это сработало для меня. Cygwin получает правильную авторизацию только при щелчке правой кнопкой мыши - ›Запуск от имени администратора на значке cygwin, поэтому мы получаем разрешения на создание папок, пользователей и файлов. - person veer7; 09.04.2016
comment
Не работает. Та же ошибка, говорит, что у вас нет разрешения на запись в каталог. - person felwithe; 18.09.2019

В Windows нет sudo, apt или, если быть точным, почти любых команд Linux. Cygwin может разрешить некоторые из них, но поскольку программы не установлены в Windows, пакеты apt-get работать не будут. Программы для Windows имеют установочные файлы в формате .exe или .msi.

Версия sudo для Windows называется runas на тот случай, если вам нужно запустить что-то от имени другого пользователя. Или вы можете запустить Cygwin от имени администратора.

Если вам нужно использовать пакеты, вам понадобится Linux. Вы можете установить его напрямую, чтобы заменить Windows, с двойной загрузкой или использовать программное обеспечение виртуализации, такое как VMware VirtualBox.

person PurkkaKoodari    schedule 20.03.2014
comment
Как вы думаете, можно ли установить пакеты через Cygwin, используя runas, а затем скопировать их на машину с Linux? Проблема в том, что у моей Linux-машины нет подключения к Интернету, и у меня больше нет административных прав для этой машины. - person Adam; 20.03.2014
comment
@Mahmoud Нет, поскольку в Windows нет команд для установки пакетов. Кроме того, установка пакетов на компьютер A и копирование полученных файлов на компьютер B часто может привести к неправильной настройке. - person PurkkaKoodari; 20.03.2014
comment
Спасибо. Это то, о чем я думал. - person Adam; 20.03.2014

Cygwin позволяет запускать определенные команды, такие как cd, ls или mv; но он не позволяет запускать другие команды, такие как sudo или apt-get.

  • Если вы пытаетесь добавить пакет в свою установку Cygwin, повторно запустите программу установки Cygwin. Возможно, он все еще находится в папке «Загрузки». Пройдите все шаги еще раз. Программа установки Cygwin автоматически загрузит и установит нужный пакет и добавит его в вашу установку Cygwin. (Я думаю, что он, вероятно, также обновит все ваши другие установленные пакеты Cygwin до последних доступных версий.)

  • Если желаемого пакета нет в списке пакетов Cygwin, но он есть список пакетов Cygwin Ports, следуйте Инструкции по установке портов Cygwin. Обратите внимание, что порты Cygwin отделены от Cygwin. Пожалуйста, не отправляйте сообщения о пакетах Cygwin Ports в списки рассылки cygwin.com.

  • Если у вас есть многолетний опыт работы с Linux, возможно, вы сможете скомпилировать нужное программное обеспечение внутри Cygwin. Это может быть сложно.

  • Возможно, вариант проще, чем «скомпилировать самостоятельно»: вы можете установить VirtualBox, затем установить свой любимый дистрибутив Linux внутри виртуальной машины, а затем установить желаемый пакет внутри Linux. (Мне нравится Ubuntu Linux, у которого более 27 000 пакетов в репозитории «Universe».) Теперь вы можете запускать Linux и Windows одновременно.

person unforgettableidSupportsMonica    schedule 20.03.2017

Оформление пояснительного ответа из ответа здесь @Aimal, поскольку это сработало для меня.

Cygwin может не получить permissions to create folders and files при запуске, щелкнув значок Cygwin в нормальном режиме.

Cygwin получает правильную авторизацию только когда right click -> "run as adminitrator" на cygwin icon из-за этого получает permissions to create folders and files.

person veer7    schedule 09.04.2016

Я думаю, что попробовал шаги ниже после некоторого исследования и преуспел (в Windows)

1. Установите scoop с помощью powershell 3 (iex (new-object net.webclient) .downloadstring ('https://get.scoop.sh ')) 2. выполните scoop install --global sudo 3. убедитесь, что пути (C: \ Users \\ scoop \ shims & C: \ ProgramData \ scoop \ shims) добавлены в переменную пути среды.

person Pawan Gangwani    schedule 09.07.2017

В моем случае я хотел установить curl, но не смог создать каталог / usr / local / curl / lib при выполнении команды «make install» из-за отказа в разрешении. поэтому мне нужно изменить / usr / local разрешение. когда я запускаю sudo chmod 755 / usr / local, команда sudo не найдена.

после поиска нескольких решений обнаружил, что sudo по умолчанию не установлен в Cygwin. Но я попробовал решение, которое дал Aimal, которое заключается в запуске Cygwin от имени администратора. Наконец-то я могу изменить права доступа к папке. Спасибо, Эймал.

person Leung Ying Ying    schedule 24.11.2015
comment
Вы просто подтверждаете ответ Aimals, это не ответ, а комментарий. - person Ian2thedv; 25.01.2016