Предполагаю, что на обеих машинах примерно одинаковые версии системных пакетов и одинаковые архитектуры.
Данный способ подходит для переноса любых пакетов между системами. Главное условие - совпадение архитектур и по возможности версий зависимостей (иначе могут быть проблемы).
В таком случае при установке пакета на более быстрой машине добавьте флаг -b
:
emerge -b category/packet
Гда category - категория пакета, packet - название.
Тогда emerge создаст архив со скомпиллированными бинарниками (как это делается для стандартных пакетов calculate в бинарном профиле).
Если пакет уже установлен в системе и нет желания собирать его заново, то можно упаковать уже установленные файлы:
quickpkg --include-config=y category/packet
Все бинарные пакеты можно найти в каталоге /var/calculate/remote/packages/category
Переместите файлы соответствующих пакетов на второй компьютер в соответствующие каталоги. И выполните на нем команду:
emerge -k category/packet
Ключ -k
заставит portage ставить уже скомпиллированные пакеты, если их архивы доступны ему.
Приведу пример для упомянутого Gambas:
Поскольку он уже установлен, надо упаковать его самостоятельно. Но есть одно НО: quickpkg упакует только сам gambas без зависимостей. Поэтому надо выяснить его зависимости.
Тут нам понадобится утилита equery. Если ее нет в системе, нужно установить пакет app-portage/gentoolkit
Выполняем (как правильно называется пакет, я не знаю. поэтому буду везде писать просто gambas)
equery g gambas
Выведется список пакетов, от которых зависит gambas. При чем будет несколько списков для разных версий, если таковые существуют.
Например:
dc# equery g ejabberd
* Searching for ejabberd …
* dependency graph for net-im/ejabberd-2.1.8
`-- net-im/ejabberd-2.1.8 amd64
`-- net-im/jabber-base-0.01 (>=net-im/jabber-base-0.01) amd64
`-- dev-libs/expat-2.0.1-r5 (>=dev-libs/expat-1.95) amd64
`-- dev-lang/erlang-14.2.2-r1 (>=dev-lang/erlang-12.2.5) ~amd64 [ssl]
`-- dev-db/unixODBC-2.3.0-r1 (dev-db/unixODBC) amd64
`-- net-nds/openldap-2.4.24 (=net-nds/openldap-2*) amd64
`-- dev-libs/openssl-1.0.0e (>=dev-libs/openssl-0.9.8e) amd64
`-- media-gfx/imagemagick-6.7.1.0 (media-gfx/imagemagick) amd64 [truetype png]
`-- sys-libs/zlib-1.2.5-r2 (sys-libs/zlib) amd64
`-- sys-apps/shadow-4.1.4.3 (>=sys-apps/shadow-4.1.4.2-r3) amd64
`-- virtual/pam-0 (virtual/pam) amd64
[ net-im/ejabberd-2.1.8 stats: packages (11), max depth (1) ]
* dependency graph for net-im/ejabberd-2.1.9
`-- net-im/ejabberd-2.1.9 amd64
`-- net-im/jabber-base-0.01 (>=net-im/jabber-base-0.01) amd64
`-- dev-libs/expat-2.0.1-r5 (>=dev-libs/expat-1.95) amd64
`-- dev-lang/erlang-14.2.2-r1 (>=dev-lang/erlang-12.2.5) ~amd64 [ssl]
`-- dev-db/unixODBC-2.3.0-r1 (dev-db/unixODBC) amd64
`-- net-nds/openldap-2.4.24 (=net-nds/openldap-2*) amd64
`-- dev-libs/openssl-1.0.0e (>=dev-libs/openssl-0.9.8e) amd64
`-- media-gfx/imagemagick-6.7.1.0 (media-gfx/imagemagick) amd64 [truetype png]
`-- sys-libs/zlib-1.2.5-r2 (sys-libs/zlib) amd64
`-- sys-apps/shadow-4.1.4.3 (>=sys-apps/shadow-4.1.4.2-r3) amd64
`-- virtual/pam-0 (virtual/pam) amd64
[ net-im/ejabberd-2.1.9 stats: packages (11), max depth (1) ]
Теперь необходимо для каждого пакета из списка выше создать бинарный архив (я укажу команду для первых трех).
quickpkg --include-config=y net-im/jabber-base dev-libs/expat dev-lang/erlang
После того, как все пакеты будут упакованы, перемещаемся в каталог /var/calculate/remote/packages/
, находим там архивы нужных пакетов и копируем их по таким же путям на втором компьютере.
На втором компьютере выполняем
emerge -avk gambas
Если все сделано верно, то portage покажет, что все пакеты будут ставиться из бинарных архивов.