Ответ 1
Полная установка Cygwin может варьироваться от 21 до 105 GiB, в зависимости от того, как вы определяете "полный".
Ваш номер в 100 МБ сообщает мне, что вы просто нажали по умолчанию, представленным программой Cygwin setup-*.exe
, не выбирая никаких дополнительных пакетов, потому что это устанавливает только набор базовых пакетов, который в настоящее время составляет 100 мбайт. MiB. Cygwin следует современной сетевой модели распространения программного обеспечения: предполагается, что вы можете снова запустить setup-*.exe
и выбрать новые пакеты по мере необходимости. Нормально начать с этой базовой установки размером 0.1 GiB, а затем добавить пакеты по мере необходимости.
Сторонники Cygwin стараются, чтобы пакет базовой категории устанавливался как можно меньше.¹ Установка Cygwin Base дает вам нечто похожее на установку Unix в старом стиле, охватывая чуть больше что указывает POSIX.
Итак, как вы получаете полную установку?
У установщика Cygwin нет очевидного способа получить "полную" установку, специально, потому что никто не нуждается буквально в каждом пакете в репозитории Cygwin.²
Существует, однако, проницательный способ установить все. На экране выбора пакета...
... щелкните текст "По умолчанию" справа от заголовка группы "Все". Он изменится на "Установить", как и соответствующий текст во всех группах под ним. Это означает, что все для установки.
Я включаю этот совет только для полноты. Вы не хотите этого делать! Он будет устанавливать концерты и концерты, которые вы никогда не будете использовать. В настоящее время существует 9951 packages в Cygwin, ³ и установка каждого последнего из них занимает 83,4 гигабайта дискового пространства для дерева установки плюс 21,3 GiB для дерева загрузки. Это дает верхний предел 105 GiB выше.
Все неиспользуемое программное обеспечение несет в себе несколько затрат. Даже если место на диске, время загрузки, время установки, время перезагрузки, а использование локальной полосы пропускания не имеет для вас никакого значения, рассмотрите щедрый бесплатное зеркало потеряло пропускную способность.
Я сделал эксперимент, так что теперь вам не нужно.
Интеллектуальная "полная" установка
Я придумал простой набор правил исключения пакетов, что приводит к значительно меньшей установке:
-
Пропустите все пакеты
-debuginfo
. Мало кому это нужно, и они занимают много места. Экономия: 53,4 GiB только в дереве установки; больше в дереве загрузки.Легко применить это правило. Выбрав все пакеты для установки с помощью скрытого трюка выше, но прежде чем переходить к следующему экрану, щелкните текст "Установить" рядом с заголовком категории "Отладка", пока он не вернется к "По умолчанию".
(Или, если вы уже установили их, щелкните по нему, пока не появится "Удалить".)
-
Не устанавливайте явным образом какие-либо из пакетов
lib*
. Пусть Cygwinsetup-*.exe
автоматически устанавливает библиотеки для удовлетворения зависимостей пакетов. Экономия: около 5.1 GiB & thinsp; ⁵Чтобы применить это правило, переключите категорию "Libs" в "Default" или "Uninstall", как и в категории "Debug". Установщик выяснит, какие библиотеки вам понадобятся на более позднем этапе.
-
Пропустите кросс-компиляторы и связанные с ним пакеты. Опять же, мало кому это нужно. Экономия: 3.7 GiB
В Cygwin существуют два набора кросс-разработок: набор для создания исполняемых файлов Cygwin другого размер слова (т.е. 64- разрядных инструментов и библиотек для 32-разрядного Cygwin или наоборот) и набор для создания MinGW исполняемых файлов с тем же размером слова, что и ваш Cygwin установка.
Чтобы применить это правило для 64-разрядной установки Cygwin, пока на экране "Выбрать пакеты" введите
cygwin32-
в поле поиска имени пакета в верхней части этого экрана, затем нажмите текстDefault
next для каждой категории верхнего уровня, пока он не вернется кDefault
, тем самым изменив все базовые модели соответствия <<28 > обратно наDefault
, что не будет их устанавливать, если это первый проход черезsetup-*.exe
. Или, если вы уже установили эти пакеты, измените эти режимы наUninstall
.Повторите это для
mingw64-
.Идея одинаков для 32-разрядного Cygwin, за исключением того, что вместо этого вы ищем вместо них пакеты
cygwin64-
иmingw32-
.
Следуя этому набору правил, я смог установить почти все, занимая всего около 21 GiB.
Paring That Down
Мы можем установить, что установка будет еще меньше, за исключением нескольких других печально известных дисковых свиней:
-
X11, среды рабочего стола и приложения графического интерфейса вместе требуют около 10,8 GiB.⁷
-
Установка Cygwin Base + Devel достигает 9.6 GiB.
-
Установка Cygwin Base + TeX занимает около 4.8 GiB. Если вы установите только свой пакет поддержки на родном языке, вместо этого он будет заменен на 3.7 GiB.
-
Все пакеты
-doc
объединены в жужжание около 4.5 GiB дискового пространства
Кто-то, кто не является разработчиком программного обеспечения, который не использует Cygwin для работы с графическим интерфейсом, который использует веб-документы для документов, и кто не использует TeX для создания документа, может, таким образом, иметь "полную" установку Cygwin только около 1 > GiB.⁸
Если вы используете Cygwin так, как это предполагается использовать, устанавливая базу и только дополнительные пакеты, которые вам нужны в данный момент, вы, вероятно, даже не получите размер своей установки даже на тех уровнях. Я использую Cygwin таким образом, и мои установки, как правило, значительно ниже 1 GiB, но они "полные", поскольку они отвечают моим текущим потребностям.
Для дополнительной загрузки диска...
Все это тестирование было выполнено с 64-разрядной версией Cygwin. Вы можете примерно удвоить указанные выше требования к пространству, установив параллельную 32-разрядную установку Cygwin.
Это не бессмысленно. Это - жизнеспособная альтернатива использованию кросс-компиляторов, во-первых. Для другого, фундаментальная несовместимость двух Cygwins означает, что вам может понадобиться и то, и другое.
Сноска
-
В списке рассылки Cygwin есть случайные потоки, в которых кто-то утверждает, что в базовую категорию, такую как Perl, должен быть включен какой-то очень общий пакет, и результат обычно заключается в том, что сопровождающие решают не добавлять его в Base.
Вы также иногда видите обратное: какой-то пакет случайно попадает на базу, обычно через неправильную зависимость. Вскоре после того, как проблема доведена до сведения сторонников Cygwin, статус status quo ante будет восстановлен. (пример)
-
Возможно, я ошибаюсь.
Может существовать нарушение зрения Czech иммигрант музыкант, который завершает контракты на разработку программного обеспечения правительства США на боком, пока он не занят чисткой своей технической хинди, переведя электротехника отчеты в его принятый мандарин.
Я хочу встретиться с ним. Он звучит как интересный парень.
Плюс, я думаю, что смогу помочь ему с его планом создать Tcl/Tk интерфейс для интерфейса Orpie. Естественно, я попытаюсь поговорить с ним, чтобы портировать его из Ocaml в С++/Qt.
Я имею в виду, Tcl/Tk, серьезно? В 2017 году? Пусть не смешно.
-
curl -s https://cygwin.com/packages/package_list.html | grep -c x86_64/
-
Cygwin
setup-*.exe
не удаляет загруженные файлы пакетов после их установки. Это полезно на сайтах с несколькими установками Cygwin, поскольку вы можете поместить каталог загрузки на общий сетевой диск. Каждый пакет затем должен быть загружен только один раз на этом сайте.My 105 Верхний предел GiB предполагает, что вы загружаете и устанавливаете на тот же диск, и что вы сохраните дерево загрузки в случае необходимости его переустановки позднее.
(Все размеры в этом ответе - это номера "номер-на-проводе", кстати, а не номера на диске: служебные данные файловой системы увеличит размер загрузочных и установочных деревьев, а последний в гораздо большей степени, так как доля небольших файлов намного больше в дереве установки. Ожидайте что-то вроде + 1% в дереве загрузки и + 5% в дереве установки.)
Не только
setup-*.exe
не удаляет загруженные файлы пакетов после их установки, он не производит автоматическую очистку старых версий, поэтому ваше дерево загрузки растет и растет с годами, когда вы используете Cygwin. (Для решения этой проблемы существуют скрипты, плавающие по сети, такие как этот.) -
Вы можете задаться вопросом, почему в репозитории пакетов Cygwin есть библиотеки, которые вам не нужны, даже если вы установили "все" пакеты. Существует несколько причин:
-
некоторые библиотеки устарели, но все еще присутствуют на зеркалах
-
некоторые библиотеки входят в несколько альтернативных форм, поэтому люди, которые знают, что им нужно что-то другое, кроме значения по умолчанию, могут выбрать его
-
некоторые библиотеки существуют только для людей, которые пишут собственные программы, а не для поддержки существующего пакета Cygwin
-
-
В значительной степени единственными людьми, которые нуждаются в кросс-компиляторах Cygwin, являются люди, поддерживающие пакеты Cygwin, поскольку ожидается, что разработчики будут строить как для 32-битного, так и для 64-разрядного Cygwin, если нет веской причины не делать этого.
Есть, вероятно, больше людей с хорошим обоснованием для кросс-разработок MinGW, но также есть возможность использовать MinGW и MSYS вместо Cygwin. Кроме того, я предполагаю, что число людей, которые занимаются разработкой Cygwin + MinGW с двойным стеклом, меньше, чем множество людей, которые используют один или другой исключительно или почти так.
-
Это исключение не так просто, потому что пакеты GUI разбросаны по всей системе упаковки Cygwin, а их категория верхнего уровня часто содержит программное обеспечение, отличное от GUI, поэтому вы не можете просто исключить всю категорию. (например, математика).
Первый проход - исключить категории X11, GNOME, KDE, LXDE, MATE, Xfce и Games, используя ту же технику просмотра категорий, что и выше.
Затем, используя окно поиска, как это было сделано для исключения кросс-компилятора выше, удалите пакеты, соответствующие
gtk
,gnome
,qt
иkde
, необязательно исключая те из Devel, Debug или Libs пакетов, если вам это нужно.Наконец, вам придется переключиться на ожидающий просмотр и вручную исключить кучу пакетов, которые не были обнаружены ни одним из этих двух широких исключений: Abiword, Calligra, Celestia, Dia, Evince, Geany, gEdit, Geomview, Gimp, gLabels, GnuCash, Gnumeric, Kalzium, KMyMoney, KolourPaint, Konqueror, Krita, KStars, LyX, Marble, Pidgin, QupZilla, Scribus, Skrooge, Spectacle, Stellarium, Tellico и Vinagre. Если вы не исключите их, они будут отталкиваться от большей части того, что вы исключили выше, в качестве зависимостей!
-
Вы можете заметить, что размер всех исключенных наборов пакетов составляет больше, чем 21 GiB "интеллектуальной полной" установки. Это происходит из-за общих зависимостей. То есть эти размеры частично перекрываются.
-
Если вы поместите обе программы
setup-*.exe
в один и тот же каталог, они будут совместно использовать дерево загрузки, чтобы все пакетыnoarch
загружались только один раз для обоих Cygwins. Между тем и тем фактом, что 32-битные и 64-разрядные компиляторы Intel генерируют код, который отличается по размеру, установка обоих Cygwins не совсем удваивает требования к дисковым пространствам.