Вопрос или проблема
Я получил файл Chocolatey packages.config
с набором приложений, которые мне нужно установить. Это простой XML-файл со следующей общей структурой:
<packages>
<package id="..." version="..."/>
<package id="..." version="..."/>
<package id="..." version="..."/>
...
Теперь, хотя я хочу установить все инструменты, файл немного устарел, и атрибуты version
больше не указывают на последние версии. Я бы хотел установить последнюю версию всех инструментов.
Как мне вызвать Chocolatey, чтобы обновить номера версий до самой последней версии каждого пакета?
Почему-то я не могу найти эту информацию в документации. Есть информация о вызове choco config ...
для некоторых задач, но все они, кажется, относятся к редактированию отдельных значений.
Кроме того, choco upgrade packages.config
не выполняет ту задачу, которую я пытаюсь решить.
choco config
не имеет отношения и не связан с файлом .config
, который является результатом выполнения команды choco export
. Номера версий существуют благодаря параметру --include-version-numbers
и полностью опциональны.
Чтобы установить последние версии, просто удалите параметр version
из всех пакетов. Используйте, например, Notepad++ с регулярным выражением, таким как (?<!xml )version=".*?"
или этот пример regex101.
Если вы действительно хотите обновить версии в самом файле, вы можете использовать команду choco export --include-version-numbers
, если вы установите последние версии пакетов в новой установке.
Ответ или решение
Для обновления версий пакетов в файле packages.config
, созданном с помощью Chocolatey, необходимо учитывать несколько моментов. Если ваш файл содержит устаревшие версии программ, и вы хотите установить последние доступные версии, то можно воспользоваться несколькими подходами.
Редактирование файла packages.config
Содержимое файла packages.config
имеет следующий вид:
<packages>
<package id="имя_пакета" version="номер_версии"/>
<package id="имя_пакета_2" version="номер_версии_2"/>
...
</packages>
Чтобы установить последние версии пакетов, лучше всего удалить атрибут version
у каждого пакета. Это можно сделать с помощью текстового редактора, поддерживающего регулярные выражения, например, Notepad++. Вот как это можно сделать:
- Откройте файл
packages.config
в Notepad++. - Нажмите
Ctrl + H
для открытия окна "Замена". - Включите опцию "Регулярное выражение".
- В поле "Найти что" введите регулярное выражение:
(?<!xml )version=".*?"
- Оставьте поле "Заменить на" пустым.
- Нажмите кнопку "Заменить все".
Таким образом, в результате выполнения этой операции все атрибуты version
будут удалены, и Chocolatey установит последние версии пакетов по умолчанию.
Использование команды choco export
Если вы хотите обновить версии непосредственно в packages.config
, вы можете выполнить следующую последовательность действий:
-
Установите последние версии всех пакетов, указанных в вашем файле. Команда для этого:
choco install packages.config
-
После успешной установки всех пакетов, выполните команду экспорта с параметрами:
choco export --include-version-numbers
Эта команда создаст новый файл
packages.config
, который будет содержать актуальные версии всех установленных пакетов.
Вывод
Удаление атрибутов version
из файла packages.config
является наиболее простым и эффективным способом установки последних версий пакетов. Однако, если необходимо сохранить версии в файле, используйте экспорт после установки. Применение описанных методов позволит вам легко обновить версии пакетов и установить необходимое программное обеспечение с помощью Chocolatey.