LINUX.ORG.RU

Непонятные танцы с бубном при установке Cygwin в Windows7

 ,


0

1

Приветствую, форумчане!

Не знаю, по теме ли здесь Цигвин, но специализированных циг-форумов я не нашёл.

Есть набор баш-скриптов, которые не очень продвинутые пользователи будут запускать на Windows-7 машинах, некоторые из которых не подключены к Интернету. Т. е. моя задача - создать dvd-дистрибутив и батник, устанавливающий с него (и без Интернета) сначала Cygwin, а затем скрипты. В крайнем случае, можно попросить пользователей сначала переписать содержимое dvd на hdd, если дивидюков будет несколько, но с большим они вряд ли справятся, я же им на месте помочь не смогу.

Скачал и синхронизировал rsync'ом cygwin. Получилось что-то порядка 20-30 гигов (там и x86, и x86_64). Сначала попробовал просто установить с жёсткого диска скачанное зеркало - не установилось. Настроил в Win7 ftp-сервер iis, подцепил к нему папку с cygwin'ом и попробовал закачать без установки с localhost. Скачалось что-то около 8 Гб. пакетов. Но и они при попытке установки реально не ставятся (т. е. не устанавливается ни один пакет, хотя и setup.ini, и сами пакеты на месте и вполне нормальные). Раньше такого не было. Более того, даже при сетевой установке с localhost по умолчанию всё устанавливается нормально, но стоит мне выбрать несколько категорий, и setup-x86.exe зависает на проверке sha512-суммы какого-то NetWord'а. При этом сам NetWord*.tar.bz2 есть, и утилита sha512sum легко подсчитывает его сумму, которая совпадает с суммой в соответствующем файле, а вот setup этого сделать почему-то не может. NetWord мне не нужен, он случайно попал в выделенную категорию, но дело в принципе: если не ставится NetWord, не поставится что-то ещё. Никогда раньше не было таких непонятных проблем с cygwin'ом. В чём дело? В Windows7 (раньше мне приходилось ставить cygwin на xp) , или в новой версии сетапа, или это я дурак и что-то делаю не так? В общем, кто виноват и, главное, что делать?

Можно, конечно, поплясать с бубном, как-то установить cygwin со всеми необходимыми для скриптов командами, а потом всё это заархивировать и отдать архив, но не хотелось бы делать так по 2 причинам:

1. В архиве могут появиться папки пользователей и файлы устройств, которые есть у меня, а там нет. И наоборот, того, что есть там, а у меня нет - в архиве не будет.

2. Такой вариант в будущем тяжело расширять, если в скриптах вдруг будут задействованы новые, не установленные команды (Интернета-то там нет).

В общем, такие дела. Заранее благодарю за ответы.

Но и они при попытке установки реально не ставятся (т. е. не устанавливается ни один пакет, хотя и setup.ini, и сами пакеты на месте и вполне нормальные).

Установка с правами админа запускается?

dhameoelin ★★★★★
()
Ответ на: комментарий от dhameoelin

Непосредственно Setup-x86 с правами админа не запускал (надо будет попробовать), но мой батник (точнее cmd) с правами админа в Windows 7 почему-то вылетает, хотя с правами обычного пользователя нормально работает (если не считать самого setup'а). В батнике, помимо вызова сетапа с конкретными категориями и пакетами, ещё вызывается choice, спрашивающий, какие скрипты установить (на разные компы - разные скрипты) и распаковка в домашний каталог самих скриптов после установки cygwin'а. В общем, ничего особенного.

aureliano15 ★★
() автор топика
Ответ на: комментарий от aureliano15

Устанавливаешь в «C:\моисуперскрипты»?

В общем, ничего особенного.

Ну да. Ничего особенного, что ты не осилил UAC, это модно.

dhameoelin ★★★★★
()
Последнее исправление: dhameoelin (всего исправлений: 1)
Ответ на: комментарий от dhameoelin

К сожалению, сию секунду я не могу проверить запуск Setup с правами админа (точнее могу проверить это на xp, где всё Ok). Но обязательно попробую это сделать сегодня же. Однако, как я уже сказал, батник с правами админа в Win7 вылетает, поэтому проблема этим не исчерпывается (даже если сетап отработает). Кроме того, при установке базового варианта по сети с локалхоста Cygwin, как я говорил, устанавливается в «C:\Cygwin» (а мои супер-скрипты ставятся уже потом в домашнюю папку пользователя в /home). Да, спрашивает, разрешить программе то-то и то-то, я отвечаю да, и всё. Локальный каталог создавался из-под того же пользователя, поэтому тут тоже проблем быть не должно. Но я действительно не очень хорошо знаю Windows, т. к. в основном работаю в Linux и Windows юзаю очень редко. Поэтому если тебе известна какая-то тайна, из-за которой Setup может записать на диск C: файлы, скачанные по сети, но не может записать те же файлы, прочитанные с жёсткого диска (а ранее записанные туда им же из-под той же учётной записи) - поделись этим секретом со мной, и я буду признателен. Общие же слова о том, что я не освоил UAC, для меня абсолютно бесполезны.

aureliano15 ★★
() автор топика
Ответ на: комментарий от aureliano15

Как вариант, запуская установку по сети ты на первом этапе уже даёшь подтверждение через UAC о том, что ты согласен на повышение привилегий для, собственно, установки по сети. При запуске с локального носителя такое подтверждение не запрашивается, если сама программа не инициирует повышения прав.

Так что запуск setup с правами админа обязательно проверь.

По поводу твоих суперскриптов и папки пользователя, а также вылета батника - пока ты не покажешь сам батник и не скажешь, на чём он вылетает при запуске от админ, - гадать бессмысленно.

dhameoelin ★★★★★
()
Последнее исправление: dhameoelin (всего исправлений: 1)
Ответ на: комментарий от dhameoelin

Понял. Спасибо за информацию. Проверю сегодня попозже и отпишусь.

aureliano15 ★★
() автор топика
Ответ на: комментарий от dhameoelin

К сожалению, запуск Setup-x86 от имени администратора, как и запуск в режиме совместимости с xp sp2, не помог. Батник уже тестить в этом режиме не стал - какой смысл? Причём есть интересный момент, который я забыл отметить в предыдущих постах: когда я задаю в качестве источника E:\fullcyg32 или E:\fullcyg32\ftp%3a%2f%2flocalhost%2f, Setup находит E:\fullcyg32\ftp%3a%2f%2flocalhost%2f\x86\setup.ini и читает его, но после прочтения зависает. Когда же я указываю непосредственно E:\fullcyg32\ftp%3a%2f%2flocalhost%2f\x86, то Setup отображает группы пакетов, но они не открываются (кроме тех, которые уже установлены по сети, и там видны только установленные пакеты). Если нажать кнопку «назад», а потом снова «далее», то setup.ini читается повторно, после чего пакеты отображаются, но setup не может найти ни исходников, ни бинарников, хотя последние загружены (и отдельные пакеты я специально проверял вручную), исходники же я действительно не загружал.

И сейчас пришла ещё одна мысль: я устанавливаю цигвин с внешнего диска. По идее, разницы быть не должно, но кто его знает... при отсутствии толковых идей приходится действовать методом тыка, и даже не всегда научного, а скорее мистического. В общем, попробую переписать дистр на локальный диск и запустить с него. Вряд ли это поможет, но других идей пока нет. Впрочем, копироваться будет долго, поэтому проверить удастся только завтра или глубокой ночью, если ещё не буду спать.

aureliano15 ★★
() автор топика
Ответ на: комментарий от aureliano15

Как ни странно, но мистика помогла, и с диска C: всё устанавливается. По-видимому, внешний диск был недостаточно шустрым, поэтому и подвисал как минимум на 5 минут (а я думал, что беспробудно зависал). Что касается неправильной работы сетапа при указании в качестве источника непосредственно каталога x86 - это и сейчас не работает. По-видимому, надо задавать каталог как минимум на 1 уровень выше (можно и на несколько, подкаталоги сетап просматривает). В повышении прав необходимости нет, хотя с правами админа сетап тоже работает. Из непонятного: почему всё-таки тогда cygwin устанавливался по ftp с localhost'а, ведь ftp-папка физически тоже находилась на том же внешнем диске. Но это вопрос чисто умозрительный. Главное - работает!

Всем спасибо за внимание. Проблема решена.

aureliano15 ★★
() автор топика
Ответ на: комментарий от Gorthauer

Возможно. Я ничего раньше не слышал об этом форке. Надо будет потестировать. Спасибо за информацию.

aureliano15 ★★
() автор топика
Ответ на: комментарий от aureliano15

PS: Не нашёл кнопки «исправить сообщение», поэтому добавляю новое: а что он даёт в сравнении с cygwin'ом? Например, производительность там выше? В cygwin с производительностью не очень. Скрипты, работающие минут 5 в Линуксе, в Цигвине работают минут 30. Впрочем, я предполагаю, что в этом виновата недостаточно эффективная реализация pipe-конвейера в Windows, а если это так, то должно касаться любых Windows-приложений, использующих конвейеры.

aureliano15 ★★
() автор топика
Ответ на: комментарий от aureliano15

Первые тесты msys2

Отпишусь о первых впечатлениях, вдруг кому пригодится.

Ну, во-первых, как я и предполагал, скорость работы скриптов в msys2 такая же, как и в cygwin'е, что намного медленнее, чем в настоящем linux'е, но это скорее вина Windows, а не этих оболочек.

Теперь о приятностях msys2:

дистр весит 47 Мб и, похоже, больше ничего не тащит из Инета. 64-битный дистр весит 54 Мб., но его я не проверял. Конечно, это намного меньше, чем Cygwin.

Есть и мелкие неприятности:

1. В дистрибутиве отсутствует нужная мне команда wget. В принципе, лечится это закачкой и установкой Wget под Windows с последующим копированием wget.exe и 4 прилагающихся к ней dll'ек в /usr/bin. Но эта версия wget почему-то отображает русские имена файлов в UTF-8 на экране при закачке абракадаброй (потом на диске с именами всё Ok). Более того, в логах такая же абракадабра вместо имён. Сначала было подумал, что локаль какая-то не такая. Но нет, локаль UTF-8, и все мои русские UTF тексты нормально на неё выводятся. Так что проблема именно в версии wget под Windows. В общем-то это мелочь, т. к. касается только логов, но неприятно.

2. Отсутствуют vi/nano и mc. Моим скриптам это не нужно, но как-то неуютно себя чувствуешь в терминале без хотя бы самого простого редактора и миднайт-командира. :-)

Ну и из курьёзов. Сначала не нашёл никаких ссылок на диски вне внутреннего дерева каталогов (типа /cygdrive/c в cygwin'е). Но потом попробовал ввести ls /c/, и это, как ни странно, сработало. А курьёз в том, что команда ls -a / не показывает каталога /c/ :-).

В общем, для моих задач вполне приемлемая альтернатива cygwin'у со своими недостатками, но и с достоинствами. А буду ли на неё переходить, пока не решил.

Удачи.

aureliano15 ★★
() автор топика
Ответ на: Первые тесты msys2 от aureliano15

Я являюсь разработчиком MSYS2. По поводу отсутствия wget, mc и тому подобного я так понимаю Вы не читали Wiki. MSYS2 позаимствовал пакетный менеджер у Arch Linux и большинство недостающих прог, которые Вам нужны, вы можете спокойно поставить через pacman: 1. Обновление баз пакетов: pacman -Sy 2. Установка wget и mc: pacman -S wget mc

alexpux
()
Ответ на: Первые тесты msys2 от aureliano15

mc в Венде — это из рода извращений. Что мешает использовать нативный Far?

akk ★★★★★
()
Последнее исправление: akk (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.