Я не знаю ни одной отдельной программы, которая бы делала это в готовом виде, не требуя больших кусков 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?
Ваш вопрос в некотором роде подразумевает, что вы, возможно, захотите что-то более урезанное, чем этот вопрос, так что я оставлю оставшуюся часть моего ответа без изменений для людей, которые ищут что-то еще более минимальное.