Задать вопрос
@Desertoad

Как автоматизировать процесс настройки окружения?

В общем суть вопроса в поиске инструмента, наверное. Типа я недавно сносил винду и стал обдумывать то как мне быстро настраивать среду разработки. Пишу на плюсах вроде как за экосистему их шарю. В разработке использую cmake в качестве сборщика - ninja, а компилятор... ну тут как настроение будет, но в основном наверное от msvc их clang, но компилятор не особо важен, так как по мне важна кросскомпилируемость, чтобы проекты собирались под любой компилятор, а менеджер пакетов - vcpkg. Ну и вот, мне после сноса винды нужно все это ставить, то есть: git, смейк, сборщик, компилятор, там вскод к примеру - иде, вспкг еще надо собрать, короче геморрой сплошной, и условно вдруг мне надо будет быстро на другом пк все дело поднять для разработки, и там такой же геморрой будет, нет ли какого-нибудь инструмента крутого, который в теории при наличии самой программы и конфигурационного листа устанавливать это все? Есть vx - молодой проект, но еще сыроват, хотя поддержка вспкг присутствует уже, и это радует, но там есть баги, короче сыро, а в vfox или asdf или mise нет поддержки вспкг. Честно говоря, я стал невольно задумываться над тем, чтобы самому просто взять и написать что-то вроде этого, но если такое уже есть, то я буду рад использовать его. Так что можете делиться тем чем сами пользуетесь.

Я понимаю что можно забить на все, менять глобальное окружение каждый раз и для каждого проекта, но это не гибко и не удобно. Это бесит, потому что, чтобы собрать просто мини проект на с++ нужно столько корячиться, и ладно вы просто соберете свой hello world, а если проект с зависимостями, есть много хедеров единиц трансляций, то... Короче можно много говорить насколько проще было бы использовать тупо вижуал студио 2026, но за 2 года, такой сценарий проектов для меня кажется самым эффективным гибким и удобным, так что мне осталось только автоматизировать процесс настройки окружения для него.
Если кому интересно, то структура проектов у меня такая:

include/
src/
CMakeLists.txt
CMakePreset.json
CMakeUserPreset.json
vcpkg.json
vcpkg-configuration.json

Короче я стараюсь максимально упрощать себе разработку, чтобы она гибкая там была. Можно конечно каждый раз качать нужные зависимости и удалять там, но это сплошной геморрой, так что вспкг мне нужон, а конан вроде геморнее, чем вспкг, так что да, настраиваю конфигурацию проекта, манифесты вспкг и норм.

p.s. Я редко пользуюсь такого рода платформами, так что, возможно, задал вопрос немного не туда, буду рад если сообщите куда писать такое, может обсуждения какие-то есть?
  • Вопрос задан
  • 191 просмотр
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Академия Эдюсон
    GO-разработчик: тариф Базовый
    4 месяца
    Далее
  • Яндекс Практикум
    Профессиональная вёрстка на HTML и CSS
    3 месяца
    Далее
  • Stepik
    Профессия: Разработчик C++ (Junior)
    4 месяца
    Далее
Решения вопроса 1
master_z
@master_z
Программист
Классически это делается двумя способами.

Перепаковка и создание собственных инсталляторов. Со временем они могут развиваться в полноценные менеджеры: мигрировать настройки, поддерживать разные варианты конфигураций, устанавливать и удалять ПО и т. д. Считаю это наиболее профессиональным подходом. Главный минус — он требует немало усилий на разработку и сопровождение.

Создание «золотого снимка» системы. Здесь тоже есть несколько вариантов реализации. Самый простой — сначала полностью настроить систему в виртуальной машине, а затем разворачивать этот образ на реальные машины. На практике такой образ обычно развивается итеративно: его дополняют и обновляют по мере отладки, появления новых запросов, выхода обновлений, возникновения новых идей и т. п.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
opium
@opium
Просто люблю качественно работать
писать свой аналог vx особо незачем — то что нужно, уже есть в винде: winget configure. Кидаешь YAML с cmake, ninja, vscode, VS Build Tools (workload Microsoft.VisualStudio.Workload.VCTools) и гоняешь winget configure -f config.winget на любой чистой машине. А либы вообще не тащи в глобальное окружение — vcpkg в manifest mode и так подтягивает их per-project из vcpkg.json, только зафиксируй builtin-baseline, чтобы версии не плавали между пк. p.s. в структуре опечатка: файлы называются CMakePresets.json / CMakeUserPresets.json, а не .txt.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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