В настоящее время я устанавливаю Boost с помощью Chocolatey,
choco install -y boost-msvc-14.2 --version 1.74.0
При этом будут установлены как 32-, так и 64-разрядная версия библиотеки. Я считаю, что 32-битная версия мне не нужна и для экономии места и времени (каждая версия весит ~150 МБ, файлы загружаются отдельно); Я хотел бы скачать только одну из двух версий.
$ choco install -y boost-msvc-14.2 --version 1.74.0
Chocolatey v2.3.0
Installing the following packages:
boost-msvc-14.2
By installing, you accept licenses for the packages.
Downloading package from source 'https://community.chocolatey.org/api/v2/'
Progress: Downloading boost-msvc-14.2 1.74.0... 100%
boost-msvc-14.2 v1.74.0 [Approved]
boost-msvc-14.2 package files install completed. Performing other installation steps.
Downloading boost-msvc-14.2
from 'https://downloads.sourceforge.net/project/boost/boost-binaries/1.74.0/boost_1_74_0-msvc-14.2-32.exe'
Progress: 100% - Completed download of C:\Users\gitlab_runner\AppData\Local\Temp\chocolatey\boost-msvc-14.2\1.74.0\boost_1_74_0-msvc-14.2-32.exe (150.86 MB).
Download of boost_1_74_0-msvc-14.2-32.exe (150.86 MB) completed.
Hashes match.
Installing boost-msvc-14.2...
boost-msvc-14.2 has been installed.
Downloading boost-msvc-14.2 64 bit
from 'https://downloads.sourceforge.net/project/boost/boost-binaries/1.74.0/boost_1_74_0-msvc-14.2-64.exe'
Progress: 100% - Completed download of C:\Users\gitlab_runner\AppData\Local\Temp\chocolatey\boost-msvc-14.2\1.74.0\boost_1_74_0-msvc-14.2-64.exe (162.56 MB).
Download of boost_1_74_0-msvc-14.2-64.exe (162.56 MB) completed.
Hashes match.
Installing boost-msvc-14.2
...
Как мне скачать (или хотя бы установить) только одну из архитектур (64бит)?
Есть ли командная строка для choco
для установки только одной из двух версий?
(приветствуются другие сценарии установки Boost в Windows)
Этот список на странице Choco https://community.chocolatey.org/packages/boost-msvc-14.2
С Choco всякий раз, когда вы устанавливаете что-то, вы можете, но не обязательно, указывать битовую версию. Люди обычно не говорят об этой функции много, но вы можете сделать это довольно просто в конце установки, например, имя установочного пакета choco --bitversion, и его можно использовать как для установки 38-битной, так и 64-битной версии. версия. В вашем сценарии, чтобы использовать эту команду, вам нужно будет запустить choco install -y boost-msvc-14.2 --version 1.74.0 --x64
или, если вы, скажем, хотите установить 38-битную версию, вы запускаете не x38, а вместо этого x86, так и будет choco install -y boost-msvc-14.2 --version 1.74.0 --x86
Так сработало или нет
Нет, я попробовал с choco install -y boost-msvc-14.2 --version 1.74.0 --x64
, и результат тот же: см. здесь: gitlab.com/correaa/boost-multi/-/jobs/7111223247#L112
Глядя на указанный вами пакет (boost-msvc-14.2
), он намеренно устанавливает версии библиотек как x86, так и x64:
Этот пакет включает заголовки Boost и библиотеки, скомпилированные с помощью Visual Studio 2019 для 32- и 64-битной Windows.
Нет никакого способа контролировать это, кроме как изменить пакет или поговорить с специалистом по сопровождению пакета, чтобы добавить параметры пакета (или обработку аргументов x86/x64), чтобы повлиять на него.
Имеет смысл, я пытаюсь загрузить и установить пакет вручную, stackoverflow.com/questions/78632039/…
В итоге я сделал это вручную, stackoverflow.com/a/78634605/225186
Спасибо за другие ответы.
Chocolatey — это здорово, но для установки Boost это излишество. В итоге я сделал это:
$ Invoke-WebRequest -UserAgent curl https://downloads.sourceforge.net/project/boost/boost-binaries/1.74.0/boost_1_74_0-msvc-14.2-64.exe -OutFile boost_1_74_0-msvc-14.2-64.exe
$ .\boost_1_74_0-msvc-14.2-64.exe /sp- /verysilent /suppressmsgboxes /norestart | more
который занимает вдвое меньше времени, чем шоколад, и тоже работает. Процесс выполняется за 20 минут вместо 40 минут на машине CI.
Ого, это долгая установка! Замечу, что Chocolatey потратил на это только вдвое больше времени, потому что дважды загружал и запускал установщик! Я подумываю о том, чтобы отправить пакет PR с учетом параметров, поскольку так кажется лучше, хотя я не уверен, что он будет принят.
@JamesRuskin, да, он дважды загрузил пакет (32- и 64-разрядную версию) и установил обе версии, но в итоге в задании использовалась только 64-разрядная версия. Это дефект не Chocolatey, а пакета Boost. Надо признать, это очень медленные (с низким приоритетом) CI-машины: gitlab.com/correaa/boost-multi/-/jobs/7137617284#L124. Было бы еще круче, если бы я мог установить только тот набор библиотек Boost, который мне нужен. В любом случае это кажется быстрее, чем установка/компиляция с помощью Vcpkg.
Теперь я нашел полный список параметров командной строки choco, docs.chocolatey.org/en-us/choco/commands/install/….
--x86
упоминается, но не--x64
. Я постараюсь.