Куда сохраняет файлы cygwin
Каждый источник, который я нашел в Интернете, говорит, что полная установка Cygwin берет 1 GB, но у меня всего 100 Мб. Я был уверен, что я загрузил все с зеркальных серверов, но установка заняла менее 5 минут, а не часов, как я ожидал бы, если бы она устанавливала гигабайты программного обеспечения.
Помогли ли Cygwin получить огромную очистку в течение 2012-2013 годов, или я сделал что-то неправильно в установке?
Полная установка 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* . Пусть Cygwin setup-*.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 году? Пусть не смешно.
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 не совсем удваивает требования к дисковым пространствам.
В настоящее время я разрабатываю с Cygwin, Git в Cygwin и редактором Windows под Windows. Довольно досадно, что сохранение файлов из собственных программ Windows делает файл исполняемым в Cygwin. Я хочу отслеживать файловые режимы, так как у нас есть исполняемые файлы Unix, но обновление файлов с Windows просто не должно изменять существующий режим. Я бы согласился установить filemode один раз в Cygwin, прежде чем фиксировать файл в первый раз.
Эти два подхода представляются возможными:
Сделайте так, чтобы Cygwin сохранял исходный бит x в существующих файлах даже после обновления с Windows.
Настройте параметр Git так, чтобы он игнорировал изменения файловых режимов только для уже существующих файлов. Я действительно хочу сохранить флаг x , когда добавляю исполняемые файлы Unix, поэтому git config core.fileMode false -это не решение . Это сохраняет все файлы как неисполняемые. (Извините за все подчеркивания, но, занимаясь исследованиями, я читал слишком много статей от людей, счастливо отбрасывающих всю x -битную информацию вообще и рассматривающих ее как решение)
Каково решение для любого из этих подходов? На самом деле я бы предпочел 1-й, так как он чувствует себя чище.
Обновление: с тех пор как я начал использовать Komodo Edit , а не Geany файлы больше не получают бит x . Очевидно, что существует некоторая разница между различными программами Windows, сохраняющими файлы. Это в значительной степени решает проблему для меня, хотя я думаю, что должно быть решение и для Джини.
1 ответ
Я вручную построил последнюю версию git для cygwin. Единственная проблема заключается в том, что он думает, что режим файла изменился (с 644 на 755). Git, установленный в windows, не видит никаких изменений. фактический режим файла - 755 (и windows Git, и cygwin git показывают одно и то же). Итак.
Мне нужно воспроизвести .wav файлов, хранящихся на моем PC, используя Python скрипт из Cygwin. Пожалуйста, посоветуйте, возможно ли это? Если это так, пожалуйста, предоставьте указатели и т. д. На код скрипта Python, который может быть использован из Cygwin. Я работаю на машине 64-bit Windows 7.
Я вижу здесь 2 ситуации
- изменено локально на +x , игнорировать изменение
- изменено локально на +x , зафиксировать изменение
Чтобы сделать 1, у меня есть этот код в
/.bash_profile тоже должен работать
Затем, чтобы сделать 2, у меня есть скрипт, который делает это
Похожие вопросы:
Я хочу отслеживать все изменения файлов в windows, используя BIOS прерываний в c++, но не знаю, как это сделать. Может кто-нибудь помочь мне с этим? Я попробовал Windows API, но это не позволяет.
Я экспериментирую с какой-то конфигурацией linux и хочу отслеживать свои изменения? Конечно, я не хочу ставить весь свой OS под контроль версий? Есть ли способ (с git, mercurial или любым VCS).
Я работаю с репозиторием git как на windows, так и на linux/mac., когда я создаю новые файлы на windows или редактирую их в некоторых текстовых редакторах, режим файла изменяется на 775. Я могу.
Я вручную построил последнюю версию git для cygwin. Единственная проблема заключается в том, что он думает, что режим файла изменился (с 644 на 755). Git, установленный в windows, не видит никаких.
Мне нужно воспроизвести .wav файлов, хранящихся на моем PC, используя Python скрипт из Cygwin. Пожалуйста, посоветуйте, возможно ли это? Если это так, пожалуйста, предоставьте указатели и т. д. На.
Мне нужна помощь, чтобы использовать git, установленный под windows, чтобы хорошо работать с cygwin shell. Я вижу, что git не очень хорошо интерпретирует путь при вызове под cygwin shell. $ git.
Когда я пытаюсь клонировать проекты с помощью Cygwin Git 2.7.0, у меня возникают некоторые проблемы, связанные с разрешениями. Это означает, что каждый раз, когда я пытаюсь запустить один из.
Я использую Jenkins на машине Windows для создания программы Cygwin. В последнее время это начало давать сбои. Оказалось, что это потому, что Windows' git , по-видимому, представляют символические.
Я пробовал решения , представленные в разделе Как лучше выполнять контроль версий документов для файлов Excel и файлов схемы SQL, но мне не удалось найти хорошее решение для распаковки файлов.
Я использую cygwin-git и git для Windows (на самом деле используется TortoiseGit) параллельно. Если я использую их в том же РЕПО, git status начинает обновлять индекс, если я уже использовал другой.
Как вы можете догадаться, я пытаюсь разделить этот файл на несколько файлов на основе имени Центра, которое является первым столбцом. Было бы также неплохо скопировать заголовки в каждый файл. Ожидаемый результат:
Спасибо, что уделили мне время.
1 ответ
Около года назад я создал пару текстовых файлов с именами compile и pull., когда я вхожу в приглашение cygwin, набираю эти имена и нажимаю enter (в основном использую их как команду), cygwin terminal запускает то, что находится в этих текстовых файлах. Например вот содержание одного: git checkout.
У меня есть двоичный файл, который я конвертирую в обычный файл с помощью hexdump и нескольких команд awk и sed. Выходной файл выглядит примерно так - $cat temp 3d3d01f87347545002f1d5b2be4ee4d700010100018000cc57e5820000000000000000000.
Все, что вам нужно, это:
или если вы хотите заменить все пробелы подчеркиванием в именах файлов:
Если вы не используете GNU awk, вам может потребоваться close() выходных файлов, чтобы избежать ошибки "too many open files". Вы находитесь на cygwin и поэтому уже используете gawk, так что это не проблема для вас, только для тех, кто может прочитать это и не использует gawk (get gawk!).
О, и если вы хотите, чтобы строка заголовка дублировалась во всех выходных файлах, это может сделать это (непроверено):
или, может быть, это, также непроверенное из-за отсутствия ввода/вывода для тестирования:
У OP были управляющие символы во входном файле, вот как их очистить с помощью awk (и почему бы не попробовать это с помощью tr ):
Похожие вопросы:
В настоящее время я разрабатываю с Cygwin, Git в Cygwin и редактором Windows под Windows. Довольно досадно, что сохранение файлов из собственных программ Windows делает файл исполняемым в Cygwin. Я.
У меня есть несколько текстовых файлов, которые имеют несколько столбцов. Я использую awk только для записи нужных столбцов в выходной файл, который позже анализирую. awk 'BEGIN ;
У меня есть несколько файлов, которые я хочу обработать с помощью awk, а затем передать выходные данные awk в отдельные файлы. Я хочу обработать один файл с помощью awk и записать вывод в файл, но.
Около года назад я создал пару текстовых файлов с именами compile и pull., когда я вхожу в приглашение cygwin, набираю эти имена и нажимаю enter (в основном использую их как команду), cygwin.
У меня есть двоичный файл, который я конвертирую в обычный файл с помощью hexdump и нескольких команд awk и sed. Выходной файл выглядит примерно так - $cat temp.
у меня есть файл, который мне нужен split в несколько файлов, и мне нужно сделать это с помощью отдельных разделителей начала и конца. например, если у меня есть следующий файл: abcdef START ghijklm.
У меня есть несколько файлов в папке, и их имена содержат буквенно-цифровые значения. Например, 045_gfds.sql, 46kkkk.sql, 47asdf.sql и т. д. Я хочу сравнить числа в этих именах файлов с другим.
Я уже некоторое время ищу способ сделать это эффективно и не могу найти лучшего решения. Требование простое. У меня есть файл следующего формата. $cat mymainfile rec1,345,field3. field20.
Вы можете просто открыть терминал 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 script запускается при открытии нового сеанса bash. Код выше с изменением каталога your_path при открытии новой сессии cygwin.
Для cygwin64 или установок без такой возможности вы можете использовать следующую команду в записи реестра (предполагая, что окна связаны с вашим путем, также если в каталоге установки cygwin указано c:\cygwin64)
ответил(а) 2013-12-19T13:10:00+04:00 7 лет, 11 месяцев назадЕсли вы хотите, чтобы этот каталог был по умолчанию, просто добавьте оператор cd в ваш файл
То, что я обычно делаю, это использовать этот метод для установки моего обычного каталога, а также определить псевдонимы для моих общих случаев:
или ваш эквивалент. Это позволяет мне быстро менять каталоги.
ответил(а) 2012-03-09T19:36:00+04:00 9 лет, 8 месяцев назадКак сказал 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 с текущим каталогом, взятым из командной строки.
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
Читайте также: