LINUX.ORG.RU
ФорумAdmin

пакетирование в gentoo

 , ,


1

1

Здравствуйте

Подскажите, пожалуйста

1) Как запакетить все установленные программы в portage/packages/*?

Есть portage/packages/* , есть сетевой диск подключенный (к примеру к /media/PACKS)

2) Как устроить синхронизацию portage/packages > сетевой диск ?

3) и на клиенте сетевой диск > portage/packages ?

Буду благодарен всем за советы!

Заранее спасибо!

1) emerge --emptytree --buildpkgonly. В дальнейшем emerge -b будет при обновлении пакета оставлять копию в $PKGDIR.

2-3) man rsync

Но вообще, чисто теоретически, если у вас стоит march=native, то есть относительно небольшой шанс, что не взлетит. Лучше создайте отдельный профиль и раскидывайте его.

l0stparadise ★★★★★
()
Последнее исправление: l0stparadise (всего исправлений: 1)
Ответ на: комментарий от brothermechanic

Самое банальное.

rsync -avzh <source> <target>

Дальше - в маны. Rsync достаточно сильная утилита, может и локально файлы копировать, и ssh, и свой родной серверный режим у него есть.

l0stparadise ★★★★★
()
Ответ на: комментарий от l0stparadise

При buildpkgonly ebuild`ы для которых нет установленных зависимостей не соберутся.

А так, зачем же ты ему предлагаешь всё собрать заново? Есть quickpkg:

quickpkg --include-config y  --include-unmodified-config y `qlist -IC`
и у него будут собраны пакеты для всех установленных в системе ebuild`ов без их пересборки.

kostik87 ★★★★★
()
Последнее исправление: kostik87 (всего исправлений: 1)
Ответ на: комментарий от kostik87

Да я, честно говоря, никогда не пользовался бинарными пакетами, поэтому на quickpkg не натыкался, знаю только опции emerge.

l0stparadise ★★★★★
()
Ответ на: комментарий от kostik87

Спасибо за строчку!

Опакетил

Скопировал на сервер так

rsync -zvr .../packages/ /media/PACKS

На клиенте также скопировал обратно

Есть ли смысл подставить /media/PACKS прямо как .../packages?

Обновился emerge -1bke system --keeps-going ; emerge -be world --keep-going

Проблема возникла с пакетом nvidia-drivers и пришлось его собирать.

Как изолировать этот (ну и можно gentoo-sources тоже) пакет от пакетирования?

Спасибо, уже на этом этапе все вообщем получилось

brothermechanic ★★★★★
() автор топика
Ответ на: комментарий от brothermechanic

Как изолировать этот (ну и можно gentoo-sources тоже) пакет от пакетирования?

quickpkg --include-config y  --include-unmodified-config y `qlist -IC | grep -v 'nvidia-drivers\|gentoo-sources'`
kostik87 ★★★★★
()

еще вопрос на засыпку)))

как пакетировать только пакеты системы, которые новее тех, которые в .../packages/

brothermechanic ★★★★★
() автор топика
Ответ на: комментарий от brothermechanic

Собирай новые пакеты или обновляйся с ключом '-b', что бы так же собирались и бинарные пакеты, добавь его в EMERGE_DEFAULT_OPTS в make.conf.

kostik87 ★★★★★
()

1) Как запакетить все установленные программы в portage/packages/*?

emerge -eb world

2) Как устроить синхронизацию portage/packages > сетевой диск ?

$PKGDIR

3) и на клиенте сетевой диск > portage/packages ?

man rsync

Ты не первый день в генте, это базовые вещи, которые в хандбуке даже цепляются.

r3lgar ★★★★★
()
Ответ на: комментарий от kostik87

-b

не получается. я прописал EMERGE_DEFAULT_OPTS="-b --keep-going --jobs=5"

ну и напоследок, как сделать чтоб удалялось foo-1.1.tgz если есть foo-1.2.tgz ?

brothermechanic ★★★★★
() автор топика
Последнее исправление: brothermechanic (всего исправлений: 1)
Ответ на: комментарий от brothermechanic

не получается

Что именно? Можете указывать ключ '-b' при вызове emerge.

как сделать чтоб удалялось foo-1.1.tgz если есть foo-1.2.tgz ?

Если вам это важно, то вызывайте

pkg-clean
после сборки пакетов.

kostik87 ★★★★★
()
Ответ на: комментарий от r3lgar

PKGDIR="/media/PACKS"

# emerge -avbk kwin
Traceback (most recent call last):
  File "/usr/lib/python-exec/python3.4/emerge", line 50, in <module>
    retval = emerge_main()
  File "/usr/lib64/python3.4/site-packages/_emerge/main.py", line 1154, in emerge_main
    return run_action(emerge_config)
  File "/usr/lib64/python3.4/site-packages/_emerge/actions.py", line 2821, in run_action
    getbinpkgs="--getbinpkg" in emerge_config.opts)
  File "/usr/lib64/python3.4/site-packages/portage/dbapi/bintree.py", line 523, in populate
    wantnewlockfile=1)
  File "/usr/lib64/python3.4/site-packages/portage/locks.py", line 107, in lockfile
    myfd = os.open(lockfilename, os.O_CREAT|os.O_RDWR, 0o660)
  File "/usr/lib64/python3.4/site-packages/portage/__init__.py", line 259, in __call__
    rval = self._func(*wrapped_args, **wrapped_kwargs)
OSError: [Errno 95] Неподдерживаемая операция: b'/media/PACKS/.Packages.portage_lockfile'
brothermechanic ★★★★★
() автор топика
Ответ на: PKGDIR="/media/PACKS" от brothermechanic

Это смонтированный CIFS (samba) ресурс? Пробуй NFS. Лучше даже так: на системе, где создаются пакеты не монтировать ничего, просто создавать пакеты, а на сервере либо монтировать по NFS директорию /usr/portage/packages системы, где создаются пакеты, либо посредством ftp или http предоставить доступ к директории /usr/portage/packages, а на сервере указать http или ftp ресурс как binhost, читайте документацию по make.conf.

kostik87 ★★★★★
()
Последнее исправление: kostik87 (всего исправлений: 1)
Ответ на: комментарий от kostik87

честно говоря ничего не понял, и реализовать это сам не смогу, да и это вишенка а торт уже есть)))

я и так пробовал (та же ошибка)

1) на сервере сетевой диск подключил по cifs в packages

2) на клиенте сетевой диск замонтировал по curlftp в packages

наверно надо попробовать на сервере исключить cifs и использовать curlftp

brothermechanic ★★★★★
() автор топика
Ответ на: комментарий от brothermechanic

1) на сервере сетевой диск подключил по cifs в packages

Не используй CIFS вообще.

2) на клиенте сетевой диск замонтировал по curlftp в packages

Что за сервер и что за клиент?

Я вижу ситуацию так:
Есть система, на которой ты собираешь бинарные пакеты и система, на которой ты их ставишь. Так вот, на системе, на которой ты собираешь пакеты не надо ничего монтировать по CIFS, curlftp или как-то ещё, пакеты должны просто на ней собираться.
Для доступа к пакетам, собранным на одной системе для установки на другой либо поднимай NFS сервер и на системе, на которой будешь ставить собранные пакеты монтируй директорию /usr/portage/packages по NFS в /usr/portage/packages и ставь пакеты. Либо на системе, где пакеты собираются, подними WEB-server и дай через него доступ к директории packages, затем на системе, где будешь ставить пакеты укажи переменную

PORTAGE_BINHOST="http://$HOST/packages"
всё.

kostik87 ★★★★★
()
Ответ на: комментарий от kostik87

сервер клиент - это я так назвал системы сборки/установки пакетов

cifs. пока не нашел ничего лучшего для монтирования локальных сетевых дисков, а NFS еще не освоил.

PORTAGE_BINHOST. попробую записать так:

PORTAGE_BINHOST="ftp://USER:PASS@212.45.26.150/gentoo-packages"

Спасибо еще раз.

brothermechanic ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.