Разработка кроссплатформенных приложений — дело непростое. В особенности оно непростое благодаря Windows, в котором все не как у людей. Тут тебе ни нормального терминала, ни нормальных консольных утилит, вообще ничего нет! В очередной раз столкнувшись с этой проблемой, я решил снова попробовать Cygwin. И знаете, оказывается, он действительно делает из Windows нечто, чем почти можно пользоваться!
Скачать инсталлятор Cygwin можно отсюда . На самом деле, это не столько инсталлятор, сколько пакетный менеджер, который при запуске прямо таки спрашивает, какие пакеты вы хотели бы поставить. Ребята! Пакетный менеджер! Под винду! Инсталлятор создает кэш в каталоге, из которого он будет запущен. Поэтому перед запуском лучше создать какую-нибудь специальную папочку на рабочем столе и положить инсталлятор в нее.
Какие пакеты на мой взгляд необходимо поставить:
- openssh — мастхев;
- inetutils , bind-utils , ping , nc и nc6 — мастхев;
- wget , curl — мастхев;
- python и/или python3 — считаю, что мастхев;
- vim , gvim — для правки небольших файлов лишним не будет;
- diffutils , pwgen , unzip , rzync — пусть будут на всякий случай;
- gcc и/или clang , cmake , gdb — если нужно;
- screen , tmux , mc — для любителей;
- git — под очень большим вопросом, см ниже;
Обратите внимание! Чтобы в Cygwin установить pip, поставьте галочку напротив пакета python-setuptools и/или python3-setuptools . После установки в терминале скажите:
… и/или:
…, смотря какую версию или версии Python вы поставили.
Итак, после установки Cygwin можно открыть терминал:
Ребята! Нормальный терминал, который ресайзится, позволяет копировать и вставлять текст, и вот это все! Под винду! Со всем хорошо знакомыми и привычными командами id, ls, pwd, cat, ssh, scp, и другими. С человеческим окружением — .bashrc, ~/.ssh/config, и так далее. Плюс к этому, в отличие от позорной поделки под названием PowerShell, Cygwin не тащит за собой .NET Framework. Мы даже можем открыть несколько терминалов и переключаться между ними при помощи сочетания Ctr + Tab. Это почти как табы! Понятное дело, старый-добрый Alt + Tab тоже работает.
Выше я не советовал устанавливать Git , и вот почему. Дело в том, что в Cygwin он заметно тормозит. Тут рекомендуют выполнить команды:
git config —global core.fscache true
git config —global gc.auto 256
Но это, к сожалению, не решает проблему полностью. Так на большом проекте команда git status
может выполняться секунд 20. В Linux на точно таком же репозитории команда отрабатывает мгновенно. Git for Windows с включенным флагом core.fscache (который можно поставить прямо в инсталляторе) работает заметно лучше, поэтому советую использовать его.
Еще вы можете обнаружить, что курсор очень трудно разглядеть, когда он находится над черным терминалом. В панели управления можно поменять, как выглядит курсор, расположенный над текстом — это решает проблему.
Также расстроило, что среди доступных пакетов не удалось обнаружить Nmap .
В остальном же Cygwin прекрасен и делает жизнь под Windows почти что сносной. Еще с его помощью можно установить Zsh , Gimp, Emacs, Mutt , Irssi , Texlive, Apache, MySQL и PostgreSQL например. Плюс чуть ли не весь KDE можно установить. Правда, на такие эксперименты я не отваживался.
А пользуетесь ли вы Cygwin и каковы ваши впечатления от него?