Как я могу полностью удалить / удалить Cygwin? Я не думаю, что это так просто, как удаление C: \ cygwin. Может быть, изменить реестр?
Как я могу полностью удалить / удалить Cygwin? Я не думаю, что это так просто, как удаление C: \ cygwin. Может быть, изменить реестр?
Ответы:
Разработчики дают довольно подробные инструкции по удалению программного обеспечения:
Как мне удалить весь Cygwin?
Программа установки не имеет возможности автоматического удаления. Рекомендуемый метод удаления всех Cygwin заключается в следующем:
Если у вас запущены какие-либо службы Cygwin, удалите их, повторив инструкции в http://cygwin.com/faq/faq.html#faq.setup.uninstall-service для всех установленных вами служб. Общие службы, которые могли быть установлены,
sshd, cron, cygserver, inetd, apache, postgresql,
и так далее.Остановите сервер X11, если он работает, и закройте все программы Cygwin, которые могут работать в фоновом режиме. Выйдите из командной строки и убедитесь, что не осталось никаких процессов Cygwin. Примечание. Если вы хотите сохранить точки монтирования для последующей переустановки, сначала сохраните выходные данные,
mount -m
как описано по адресу http://cygwin.com/cygwin-ug-net/using-utils.html#mount .Удалите корневую папку Cygwin и все подпапки. Если вы получаете сообщение об ошибке, что объект используется, убедитесь, что вы остановили все службы и закрыли все программы Cygwin. Если вы получаете сообщение об ошибке «Отказано в доступе», вам необходимо изменить права доступа и / или права собственности на файлы или папки, которые вызывают ошибку. Например, иногда файлы, используемые системными службами, в конечном итоге принадлежат учетной записи SYSTEM и недоступны для записи обычным пользователям.
Самый быстрый способ удалить все дерево, если вы столкнулись с этой проблемой, - это изменить владельца всех файлов и папок на свою учетную запись. Для этого в проводнике Windows щелкните правой кнопкой мыши корневую папку Cygwin, выберите «Свойства», затем вкладку «Безопасность». Если вы используете Windows XP Home или Simple File Sharing, вам нужно загрузиться в безопасном режиме, чтобы получить доступ к вкладке «Безопасность». Выберите «Дополнительно», затем перейдите на вкладку «Владелец» и убедитесь, что ваша учетная запись указана в качестве владельца. Установите флажок «Заменить владельца на субконтейнеры и объекты» и нажмите «ОК». После того, как Explorer применит изменения, вы сможете удалить все дерево за одну операцию. Обратите внимание, что вы также можете достичь этого в Cygwin, набрав
chown -R user /
или используя другие инструменты, такие какCACLS.EXE
.Удалите ярлыки Cygwin на рабочем столе и в меню «Пуск», а также все, что осталось от setup.exe в каталоге загрузки. Однако, если вы планируете переустановить Cygwin, рекомендуется сохранить
setup.exe
каталог загрузки, поскольку вы можете переустановить пакеты, оставленные в его кэше, без повторной загрузки.Если вы добавили Cygwin в системный путь, вы должны удалить его, если вы не планируете переустановить Cygwin в то же место. Точно так же, если вы устанавливаете переменную среды CYGWIN в масштабе всей системы и не планируете переустановку, вы должны удалить ее.
Наконец, если вы хотите быть тщательным, вы можете удалить дерево реестра
Software\Cygwin
вHKEY_LOCAL_MACHINE
и / илиHKEY_CURRENT_USER
. Однако, если вы следовали указанным выше инструкциям, вы уже удалили все важное. Обычно в реестре хранится только каталог установки.
C:\Cygwin
каталог, даже после загрузки в безопасном режиме с помощью командной строки.
chown -R user /
) НЕ эквивалентна смене владельца папки Cygwin. Это изменит владение ВСЕМИ файлами в файловой системе.
/
папка является корнем папки cygwin, а не системным томом windows «root». Эта команда не изменит владельца всех файлов в файловой системе Windows.
На самом деле это было довольно ... легко. Просто сделай это ...
takeown /f C:\cygwin /r /d y
icacls c:\cygwin /t /grant everyone:F
del c:\cygwin
затем просто щелкните правой кнопкой мыши, чтобы удалить его. это исчезнет.
Выполните следующие шаги.
C:\>takeown /r /d y /f cygwin
C:\>icacls cygwin /t /grant Everyone:F
C:\cygwin\bin>.\cygrunsrv.exe -E sshd
C:\cygwin\bin>.\cygrunsrv.exe -R sshd
Затем удалите папку c:\cygwin
и все ее подпапки. Этот подход работал для меня.
Имейте в виду, что команды windows, такие как takeown, зависят от локали, т.е. опция /d y
работает только в английских системах. В немецкой системе нужно использовать /d j
для работы (без подсказки в английской справке, * facepalm microsoft) *
icacls cygwin /t /grant Jeder:F
работал только для меня на моей немецкой системе
Я сделал это в Win 7 после того, как попробовал все возможное из Win 7 (заметьте ... я смог отключить руткиты легче, чем удалить CygWin !!)
C:\>takeown /r /d y /f cygwin
Работал только для одной папки (я думаю, 'var')
C:\>icacls cygwin /t /grant Everyone:F
работал
C:\>takeown /r /d y /f cygwin
повторение этой команды сработало после вышеуказанной (второй) команды !!
C:\cygwin\bin>.\cygrunsrv.exe -E sshd
отказано в доступе
C:\cygwin\bin>.\cygrunsrv.exe -R sshd
отказано в доступе
НО я тогда пошел к проводнику Windows и удалил (переработал) папку C: \ Cygwin, и это работало. Ушел полностью.
Спасибо за вышеупомянутый пост! Надеюсь, это кому-нибудь поможет.
У меня были проблемы с удалением папки Cygwin, и я просмотрел всю структуру каталогов и удалил каждую подпапку. Это действительно больно, но другого выбора нет.
В дополнение к ответу Луиджи ,
icacls c:\cygwin /t /grant everyone:F
В локализованной Windows нет группы безопасности с именем «все», вы должны заменить имя группы на соответствующий SID:
icacls cygwin /t /grant "*S-1-1-0":F
Больше SID здесь .
Запустите установщик Cygwin и перейдите к средству просмотра пакетов, выберите вид в качестве категории и тип установки как удалить ... Готово.
Я не видел здесь упомянутого, но если кто-то все еще не может удалить папку C: \ cygwin, потому что она используется, проверьте сервис «Сервер» на вашем компьютере. Это не часть Cygwin, но я увидел, что он используется для совместного использования именованных каналов, и я смог удалить папку Cygwin, когда остановил ее.
Просто к вашему сведению
Ну, ничего из этого не сработало, поэтому вот что я сделал: