Копирование диска.

Интересует вопрос.
Как в Линуксе сделать копию системы (диска) как это делается в Акронисе.

Просто на нормальном компе установка Гамбаса (подтянуло 60 компонентов) у меня заняла 4 часа, + 2,5 часа установка MySQL Worcbench.

Или может есть более умный способ устанавливать программы?

Предполагаю, что на обеих машинах примерно одинаковые версии системных пакетов и одинаковые архитектуры.
Данный способ подходит для переноса любых пакетов между системами. Главное условие - совпадение архитектур и по возможности версий зависимостей (иначе могут быть проблемы).

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