Куда сохраняет файлы cygwin
Желание получить возможности Git на Windows платформе материализовало стремление повозиться с разными схемами настройки.
2. Осознание
Нужно осознать, что придется использовать программы Cygwin,SSH,GitExtenstions,Git,Gitolite
Cygwin — это программа, которая эмулирует окружение Linux.У нее есть свое черное окно, выглядящее и работающие как окно терминала Linux.
MsysGit — это программа для эмуляции git окружения, но без ssh сервера, поэтому мы не будем использовать на сервере репозитариев. Используем только для клиентов репозитария.
SSH — это программа для использования ssh подключений из ssh клиентов, доступная для всех операционных систем.
SSH сервер — это программа принимающая подключения от ssh клиентов.
Git — это набор программ, включая сам git, для работы с репозиториями файлов.
Gitolite — это программа, обертывающая git, и реализующая функции управления репозитариями: управление пользователями, их доступом и т.п.
GitExtensions — это программа для windows, обертывающая функционал как git, так прилагающегося набора программ в GUI, который также, встраивается в среду разработки Visual Studio 05/08/10.
В корпоративе придется выделить ресурсы для хостинга SSH службы, дисковое пространство для размещения репозитариев.
Человека, который будет обслуживать SSH сервер, доступ к репозиторию.
Научить пользователей использовать аналоги функций для взаимодействия с их старыми система контроля версий через GitExtensions.
Предложить им некоторые схемы работы, которые позволяет достичь Git.
UPD: 05.08.2011
UPD: 30.01.2012
3. Идем к результату: Хостинг для комплектующих
Логин Alexei мой логин в windows, base имя машины. Все сходится.
4. Идем к результату: Настройка SSH сервера
Запускаем Cygwin Terminal.
Запускаем конфигурацию SSH сервера командой ssh-host-config.
Заходим в /etc/sshd-config и подключаем авторизацию без пароля:
Раскомментируем эти строчки:
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
Для всех пользователей, кто будет работать с Git, нужно настроить вход на SSH сервер, через пользователя git (или другое имя) тв режиме без пароля.
Немного теории о работе SSH сервера.
При подключении из SSH клиента через строку подключения git@localhost, первое, что происходит-
поиск приватной части ключа в каталоге .ssh, если в CYGWIN — то ~/.ssh/, если windows — то c:/users/вашеимя/.ssh
Дальше в файле authorized_keys в профиле git на сервере localhost ищется текст, у которого есть маркер, равный вашему текущему имени пользователя. Если он находится, то вы получаете терминал, в который загружен профиль пользователя git.
Клиенты есть в cygwin, есть в gitbash, есть такие, как putty. Нас интересует ssh клиент, который в cygwin.
Вызывается он командой ssh с аргументами git@localhost, где git- имя пользователя, в профиль которого мы хотим зайти через ssh и localhost (это адрес сервера SSH).
Собственно, сейчас мы и сделаем так, чтобы работало как сказано выше.
- Вводим еще одного юзера под именем git. Это имя будет для служебных операций.
Открываем Computer managment ->Local User and Groups ->Users-> пкм -> New User ->
имя Git, пароль 123456, оставляем галочку «Password never expires»->OK
Открываем Cygwin Bash Shell, вводим команду mkpasswd -l -u git >> /etc/passwd
Оживляем профиль пользователя командой:
Выходим из профиля нажав Ctrl+D или командой exit. - Генерируем для своего логина ключ. В моем случае для логина Alexei.
Команда ssh-keygen -t rsa создаст ключ в папке, который будет состоять из двух файлов
id_rsa (приватная часть, хранится у вас ) и id_rsa.pub (публичная часть ключа).
дальше вносим публичную часть ключа в файл authorized_keys в профиль пользователя git
через команду ssh-copy-id -i git@localhost.
Запускаем SSH сервер командной:
Копируем публичную часть ключа в профиль git:
Проверяем получилось ли настроить как нам нужно. Запускаем команду ssh git@localhost и ожидаем приглашения терминала
от пользователя git.
Все получилось настроить.
Если не получилось, переходим к пункту 10
5. Идем к результату: Настройка Gitolite
- Теперь нужно установить gitolite, так же он установит и настроит репозитарии для хранения файлов. Переходим в /tmp и скачиваем средствами git программу gitolite:
Дальше заходим в /gitolite/src/ и запускаем ./gl-easy-install со следующими ключами
git localhost Alexei. git — это логин куда будет установлен gitolite, localhost адрес SSH сервера, Alexei имя пользователя одновременно и имя приватной и публичной части ключа.
Когда спросит ввести пароль, то нажимаем просто Enter, так как пароль нигде не нужен. - Далее проходим до следующего экрана установки
Это окно показывает открытый файл .gitolite.rc в редакторе vim.
Нужно пройти курсором до места вставки текста, нажать I, ввести текст
$ENV="/usr/local/bin:/usr/bin:/bin";
Текст нужно вводить без ошибок, иначе запутаетесь в этом редакторе.
Для простоты, можно скопировать текст, потом переместить курсор в нужное место, нажать I, потом нажать на
иконке черного окошка(терминала, командной строки и т.п.) выбрать edit->paste и строчка вставиться.
Нажимаем после ввода ESC, нажимаем shift+:, набираем wq, нажимаем Enter.
Эта строка позволит gitolite вызывать программы из cygwin окружения, у которых схожие имена с программами windows. Например команда find есть и там и там. И если не указать, gitolite будет работать с ошибками и даже программа установки, будет работать с ошибками, так как будет использоваться find из windows.
Нажимаем еще несколько раз Enter и получаем следующую картинку:
6. Идем к результату: Настройка GitExtensions
7. Идем к результату: Настройка пользователя
- Обеспечить наличие файла Alexei в папке .ssh/ текущего профиля c:/users/Alexei/.ssh/
- Обеспечить наличие файлика config в той же папке.
- для того, чтобы это сделать, нужно взять их из c:\cygwin\home\вашеимя\.ssh\config и вашеимя
и скопировать в c:\users\вашеимя\.ssh\ - Это вариант, для случая когда за нас уже была сделана часть работы, в данном случае программой gitolite.
в начале она сгенерировала для нас вашеимя и вашемя.pub файлы ключа. Отправила pub версию в файлик authrozied_keys профиля git.
и еще дописала настройки к этому ключу в authorized_keys.
Посмотрим этот измененный authorized_keys - Пояснение к информации.
Приватные части ключей размещены блоками с пометкой в конце: для какой пользователя и с какого адреса.
Первая приватка- от моего первого ключа id_rsa.pub.
Вторая приватка- от ключа Alexei.pub, который уже делал сам gitolite; как видно, gitolite добавляет расширенную информацию к ключу, что и обеспечивает всё взаимодействие системы.
- Чтобы настроить нового пользователя, ему нужно установить для легкости: gitextensions с включенным msysgit и openssh.
Дальше нужно настроить пользователю ключ для входа в профиль git на localhost.
Для этого открываем start menu->git ->git bash и вводим ssh-keygen -t rsa, получаем два файла ключа.
Отдаем файл pub человеку, который обслуживает git.
8. Идем к результату: Алгоритм работы для админа репозитария
9. Смотрим на результат
- Чтобы увидеть- надо попробовать.
Запускаем GitExtensions.
Настраиваем его, на вкладке Git, должно быть следующуе:
Эта папка появляется, если вместе с GitExtensions установить mSysGit (его нужно установить каждому клиенту).
Выбираем clone repository, в адресе ставим git@gitolite:testing.git, папку назначения любую.
нажимаем clone и получаем пустой репозитарий testing.
и можно получить такое окно:
Которое означает нарушение безопасности в ssh соединении.
В данном случае наш SSH сервер находится на нашем компьютере, поэтому чтобы быстро решить эту проблему, удаляем файлик c:\users\Alexei\.ssh\known_hosts, пытаемся еще раз сделать Clone.
Появится следующее окно:
Нажимаем yes и Enter.
Появится следующее окно:
Информация в нем означает, что вся цепочка работает.
Открыв папку d:\test.rep увидим, там скрытую папку .git, что и означает успех. - Почему в адресе git@gitolite, gitolite, а не localhost? потому что есть файл config, в котором прописана настройка для слова gitolite. Если клиент ssh видит, что мы указали в адресе сервера слово, схожее с тем, что есть в config, то он применяет настроики из этого файла. В принципе, можно не использовать config, тогда приватный ключ будет называться по умолчанию id_rsa и адрес сервера localhost(или ip адрес).И это будет выглядеть так git@localhost. Но так сделать нельзя. Так как gitolite не поймет кто есть кто. Поэтому, у всех вместо id_rsa лежит файлик с приватной частью, а имя его отличается от всех других.
Посмотрим на файл:
Вы можете просто открыть терминал cygwin и написать: cd и после перетаскивания n отпустить нужную папку и войти!
При установке Cygwin (или, если вы уже установили его, загрузите его снова и снова запустите программу установки для запуска обновления), убедитесь, что вы выбрали пакет chere в категории "Оболочки".
После запуска Cygwin откройте терминал Cygwin (как администратор) и введите команду: chere -i -t mintty -s bash .
Теперь вы должны иметь "Bash Prompt Here" в контекстном меню Windows правой кнопкой мыши.
(mintty - это терминал Cygwin по умолчанию. Если вы не выберете его с -t , ваша "Bash Prompt Here" будет использовать тот же терминал, что и командная строка Windows, что предотвращает горизонтальное изменение размера.)
Вот что я использую. Для этого не требуется chere пакет или реестр. Работает в Windows 7.
Создайте ярлык с именем Bash Here , имеющий это в поле Target :
В проводнике Windows щелкните правой кнопкой мыши папку и выберите Send To > Bash Here .
И вот противоположный трюк, открывающий проводник Windows в текущем каталоге bash. Создайте этот псевдоним:
Примечание. Часть выше cygpath -w . заключена в обратные тики.
Теперь просто введите winx в приглашении bash, и там появится Win Explorer.
Примечание. Если winx направляет вас в папку с вашими документами, попробуйте
Я создал файл .reg, который помещает опцию "Открыть Cygwin Here" в контекстном меню правой кнопки мыши.
Это зависит от пакета Cygwin "chere", который вы можете установить с помощью apt-cyg, если вы не установили его в начальной настройке.
С терминала cygwin запустите эту команду:
echo "cd your_path" >> ~/.bashrc
.bashrc script запускается при открытии нового сеанса bash. Код выше с изменением каталога your_path при открытии новой сессии cygwin.
Для cygwin64 или установок без такой возможности вы можете использовать следующую команду в записи реестра (предполагая, что окна связаны с вашим путем, также если в каталоге установки cygwin указано c:\cygwin64)
Если вы хотите, чтобы этот каталог был по умолчанию, просто добавьте оператор cd в ваш файл ~/.profile .
То, что я обычно делаю, это использовать этот метод для установки моего обычного каталога, а также определить псевдонимы для моих общих случаев:
или ваш эквивалент. Это позволяет мне быстро менять каталоги.
Как сказал two7s_clash, сначала нужно установить пакет chere и настроить mintty:
Откройте терминал Cygwin от имени администратора apt-cyg install chere chere -i -t mintty
Теперь вы можете открыть cygwin в определенном каталоге, щелкнув правой кнопкой мыши в проводнике Windows (контекстное меню) и выбрав "Bash Prompt Here".
Вы также можете открыть cygwin из определенного каталога с помощью командной строки Windows:
Открыть окно командной строки Перейдите ( cd ) в пользовательский каталог
Выполните C:\cygwin64\bin\mintty.exe C:\cygwin64\bin\env.exe CHERE_INVOKING=1 C:\cygwin64\bin\bash.exe -l
Эта команда откроет cygwin с текущим каталогом, взятым из командной строки.
7 ответы
Начиная с Cygwin 1.7.34, рекомендуемый способ сделать это - добавить настраиваемый db_home установка для /etc/nsswitch.conf . Обычно при этом желают сделать ваш домашний каталог Cygwin таким же, как и каталог вашего профиля пользователя Windows. Этот параметр сделает это:
Или, что то же самое:
Вам нужно использовать последнюю форму, если вы хотите внести какие-либо изменения в эту схему, например, чтобы разделить ваши домашние файлы Cygwin в подкаталог каталога вашего профиля пользователя Windows:
Есть несколько других альтернативных схем для windows вариант плюс несколько других % токены, которые вы можете использовать вместо %H или в дополнение к нему. Видеть что собой представляет nsswitch.conf описание синтаксиса в Руководство пользователя Cygwin для получения информации.
Если вы установили Cygwin до версии 1.7.34 или запустили его mkpasswd утилита так что у вас есть /etc/passwd файл, вы можете изменить свой домашний каталог Cygwin, отредактировав запись вашего пользователя в этом файле. Ваш домашний каталог - это предпоследний элемент в строке вашего пользователя в /etc/passwd .¹
Каким бы способом вы это ни делали, это вызывает HOME переменная окружения, устанавливаемая при запуске оболочки .²
Видеть этот пункт часто задаваемых вопросов для получения дополнительной информации по теме.
Примечания:
Рассмотрите возможность переезда /etc/passwd и /etc/group в стороне, чтобы использовать новый механизм на базе SAM / AD .
Пока можно просто установить %HOME% через Панель управления, это официально обескураженный. Он не только бесцеремонно отменяет вышеуказанные механизмы, но и не всегда работает, например, при запуске сценариев оболочки через cron .
Проблемы, упомянутые здесь @Allan с установками git, решаются путем установки переменной среды Windows для HOME, а затем воссоздания /etc/passwd файл. Видеть мой ответ здесь чтобы избежать таких проблем. - Кристофер
db_home: /%H может разрешаться для имени пользователя домена (вместо имени локального пользователя), что может быть не тем, что вы хотели бы иметь. db_home: /cygdrive/c/Users/%U сделал то, что хотел. - Abdull
Я вижу разницу в производительности между различными методами. Когда я использую db_home: windows , занимает sh около 2.5–3.5 секунд для запуска. Когда я использую db_home: /cygdrive/c/Users/%U , занимает sh от 0.9 до 1.0 секунды для запуска. Когда я удаляю db_home строку или жестко закодируйте его в домашний каталог Windows, sh для запуска требуется от 0.2 до 0.3 секунды. Я использую жестко запрограммированное решение, например db_home: /cygdrive/c/Users/susam , потому что я часто запускаю сценарии оболочки из командной строки, используя sh команда, например sh foo.sh и ждать больше 2 секунд становится неудобно. - Сусам Пал
Спасибо @abdull, db_home: / cygdrive / c / Users /% U - это то, что мне было нужно. db_home: windows использует "/ home /% U", которого нет в моей конфигурации. - Джефф
FreeCommander
Эту команду также можно использовать для открытия cygwin из пользовательского файлового менеджера, например, FreeCommander.
Чтобы открыть cygwin с текущим каталогом, взятым из FreeCommander, сделайте следующее:
Инструменты → Избранные инструменты → Редактировать любимые инструменты. (Ctrl + Shift + Y)
Добавить новую панель инструментов (+ значок), ярлык: Вставить
-
Имя: cygwin Программа или папка: C:\cygwin64\bin\mintty.exe Начальная папка: %ActivDir% Параметр: C:\cygwin64\bin\env.exe CHERE_INVOKING=1 C:\cygwin64\bin\bash.exe -l
Вы можете добавить собственный ярлык для открытия Cygwin из FreeCommander:
Сервис → Определить сочетания клавиш Прокрутите вниз до "Любимый инструмент 01" (или "Любимый инструмент N") Назначьте новую комбинацию клавиш: я использую Ctrl + Shift + T
Эта статья будет полезна начинающим пользователям Cygwin. Начнем с того, что нам для начала нужно ответить на простой вопрос. Что же такое Cygwin? Cygwin — это UNIX-подобная среда и интерфейс командной строки для Microsoft Windows. В системе Microsoft Windows уже существует подобный интерфейс cmd. Вызвать командную строку можно сочетанием клавиш Win+R. Но зачастую большую часть работы Windows пользователям приходится делать вручную. По другую сторону Linux пользователь уже давно написал bash-скрипт и сидит пьет пиво в сторонке от автоматизированного рабочего процесса.
Так что же мешает сделать это и в ОС Windows? Правильно, абсолютно ничего не мешает. Но для этого нужны дополнительные программы и библиотеки. Программа Cygwin расширяет возможности стандартной командной строки Windows, позволяя автоматизировать некоторые процессы и разрабатывать программы для Linux и других систем.
Выбираем нужную версию, скачиваем и запускаем исполнительный файл 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)
Также рекомендую полностью установить раздел Perl и Python. После этого жмем далее и произойдет установка нужных пакетов и их зависимостей. После конца установки можно будет запустить сам Cygwin и начать работу.
Мне не симпатизировал ни цвет фона, ни встроенный шрифт и цвет текста поэтому я кастомизировал его. На этих словах я закончу эту статью.
Я только что установил Cygwin, и похоже, что домашний каталог в приглашении bash находится на моем диске Z :. Это не то, чего я хочу.
Как я могу изменить это?
задан 29 сен '09, 17:09
FreeCommander
Эту команду также можно использовать для открытия cygwin из пользовательского файлового менеджера, например, FreeCommander.
Чтобы открыть cygwin с текущим каталогом, взятым из FreeCommander, сделайте следующее:
Инструменты → Избранные инструменты → Редактировать любимые инструменты. (Ctrl + Shift + Y)
Добавить новую панель инструментов (+ значок), ярлык: Вставить
-
Имя: cygwin Программа или папка: C:\cygwin64\bin\mintty.exe Начальная папка: %ActivDir% Параметр: C:\cygwin64\bin\env.exe CHERE_INVOKING=1 C:\cygwin64\bin\bash.exe -l
Вы можете добавить собственный ярлык для открытия Cygwin из FreeCommander:
Сервис → Определить сочетания клавиш Прокрутите вниз до "Любимый инструмент 01" (или "Любимый инструмент N") Назначьте новую комбинацию клавиш: я использую Ctrl + Shift + T
Эта статья будет полезна начинающим пользователям Cygwin. Начнем с того, что нам для начала нужно ответить на простой вопрос. Что же такое Cygwin? Cygwin — это UNIX-подобная среда и интерфейс командной строки для Microsoft Windows. В системе Microsoft Windows уже существует подобный интерфейс cmd. Вызвать командную строку можно сочетанием клавиш Win+R. Но зачастую большую часть работы Windows пользователям приходится делать вручную. По другую сторону Linux пользователь уже давно написал bash-скрипт и сидит пьет пиво в сторонке от автоматизированного рабочего процесса.
Так что же мешает сделать это и в ОС Windows? Правильно, абсолютно ничего не мешает. Но для этого нужны дополнительные программы и библиотеки. Программа Cygwin расширяет возможности стандартной командной строки Windows, позволяя автоматизировать некоторые процессы и разрабатывать программы для Linux и других систем.
Выбираем нужную версию, скачиваем и запускаем исполнительный файл 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)
Также рекомендую полностью установить раздел Perl и Python. После этого жмем далее и произойдет установка нужных пакетов и их зависимостей. После конца установки можно будет запустить сам Cygwin и начать работу.
Мне не симпатизировал ни цвет фона, ни встроенный шрифт и цвет текста поэтому я кастомизировал его. На этих словах я закончу эту статью.
Я только что установил Cygwin, и похоже, что домашний каталог в приглашении bash находится на моем диске Z :. Это не то, чего я хочу.
Как я могу изменить это?
задан 29 сен '09, 17:09
Cygwin 1.7.33 или более ранняя
Для тех, кто использует Сигвин 1.7.33 или ранее обновите до последняя версия Cygwin и удалить ранее использованные /etc/passwd и /etc/group файлы, затем просмотрите шаги, описанные выше.
В противном случае выполните эти более старые шаги ниже.
Во-первых, установите переменную среды Windows для HOME, которая указывает на ваш профиль пользователя:
- Откройте Система на Панель управления
- На Дополнительно щелчок по вкладке Переменные среды (ближе к низу)
- В области «Пользовательские переменные» нажмите «Создать…»
- В поле Имя переменной введите HOME
- Для значения переменной введите %USERPROFILE%
- Нажмите ОК во всех открытых диалоговых окнах, чтобы применить этот новый параметр.
В командной строке Cygwin bash введите следующее:
-d switch указывает mkpasswd включать пользователей DOMAIN, а -l выводить только ЛОКАЛЬНЫХ пользователей машины. Это важно, если вы используете ПК на работе, где информация о пользователе получена от контроллера домена Windows.
Теперь вы также можете сделать то же самое для групп, хотя в этом нет необходимости, если только вы не будете использовать компьютер, который является частью домена Windows. Cygwin считывает информацию о группе из баз данных учетных записей Windows, но вы можете добавить /etc/group файл, если ваш компьютер часто отключается от контроллера домена.
В командной строке Cygwin bash введите следующее:
Теперь выйдите из Cygwin и запустите его снова. Вы должны обнаружить, что ваш HOME путь указывает на то же место, что и ваш профиль пользователя Windows, т.е. /cygdrive/c/Users/username
Эта статья будет полезна начинающим пользователям Cygwin. Начнем с того, что нам для начала нужно ответить на простой вопрос. Что же такое Cygwin? Cygwin — это UNIX-подобная среда и интерфейс командной строки для Microsoft Windows. В системе Microsoft Windows уже существует подобный интерфейс cmd. Вызвать командную строку можно сочетанием клавиш Win+R. Но зачастую большую часть работы Windows пользователям приходится делать вручную. По другую сторону Linux пользователь уже давно написал bash-скрипт и сидит пьет пиво в сторонке от автоматизированного рабочего процесса.
Так что же мешает сделать это и в ОС Windows? Правильно, абсолютно ничего не мешает. Но для этого нужны дополнительные программы и библиотеки. Программа Cygwin расширяет возможности стандартной командной строки Windows, позволяя автоматизировать некоторые процессы и разрабатывать программы для Linux и других систем.
Выбираем нужную версию, скачиваем и запускаем исполнительный файл 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)
Также рекомендую полностью установить раздел Perl и Python. После этого жмем далее и произойдет установка нужных пакетов и их зависимостей. После конца установки можно будет запустить сам Cygwin и начать работу.
Мне не симпатизировал ни цвет фона, ни встроенный шрифт и цвет текста поэтому я кастомизировал его. На этих словах я закончу эту статью.
Cygwin 1.7.34+
Для тех, кто использует Сигвин 1.7.34 или выше Cygwin поддерживает настройку получения информации о домашнем каталоге, оболочке входа и gecos в /etc/nsswitch.conf . Это подробно описано в разделе руководства пользователя Cygwin:
Если вы ранее создали /etc/passwd or /etc/group вы захотите удалить их и настроить Cygwin, используя новую модель безопасности Windows для сопоставлений POSIX.
/etc/nsswitch.conf файл db_home: Параметр определяет, как Cygwin выбирает домашний каталог пользователя. Настройка по умолчанию для db_home: is
Поэтому по умолчанию Cygwin просто устанавливает домашний каталог на /home/$USERNAME . Вы можете изменить это, указав любой другой путь по вашему желанию. Поддерживаемые подстановочные знаки:
- %u Имя пользователя Cygwin (строчная буква u).
- %U Имя пользователя Windows (буква U в верхнем регистре).
- %D Домен Windows в стиле NetBIOS.
- %H Домашний каталог Windows в стиле POSIX. Обратите внимание, что для db_home: установка, это имеет смысл только сразу после предыдущей косой черты, как в db_home: /%H/cygwin
- %_ Поскольку для разделения схем используются пробелы и символы TAB, пробел в имени файла должен быть указан как %_ (это подчеркивание).
- %% Процентный символ.
Вместо пути вы можете указать одну из четырех предварительно определенных схем именованных путей.
windows Домашний каталог пользователя устанавливается в тот же каталог, который используется в качестве домашнего каталога Windows, обычно что-то вроде %USERPROFILE% or C:\Users\$USERNAME . Конечно, каталог Windows конвертируется в стиль POSIX Cygwin.
cygwin Только AD: для домашнего каталога пользователя задан путь POSIX, указанный в атрибуте cygwinHome из вспомогательного класса cygwinUser. Смотрите также раздел под названием «Схема cygwin».
unix Только AD: для домашнего каталога пользователя задан путь POSIX, указанный в атрибуте unixHomeDirectory из вспомогательного класса posixAccount. Смотрите также раздел под названием «Схема unix».
desc Домашний каталог пользователя установлен на путь POSIX, указанный в настройке home = ". ", подобной XML, в атрибуте описания пользователя в SAM или AD. См. Подробное описание в разделе «Схема desc».
Следующее сделает домашний каталог пользователя в Cygwin таким же, как и домашний каталог Windows.
Читайте также: