Установка cygwin на windows xp. Что такое Cygwin

14.04.2019 Интернет

Для того чтобы писать приложения под Unix не обязательно его устанавливать (под словом Unix я буду продразумевать все *nix системы). Это утверждение звучит довольно-таки парадоксально, но это действительно так, и в данной статье я попытаюсь вас в этом убедить.

Если вы не являeтесь истинным Unix-гуру, то для того чтобы написать пару приложений под эту ОС или скомпилировать существующие программы вам вовсе не нужно устанавливать Unix . Для данных целей отлично подойдет эмулятор Unix . Существует много замечательных программ, превосходно справляющихся с этой задачей, например: UWin , MinGW , Cygwin и др.

Для компиляции простых программ подойдет и MinGW , но для более сложных он не пригоден. Uwin является более продвинутым эмулятором, но его функциональность значительно уступает другому более популярному эмулятору Cygwin .

Cygwin - это очень функциональный, бесплатный эмулятор Unix . Он распространяется в виде одного-единственного файла (setup.exe ), пусть вас не вводит в заблуждение размер этого файла (~300 kb ), это не сам Cygwin , а только его инсталлятор. Все необходимые утилиты и библиотеки придется скачивать отдельно в процессе установки, или указать в качестве источника локальный каталог, если необходимые файлы у вас уже есть.

Cygwin включает в себя огромное количество разнообразных утилит и библиотек, многие из которых вам наверняка никогда и не понадобятся, но при установке Cygwin позволяет выбрать только нужные вам компоненты. Таким образом, если вы хотите только скомпилировать программу, то вам будет достаточно установить компилятор GCC , набор необходимых библиотек и утилиту make . Лично я установил все приложения, так как Cygwin позволяет легко "избавиться" от них в любое время. На самом деле Cygwin состоит всего из одного файла cygwin1.dll , все остальное является программными пакетами GNU , специально перекомпилированными для работы с Cygwin .



Думаю, что с установкой проблем не возникло. Теперь давайте разберем несколько тонкостей в настройке и в использовании Cygwin . После установки структура папки, в которую была проинсталлированна программа, будет напоминать структуру *nix системы. Для того чтобы запустить Cygwin , достаточно запустить BAT-файл , cygwin.bat , который расположен в корневом каталоге Cygwin (под корневым каталогом будем подразумевать папку, в которую проинсталлирован Cygwin , в дальнейшем отсчет будем вести именно с этого каталога). После запуска BAT-файла перед вами предстанет консольное приложение. Это и есть тот самый Bash , который является связующим звеном между Unix и Windows . Bash - это не просто аналог cmd.exe . Bash - это полноправный язык программирования, на котором можно писать скрипты для выполнения различных задач. Именно этим он в корне отличается от cmd.exe (command.com ).

Приглашение Bash , практически не отличается от cmd.exe (~ - означает ваш домашний каталог). Здесь не существует логических дисков (A, C, D и тд.), отсчет ведется от корневого каталога обозначаемого "/ ". Также необходимо помнить, что регистр здесь имеет значение, так что Etc и etc - два совершенно разных каталога. Давайте попробуем перейти в корневой каталог, для этого достаточно выполнить знакомую вам команду "cd / " (~ должна смениться на / ). После этого наберите команду "dir ", или "ls ", для того чтобы просмотреть содержимое корневого каталога. Думаю, что сейчас вам стало понятно, что такое корневой каталог.





Описать все команды в данной статье я не могу, поэтому перейдем сразу к самому важному этапу, собственно для которого мы и установили Cygwin . Попытаемся скомпилировать какую-нибуддь программу. Для компиляции я выбрал программу Htop (http://freshmeat.net/projects/htop/), это усовершенствованная версия стандартной программы top , которая является консольным менеджером процессов. Первым делом необходимо распаковать архив. Это вы можете сделать как в Windows , так и непосредственно в Cygwin . В Cygwin это делается командой:

tar zxf htop-0.6.tar.gz

Разумеется, что в данный момент вы должны находиться в том же каталоге, где находится архив htop-0.6.tar.gz . После распаковки заходим в созданный каталог htop-0.6 и выполняем три стандартных команды для компиляции приложения.

./configure
make
make install



Вот и все, компиляция закончена. Смело набираем команду htop и любуемся результатом. Получисшийся "EXE"шник" находиться в каталоге /usr/local/bin/ .



Теперь давайте попробуем сами написать простенькую программу (Hello world ) и скомпилировать ее с помощью GCC . Для начала нам нужно написать саму программу, сделаем это с помощью программы cat . Введите команду cat new.c , где new.c имя файла, содержащего исходный код. После выполнения команды напишите следующий код:

#include
int main(){
printf("Hello World");
return 1;}

После того, как код введен нажмите Ctrl+C . Теперь скомпилируем его с помощью GCC . Делается это командой:

Gcc new.c -o new.exe

В той же директории, где находился new.c появится еще один файл - new.exe . Запустив его, вы увидите ожидаемую надпись "Hello World ".



На этом можно было бы завершить статью, но я решил еще рассказать о графической среде Cygwin , чтобы потом не возвращаться к этой теме. Я думаю, вы обратили внимание на то, что при установке пакетов Cygwin предлагает установить оболочки Gnome и KDE . На самом деле это не просто оболочки, а их библиотеки, которые необходимы для запуска приложений. Так, например, графическая версия знаменитого редактора emacs , будет запускаться прямо под Windows , как будто это win32-приложение . Чтобы не быть голословными давайте попробуем этот самый Emacs запустить. Делается это командой:

xemacs

Вот что мы увидим.



Как видите, все прекрасно запускается и работает. Но так бывает не у всех. Графическая среда очень капризна. Поэтому нужно уметь ее конфигурировать. Документации по настройке X-сервера в интернете очень много и вы без труда сможете ее найти.

В конце хотелось бы напомнить, что как бы ни был хорош Cygwin , он всего лишь эмулятор. А как известно копия не может быть лучше оригинала, поэтому если вы хотите стать настоящим Unix-гуру, не поленитесь поставить полноценный unix-дистрибутив. На мой взгляд начинать лучше с Linux . Из всевозможных дистрибутивов рекомендую вам Slackware .

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

Для реализации этого есть несколько решений. В этой статье мы рассмотрим только два из них. Первое, о котором вы, возможно, уже слышали, а может, уже и используете - Cygwin. Второе, нечто более интересное и новое - Cash. Начнем с Cygwin. В последней версии Windows 10 появилось и третье решение - возможность нативно, с помощью специальной подсистемы. Об этом читайте в отдельной статье.

Cygwin - это набор инструментов, обеспечивающий Unix подобную среду в Windows. Здесь нельзя запускать уже существующие утилиты для Linux. Для того чтобы выполнить linux команду из Windows Cygwin, ее нужно сначала перекомпилировать.

Тем не менее пересобрано уже достаточно много программного обеспечения. Cygwin даст вам Linux подобную среду со многими утилитами, к которым вы уже привыкли в Linux. Его можно использовать как для стандартных утилит таких как команда cp windows, так и для подключения к удаленному серверу по ssh.

Установка Cygwin

Как и другие программы Windows, Cygwin устанавливается с помощью установщика в формате.exe. Скачать его можно на официальном сайте.

Для установки вам придется пройти несколько шагов мастера, по умолчанию программа будет установлена в C:\Cygwin:

С установочным пакетом не поставляется полный набор окружения. Оно будет загружено в процессе установки. В этом окне нужно выбрать сервер для загрузки компонентов:

Затем необходимо выбрать пакеты, которые нужно загрузить и установить. Доступно довольно-таки много программ и они рассортированы по категориям. Если вы не знаете нужен ли вам тот или иной пакет, оставьте значение по умолчанию. Вы сможете установить их потом:

Осталось только нажать Next для начала загрузки и завершения установки.

Добавление Cygwin в Path

После завершения установки, чтобы выполнить команды linux в windows с максимальным удобством, желательно добавить папку с исполняемыми файлами Cygwin в переменную среды Path.

Вы можете запустить терминал Cygwin, кликнув по ярлыку на рабочем столе. Откроется терминал с папкой C:\Cygwin\bin

Здесь можно выполнять все нужные linux команды в windows, но вы не сможете их выполнить в другой директории или другом терминале.

Чтобы решить эту проблему, необходимо добавить папку Cygwin в переменную Path. Откройте окно свойства системы с помощью сочетания клавиш Win+Pause/Break, затем выберите пункт Дополнительные параметры системы на левой панели:

На вкладке дополнительно выберите Переменные среды :

Найдите в списке переменную Path и нажмите Изменить :

Добавьте в конец строки вот такую запись:

Обратите внимание, что все пути должны быть разделены точкой с запятой. Осталось нажать Ок и тестировать выполнение Linux команд в Windows.

Cash

Это кое-что совсем новое. Утилита с открытым исходным кодом Cash, это кроссплатформенная реализация командной оболочки Linux на JavaScript. Цель этого проекта обеспечить более гибкую, простую альтернативу Cygwin, для тех кто хочет чувствовать себя в WIndows, как и в Linux.

Установив Cash, вы сможете выполнить linux команду из windows в любом эмуляторе терминала, в том числе в стандартной командной строке Windows.

На данный момент поддерживаются только некоторые утилиты linux для windows. Вот список поддерживаемых:

  • alias
  • clear
  • export
  • false
  • mkdir
  • source
  • touch
  • unalias

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

Вот как все работает:

Что самое интересное, вы можете комбинировать Windows и Linux команды. Например, вы можете выполнить:

ipconfig | grep IPv4 | sort

И команда правильно отработает. Сначала выполнится ipconfig, а затем результат будет отфильтрован с помощью Grep.

Установка Cash в Windows

Я буду устанавливать Cash в Windows 10. Это делается очень просто и работает также в более старых версиях Windows. Поскольку Cash основан на JavaScript для его работы необходимо установить Node.js. Скачать Node.js можно на официальном сайте:

После того как Node.js Будет установлена, можно переходить к установке Cash. Его можно установить в нескольких режимах:

  • Ручное использование Cash - нужно выполнить cash чтобы начать запускать linux команды
  • Глобальное использование - linux команды доступны во всех терминалах windows
  • Установить только некоторые команды - вы можете выбрать компоненты для установки если не хотите ставить все

Для установки Cash глобально откройте командную строку Windows с помощью Win+R:

npm install cash-global -g

Установка может занять несколько минут, в зависимости от скорости вашего интернет-соединения. После завершения установки вы можете сразу тестировать Linux команды в Windows.

Выводы

Как я уже говорил, проект Cash еще на стадии разработки и есть вероятность что вы столкнетесь с ошибками. Не забудьте сообщить о найденных ошибках разработчикам, чтобы помочь улучшить проект. Если для вас критична стабильность лучше использовать старый добрый Cygwin.

Нам, пользователям Linux нечасто понадобиться использование unix команд в windows и такие инструменты. Мы можем использовать Linux команды напрямую в нашей системе. Но если вы по каким-либо причинам не можете установить Linux, и все же хотите использовать linux команды, это может быть отличным решением.

Об авторе

Основатель и администратор сайта сайт, увлекаюсь открытым программным обеспечением и операционной системой Linux. В качестве основной ОС сейчас использую Ubuntu. Кроме Linux интересуюсь всем, что связано с информационными технологиями и современной наукой.

Проста и в принципе всем хороша. Только вот версия Git, там не самая свежая, по крайней мере сейчас. Но ее вполне достаточно для повседневной работы с Git. Если мы посмотрим версию, то увидим:

$ git --version
git version 1.9.5.msysgit.0

Но если вдруг надо что-то более свежее, то можно установить Git из пакетов Cygwin . Для этого естественно нужно установить и сам Cygwin. В этом нет ни чего сложного. Идем сюда и качаем установщик. Это именно установщик , а не дистрибутив . Так как он качает все пакеты из сети. И кроме того, его же надо использовать чтобы обновить установленные пакеты или установить новые.

И так качаем

И запускаем установщик

Делай раз, два, три

В любом случае, если что-то потом понадобится, то можно скачать и установить. Как видим версия Git в данном пакете 2.1.4, что уже явно посвежее 1.9.5. Хотя под Linux и Mac OS X уже доступен 2.3.1.

На всякий случай приведу еще парочку быстрых серверов для загрузки

Этот вообще просто сказка

Ну вот все и установилось

Запускаем и видим что при первом запуске нам сообщают где находятся конфигурационные файлы:

На рисунке справа видно где находится домашний каталог пользователя. Это папка установки (в моем случае C:\cigwin64 ), далее папка home , затем папка с именем пользователя и в ней уже файлы конфигов .bashrc , .bash_profile , .inputrc и .profile .

Вся конфигурация терминала делается в этих файлах. Тут описывать это не буду, так как это большая отдельная тема.

Замечу лишь что основные настройки bash делаются в файле .bash_profile .

Так же можно отметить, что в домашнем каталоге так же будет размещаться и файл настроек Git – .gitconfig

Кроме того, настроить внешний вид терминала можно кликнув по иконке терминала в левом верхнем углу и выбрав Options.

Если вам нужны какие-то дополнительные пакеты для Cygwin, то поискать их можно .

После всех настроек мое окно терминала Cygwin выглядит так. И тут же посмотрим версию установленного Git.

Ну вот у нас и полноценный Git. Теперь (быстренько) проверим его работу на реальном репозитории.

Все работает.

P.S. Что еще раз стоит отметить, так это то, что глобальные и системные (global, system) настройки msysGit и Git установленного из Cygwin хранятся в разных местах, и друг другу ни как не мешают и не перекрывают, на мой взгляд это удобно, поскольку все виндовые тулзы пытаются записать свои настройки в глобальный файл настроек.gitconfig и это может, иногда, создавать не удобства и путаницу.

Эта статья будет полезна начинающим пользователям Cygwin. Начнем с того, что нам для начала нужно ответить на простой вопрос. Что же такое Cygwin? Cygwin - это UNIX-подобная среда и интерфейс командной строки для Microsoft Windows. В системе Microsoft Windows уже существует подобный интерфейс cmd. Вызвать командную строку можно сочетанием клавиш Win+R. Но зачастую большую часть работы Windows пользователям приходится делать вручную. По другую сторону Linux пользователь уже давно написал bash-скрипт и сидит пьет пиво в сторонке от автоматизированного рабочего процесса.

Так что же мешает сделать это и в ОС Windows? Правильно, абсолютно ничего не мешает. Но для этого нужны дополнительные программы и библиотеки. Программа Cygwin расширяет возможности стандартной командной строки Windows, позволяя автоматизировать некоторые процессы и разрабатывать программы для Linux и других систем.

Программу Cygwin можно качать с официального сайта: Ссылка на 32 битную версию программы и Ссылка на 64 битную версию программы .

Выбираем нужную версию, скачиваем и запускаем исполнительный файл setup-x86.exe и setup-x86_64.exe соответственно.

Окно установки 64 битной версии программы


Окно выбор способа установки


Окно выбора пакетов

Окно установки 32 битной версии программы выглядит точно так же как и 64 битной. Следующим шагом будет окно выбора. Откуда устанавливать или скачивать программу. Всего есть три варианта. Первый вариант Install from Internet (downloaded files will be kept for future re-use) установка из интернета причем загруженные файлы будут храниться до следующего повторного использования. Второй вариант Download Without Installing скачать без установки. Третий вариант Install from Local Directory установка из локального каталога. Т.к. у нас нет локальной копии и нам нужно установить то выбираем первый вариант. Следующее окно будет выбор пути установки. Рекомендую выбрать системный диск, к примеру у меня путь установки Cygwin это C:\cygwin64. Следующее окно это выбор пути где будут храниться временный файлы которые будут скачиваться в процессе установки. У меня это C:\cygwin64\package. Потом нужно выбрать как скачивать через прокси или напрямую. Следующим шагом будет выбор репозитория скачки выбираем любой попавшийся или тот что по умолчанию и жмем Далее. После нажатия кнопки далее начнется процесс скачивания основных конфигов. Следом вы сможете выбрать что устанавливать. Чтобы выбрать пакет нужно нажать Skip около названия пакета. Список пакетов которые вам пригодятся:

  • gcc-core (в разделе Devel)
  • gcc-g++ (в разделе Devel)
  • make (в разделе Devel)
  • cmake (в разделе Devel)
  • automake (в разделе Devel)
  • wget (в разделе Web)
  • libiconv (в разделах Devel и Libs)
  • openssh (в разделе Net)
  • nano (в разделе Editors)
  • bash (из раздела Base)
  • base-cygwin (из раздела Base)
  • base-files (из раздела Base)
  • cygwin (из раздела Base)
  • file (из раздела Base)
  • gzip (из раздела Base)
  • login (из раздела Base)
  • mintty (из раздела Base)
  • openssl (из раздела Base)
  • run (из раздела Base)
  • tar (из раздела Base)
  • vim-minimal (из раздела Base)
  • cron (из раздела Admin)
  • shutdown (из раздела Admin)
  • git (все пакеты из раздела Devel)

Мне не симпатизировал ни цвет фона, ни встроенный шрифт и цвет текста поэтому я кастомизировал его. На этих словах я закончу эту статью.

Cygwin (Сигвин) представляет собой набор Unix программ и библиотек, скомпилированных под ОС Windows и размещенных в файловой системе таким же образом как и в настоящем Unix-е. Благодаря этому мы получаем полный эквивалент Unix среды начиная от bash и вплоть до компиляторов gcc, которыми без особого портирования исходного кода можно собирать проекты для выполнения в Windows (достаточно большое количество кросс-платформенных приложений используют такой подход, так как он наиболее простой и быстрый).

Установка Cygwin

Скачать Cygwin для 32х или 64х - разрядной версии можно на сайте https://cygwin.com/install.html . Установка весьма простая - можно просто нажимать "Далее" до окна выбора пакетов (Select Packages). Тут перед вами откроется база пакетов, причем некоторые из них уже будут отмечены для остановки (базовы), другие вы можете отметить сами. Для того, что бы отметить пакет на установку, нужно ввести его имя в поле "Search", затем раскрыть категории и найти этот пакет. Потом нажать "Skip", в результате чего вместо Skip должна появится версия, которая будет установлена. Для дальнейшей работы отметьте пакет wget , остальное можно пока не трогать. Пакеты можно будет доустановить или удалить в любой момент времени, просто повторно запустив установщик, но это не совсем удобно, поэтому дальше в статье я расскажу как устанавливать пакеты из командной строки (для этого нам и понадобится wget).

По дефолту cygwin запускается в стандартном терминале Windows, что не очень удобно.

Терминал Console

Установка пакетов для python с помощью pip

Пакеты в python часто устанавливаются с помощью pip, которого нету в репозиториях сигвина.

Поэтому его нужно установить отдельно:

MAN-страницы для функций libc

Cygwin уже содержит мануал-страницы для стандартных команд, однако man для функций libc можно установить отдельно:

Кстати Cygwin в некотором роде связан со встраиваемыми системами, так как использует Newlib реализацию libc, которая как известно повсеместно применяется в разных ARM-тулчейнах.

Vim в Cygwin

Установка:

Настройка выполняется в файле.vimrc в домашней директории:

Я пользуюсь такими настройками:

set backspace=indent,eol,start

Syntax enable

set shiftwidth=4

set tabstop=8

set softtabstop=4

set expandtab

set number

set showcmd

set cursorline

filetype indent plugin on

set wildmenu

set lazyredraw

set showmatch

set incsearch

Использование "родного" терминала Cygwin Terminal

Стандартный установщик Cygwin предоставляет свой терминал mintty (запускается через иконку Cygwin Terminal). В сравнении с Console он немного уступает в функциональности (например в нем нет вкладок), но он также имеет неплохой функционал, да и телодвижений меньше. Одной из приятных возможностей выступает поддержка 256-ты разрядных цветов в терминале:

Это позволяет использовать удобные темы подсветки синтаксиса для vim, например badwolf:

Для её активации, в.vimrc надо добавить:

Выглядить это будет так:

Как сделать чтобы сохранялась история команд в bash cygwin?

В файле.bashrc нужно найти добавить:

В первой указывается размер файла истории (10 тысяч команд), во второй включается удаление дубликатов команды (если введенная команда уже есть в истории, то старая удаляется для экономии места), и в третьей включается ведение истории bash.

Как в Cygwin перейти по пути заданному в стиле Windows?

Для первращения win-подобного пути в unix-style путь можно использовать утилитку cygpath.

В результате путь превратится в "/cygdrive/d/projects/some/src" и передастся как аргумент cd.