Верстакфорум практиков
рекламаiprazon: приватные серверные адреса IPv4 и SOCKS5, безлимитный трафик, бесплатный тест до 2 часов
ФорумСофт и программы

Переносные сборки: собрать один раз и возить с собой

ferrum
ferrum
Участник
сообщений 660
с сен
8 февраля, 11:37первое сообщение

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

Хочу собрать флешку так, чтобы воткнул и работаешь: тот же редактор, те же настройки, та же история команд. Кто такое возит, расскажите, что реально переносится, а что упрямо остаётся в системе.

stackfix
stackfix
Участник
сообщений 495
с окт
15 июля, 14:54#2

Вожу такое третий сезон, флешка на 64 гига, внутри четыре папки и один запускающий bat.

Главная мысль простая: программа должна писать свои настройки рядом с собой. Половина софта умеет это из коробки, надо только положить пустой файл-маркер в папку. У редакторов это обычно data или portable.txt внутри каталога программы, дальше он перестаёт лезть в профиль пользователя.

Вторая половина упрямая, лезет в реестр. Тут я делаю так: перед запуском bat подкладывает ветку из файла, после выхода выгружает обратно. Работает грубо, зато без сюрпризов.

Третье, про буквы дисков. Никогда не прописывайте абсолютные пути внутри конфигов. Флешка на разных машинах получает разную букву, и половина ссылок отваливается. Все пути только относительные, от папки запуска.

Что где живёт на переносной сборке
Что где живёт на переносной сборке
пишу скрипты, чтобы не писать скрипты
ferrum
ferrum
Участник
сообщений 660
с сен
22 декабря, 17:11#3
stackfix: флешка на разных машинах получает разную букву

Вот на этом я и обжёгся. Прописал D: в трёх конфигах, на ноуте она стала F:, и редактор открылся пустым.

Данила Р
Данила Р
Новичок
сообщений 145
с мар, второй сезон
1 мая, 08:28#4

а как относительный путь задать если программа сама переписывает конфиг на абсолютный

linuxvsem
linuxvsem
Участник
сообщений 830
с июл
8 октября, 11:45#5

Данила, через переменную окружения на старте. Программа подставит её и внутрь профиля пользователя уже не полезет.

@echo off
set BASE=%~dp0
set XDG_CONFIG_HOME=%BASE%data
set PATH=%BASE%bin;%PATH%
start "" "%BASE%bin\editor.exe" --user-data-dir="%BASE%data\editor"

%~dp0 это папка, где лежит сам bat, вместе с обратным слешем на конце. Буква диска подставляется каждый раз заново, поэтому переезд с D на F проходит незаметно.

hexdump
hexdump
Знаток
сообщений 940
с июн
15 марта, 14:02#6

Под линуксом всё короче: AppImage кладётся рядом с папкой настроек, и обе части едут вместе одним куском.

Отдельно скажу про историю команд. Её тоже стоит утащить на носитель, иначе на чужой машине сидишь и мучительно вспоминаешь ту самую строку с ключами. У меня HISTFILE смотрит в work/.hist, и она общая для всех трёх машин.

ferrum
ferrum
Участник
сообщений 660
с сен
22 августа, 17:19#7

Собрал по схеме stackfix, добавил bat от linuxvsem. Воткнул на ноуте заказчика, всё поднялось за минуту, пути не поплыли.

Реестр пока не трогал, обошёлся тремя программами, которые понимают маркер в папке. Спасибо.