Всем привет. В общем, так случилось, что мне перепала VDS на 6 ядер и 9 гигов оперативы. Сразу же появилась мысль: «а не сделать ли мне на ней билд-сервер для генты?». Gentoo используется на трех устройствах с разной конфигурацией:
- ПК дома - CPU SandyBridge
- ПК на работе - CPU IvyBridge
- Личный ноут - CPU Broadwell.
На VDS используется KVM, если точнее, то QEMU, как я понял.
cat /procc/cpuinfo и cpuid2cpuflags
В общем, я почитал доки по Portage и немного хэндбук и вики и пришел к выводу, что есть два стула способа собирать что-то не под ту систему, которая есть:
- Crossdev
- Выставить переменные ROOT и CONFIGROOT
В общем, я не понял двух вещей:
1) Если я иду через Crossdev, он мне создает в /usr папку с CHOST того устройства, под которое я компиляю. Что делать, если CHOST совпадает? Меня смутило то, что в доках написано, что можно конечно указать любой путь, но вот этот конкретный прописан во всех компиляторах и они с ним хорошо работают. В общем, непонятно, как это работает.
2) Второй путь - выставить переменные. Как я понял, я могу выставить Virtual Root, для установки пакетов и Virtual Config Root для поиска конфигов Portage'ем. Соответственно, получается, я могу сделать нужный мне make.conf и в теории все должно работать. Опять же вопрос, portage будет искать все зависимости, все библиотеки, на которые линковаться и т.д. в Virtual Root или в моем реальном /usr/x86_64-pc-linux-gnu? Что будет, если я задам эти переменные условными /home/user/virtualroot и /home/user/virtualroot/etc/portage?
По сути, все, что я хочу - сделать так, чтобы собирались бинарные пакеты, даже без установки их куда-то там, просто собирались с CFLAGS="-march=sandybridge -mtune=sandybridge" под все мои системы, ну и можно еще флагов накидать, а реальная система на сервере обновлялась и вообще жила своей жизнью.При этом хотелось бы еще, чтобы world тоже был разный для сервера и моих систем (на системах я допускаю, чтобы он совпадал)