Как установить Boost 64bit только из одного пакета Chocolatey?

В настоящее время я устанавливаю 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

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
100
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

С 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, docs.chocolatey.org/en-us/choco/commands/install/…. --x86 упоминается, но не --x64. Я постараюсь.

alfC 16.06.2024 00:47

Так сработало или нет

CodeLazy 16.06.2024 12:37

Нет, я попробовал с choco install -y boost-msvc-14.2 --version 1.74.0 --x64, и результат тот же: см. здесь: gitlab.com/correaa/boost-multi/-/jobs/7111223247#L112

alfC 17.06.2024 05:55
Ответ принят как подходящий

Глядя на указанный вами пакет (boost-msvc-14.2), он намеренно устанавливает версии библиотек как x86, так и x64:

Этот пакет включает заголовки Boost и библиотеки, скомпилированные с помощью Visual Studio 2019 для 32- и 64-битной Windows.

Нет никакого способа контролировать это, кроме как изменить пакет или поговорить с специалистом по сопровождению пакета, чтобы добавить параметры пакета (или обработку аргументов x86/x64), чтобы повлиять на него.

Имеет смысл, я пытаюсь загрузить и установить пакет вручную, stackoverflow.com/questions/78632039/…

alfC 17.06.2024 19:35

В итоге я сделал это вручную, stackoverflow.com/a/78634605/225186

alfC 17.06.2024 22:46

Спасибо за другие ответы.

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 с учетом параметров, поскольку так кажется лучше, хотя я не уверен, что он будет принят.

James Ruskin 19.06.2024 15:54

@JamesRuskin, да, он дважды загрузил пакет (32- и 64-разрядную версию) и установил обе версии, но в итоге в задании использовалась только 64-разрядная версия. Это дефект не Chocolatey, а пакета Boost. Надо признать, это очень медленные (с низким приоритетом) CI-машины: gitlab.com/correaa/boost-multi/-/jobs/7137617284#L124. Было бы еще круче, если бы я мог установить только тот набор библиотек Boost, который мне нужен. В любом случае это кажется быстрее, чем установка/компиляция с помощью Vcpkg.

alfC 19.06.2024 20:07

Другие вопросы по теме

Похожие вопросы