4

Мне нужны только определенные файлы без среды Cygwin. Есть ли способ, например, загрузить последнюю версию некоторых файлов инструментов Unix, например, grep.exe и последний файл cygwin1.exe, и все.

Редактировать: я знаю, что просмотр возможен здесь: http://cygwin.com/packages/ , хорошо, но этот список не позволяет загружать.

2 ответа2

6

Я не знаю ни одной отдельной программы, которая бы делала это в готовом виде, не требуя больших кусков Cygwin и его setup.exe (см. Правку внизу, если это то, что вам нужно). Я думаю, что все части предназначены для того, чтобы сделать супер-минимальную установку относительно простой для написания сценария.

Этот раздел состоит из двух частей: извлечение файлов и обнаружение изменений в версии (если это часть того, что вы искали, когда сказали "последний").

Чтобы получить определенные файлы, вы можете проверить (или проанализировать запросы) установщик / обновление Cygwin setup.exe чтобы определить, где он получает отдельные файлы. Выберите зеркало, перейдите в pub/cygwin/release и получите файлы. Например, вот ссылка на каталог основных пакетов cygwin для зеркала OSL OSU, который я использую.

Я думаю, что если ваш отдельный файл (например, grep.exe) включен в конкретный пакет, вам придется захватить весь пакет. Некоторые сторонние поставщики могут предоставлять неупакованные отдельные файлы из Cygwin, но я не хотел бы доверять кому-либо, кроме Cygwin и его официальных зеркал, поэтому я рекомендую собрать целые пакеты из надежного источника и затем извлечь нужный файл.

Определить, когда файлы были обновлены, сложнее. Псевдокод будет что-то вроде:

  • Получить текущее содержимое подкаталога из зеркала (используя wget или аналогичный). Этот синтаксис оставляет более легко анализируемый файл .listing позади.

    wget --no-remove-listing ftp://cygwin.osuosl.org/pub/cygwin/release/grep/

  • Определите новейший файл, который соответствует ожидаемому шаблону имени файла. Я думаю, что, если соглашения об именах файлов чисты (как обычно это делает Cygwin), вы можете легко получить самую последнюю версию, разбив числовые части на токены и выполнив числовую сортировку. Вы могли бы сделать быстро и грязно и просто получить последний файл в .listing который соответствует, но это может поставить grep.2.tgz после grep.10.tgz , в зависимости от используемых методов сортировки.

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

  • Скопируйте файлы в нужное место.

Вы можете запланировать скрипт для проверки один раз в день / неделю / что угодно. Возможно, вы также захотите получить сопроводительный файл md5.sum и сравнить контрольные суммы, в зависимости от того, насколько эти файлы важны для вашего варианта использования.

Говоря о том, что это ваш случай использования? Вы просто хотите использовать grep без других накладных расходов и обновлять / обновлять его? Если нет, мой ответ может быть скорректирован соответствующим образом.

РЕДАКТИРОВАТЬ: Вы также можете проверить apt-cyg. Я думаю, что на самом деле для этого может потребоваться хорошая часть базовой инфраструктуры установки, но на странице написано, что для этого нужны только bash, wget, tar, gawk и bzip2, так что вы можете получить работающие зависимости.

Я новичок, поэтому у меня закончились ссылки, но в этом ответе есть информация о apt-cyg , а также о том, как выполнить установку из командной строки с помощью setup.exe .

Обновление и установка пакетов через командную строку Cygwin?

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

0

Самый простой способ загрузить (например, пакет perl ) и / или исходные коды - использовать один из:

  1. Использование apt-cyg с: apt-cyg download perl .
  2. Использование wget с:
    wget ftp://cygwin.osuosl.org/pub/cygwin/x86_64/release/perl/perl-5.26.3-1-src.tar.xz
  3. Используя ваш браузер: ftp://cygwin.osuosl.org/pub/cygwin/x86_64/release/perl/

Эта версия apt-cyg требует только: wget, ca-certificates, gnupg.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .