Chocolatey - это система управления пакетами для Windows. Сначала вы скачиваете и устанавливаете Chocolatey; он доступен бесплатно под лицензией Apache 2.0. Вы говорите ему, какое программное обеспечение вы хотите, затем (обычно) отвечаете на один или несколько вопросов. Затем Chocolatey загрузит и установит программное обеспечение для вас.
Я пытаюсь лучше понять, как Шоколад знает, что он уже установил. Это сделано для того, чтобы я мог понять, может ли прерывание операции "Chocolatey Install" привести к тому, что Chocolatey навсегда запутается.
Используя Chocolatey 0.9.9.8, когда я пытаюсь установить пакет (7zip) два раза подряд, первый раз завершается успешно, а второй раз ничего не делает, кроме печати предупреждающего сообщения. В сообщении говорится:
7zip v9.38 уже установлен.
Используйте --force для переустановки, укажите версию для установки или попробуйте обновить.Шоколадно установлено 0/1 пакета (ов).
Подробности смотрите в журнале (C:\ProgramData\chocolatey\logs\chocolatey.log).
Я заглянул в исходный код Chocolatey, чтобы попытаться найти ответ. Похоже , что вызов метода , который проверяет , является ли пакет уже установлен этот один. Но я не смог найти исходный код для метода FindPackage.
Как Chocolatey узнает, какие пакеты уже установлены? Хранит ли он где-нибудь на моей машине центральную базу данных, которая отслеживает, что он установил, а что нет?