LINUX.ORG.RU
ФорумTalks

Gentoo: /etc/portage

 


5

1

Интересуюсь мыслями по поводу /etc/portage/*
MahMahoritos, а что ты хотел для /etc/portage?
мне вот пока придумалось:

  • отсортировать по алфавиту, дабы в случае ручной правки было просто найти даже глазами ( но это уже есть )
  • собрать все юзы пакета в одной строке с сохранением порядка, который был до сортировки/сборки ( это тоже есть уже )
  • опционально удалять камменты из package.*
  • удалять «=x/y-z что-то», если этого x/y-z уже нет в дереве/подключенных_оверлеях
  • если есть >=x/y-z и просто x/y , но версии z уже нет в дереве/оверлеях, то опять таки объединить юзы для x/y уже без указания версии
  • на всякий пожарный создавать/накатывать бэкапы, кои будут храниться в некотором кол-ве ( опционально )
  • удалять из env/x/y z, если этого z нет в дереве/оверлеях
  • опционально делать то же самое для снесённых пакетов
  • сделать перегон из package.* в диры или наоборот из дир в файлы ....

что ещё?
З.Ы. осень на меня плохо действует и мне скучно, dkms-gentoo и kernel-cleaner допилил, теперь думаю чем ещё заняться

★★★★

Последнее исправление: megabaks (всего исправлений: 2)

Ответ на: комментарий от megabaks

А что за пакет?

опционально удалять камменты из package.*

Только если не в той же строке, к примеру

a/b-c a b z -d -k -l # 4 some pack


сделать перегон из package.* в диры или наоборот из дир в файлы ..

Нужно.

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

пока это не пакет - пилилось по чьей-то идее восстановления /etc/portage* по базе пакетов

megabaks ★★★★
() автор топика

Удалять флаг из строки в package.use, если флаг перестал использоваться ebuild-ом, удалять саму строку, если станет пустой.

ABW ★★★★★
()
  • Опционально удалять из package.* строки про неустановленные пакеты или отдельные версии (предпоследний пункт не про это?).
  • Если в make.conf или package.use явно включен/выключен USE-флаг, который и без того по умолчанию включен/выключен, то убирать его оттуда.
  • Если в make.conf указан local USE-флаг, то перенести его в package.use.
  • Если в package.use указан global USE-флаг, то перенести его в make.conf при условии, что это ни на что не повлияет (можно запросить подтверждение и всё-таки перенести). Нужно отдельно обдумать ситуацию, когда в ебилде переопределено дефолтное значение флага: IUSE=«+qwerty».
  • Проанализировать список установленных пакетов и переключить профиль либо на desktop/gnome, либо на desktop/kde. После этого удалить все package.* и флаги из make.conf.
const86 ★★★★★
()
Ответ на: комментарий от const86

п. 4 - явная лажа.
Глобальный флаг там и находится, в общем случае, именно потому, что его включение глобально нежелательно. У меня, например, doc выставлен для того, что нужно. А попробуй включить его глобально - моментом нарвёшся на циклические зависимости.

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

Глобальный флаг там и находится, в общем случае, именно потому

А бывает и не потому, а вообще фиг знает почему, серьёзно. Я же специально отметил, что нужно подтверждение, если перенос на что-то повлияет. Если у тебя и так всё всегда ровно разложено, то всякие чистилки просто не нужны ;)

const86 ★★★★★
()

сделай динамически создаваемые сеты/ что-то типа

emerge --create-set @foo \\ или любой более удобный синтаксис для создания сетов.

emerge --into-set @foo -av pkg1 pkg2 pkg3 \\ ну тоесть чтобы пакеты прописывались не в мир а в сет foo

Thero ★★★★★
()

Если есть несколько строк типа =x/y-z1, =x/y-z2 etc, то оставить только строку с большим z. Если =x/y-z уже размаскирован, то удалить эту строку

Сортировка use-флагов в package.use, сначала подключенные, потом нет

Не уверен, возможно лучше тот же порядок, что и в ebuild (ну или в выводе emerge -pv packagename)

Удалять флаг из строки в package.use, если флаг перестал использоваться ebuild-ом, удалять саму строку, если станет пустой

+1 Также удалять флаг, если он стал флагом по умолчанию

З.Ы. осень на меня плохо действует и мне скучно

Так супер же! Если этот пакет будет реализован с указанными функциями, получится бомба. Пока что в gentoo много красноглазия с ручной правкой конфигов portage и самописными скриптами для их обслуживания, а так будет больше автоматизации и удобства работы. Предлагал dkms-gentoo и kernel-cleaner внести в основную ветку?

MahMahoritos ★★★
()

удалять из env/x/y z, если этого z нет в дереве/оверлеях

ты хочешь сделать обертку над portpeek с блэкджеком и шлюхами?

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

ты кстати если не ленивый можешь это в какую обсуждалку подкинуть, я в последнее время длиньше твита не могу адекватно писать.

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

вместо него
у портпика такоооой цветастый выхлоп...жесть

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

сделал бэкап пока так:

  • если нет диры /var/lib/portconf, то создаётся
  • $COUNT задаёт кол-во бэкапов, по умолчанию 10 ( овер конфиг можно своё задать)
  • если дата ( юниксовое время ) обновления /etc/portage больше, чем таковое у самого нового тарбола, то создаётся бэкап ( как пример portage_12.09.21-18:04.tar.bz2 ). Иначе просто напишет, что бэкапы годные
  • при откате выплёвывает нумерованный список доступных бэкапов
    Available backups:
    1) 12.09.21-18:10
    2) 12.09.21-18:25
    Choose number: 
    выбираем номер и он накатывается на /etc/portage

теперь вот думаю, что перед откатом надо бы удалять /etc/portage, дабы всё что новое появилось между созданием выбранного бэкапа и текущим моментом убрать.
или не надо?

megabaks ★★★★
() автор топика

накидайте странностей в /etc/portage/package.use
хочу потестить сортировку

--- /etc/portage/package.use	2012-09-23 00:58:35.000000000 +0000
+++ /tmp/package.use_striped	2012-09-23 00:58:48.000000000 +0000
@@ -1,5 +1,4 @@
 app-admin/conky curl imlib iostats ncurses nvidia portmon rss
-app-arch/lbzip2
 app-arch/p7zip -wxwidgets -kde
 app-arch/unzip bzip2 natspec
 app-crypt/johntheripper -openmp
@@ -15,13 +14,11 @@
 dev-libs/elfutils static-libs
 dev-libs/glib kernel_linux
 dev-libs/libdbusmenu gtk3
-dev-libs/libdbusmenu-qt
 dev-libs/libgcrypt static-libs
 dev-libs/libgpg-error nls static-libs
 dev-libs/libxml2 icu python readline
 dev-libs/nettle gmp ssl
 dev-libs/popt nls static-libs
-dev-python/pygobject
 dev-python/PyQt4 declarative
 dev-tcltk/blt static-libs
 dev-vcs/git cvs
@@ -36,11 +33,10 @@
 media-fonts/terminus-font pcf psf ru-dv ru-g ru-i
 media-gfx/gimp bzip2 python -dbus -pdf -webkit
 media-libs/gegl -ffmpeg
-media-libs/lcms python zlib jpeg tiff zlib
+media-libs/lcms python jpeg tiff zlib
 media-libs/libpng apng
 media-libs/libvpx sse4_1
 media-libs/mesa g3dvl llvm gallium
-media-libs/phonon
 media-libs/phonon-gstreamer network
 media-sound/deadbeef ape converter dts gtk2 hotkeys infobar m3u nls psf src supereq wavpack zxcvbnp
 media-sound/deadbeef-infobar gtk2 -gtk3
@@ -63,7 +59,6 @@
 sys-fs/lvm2 lvm1 readline static-libs thin
 sys-fs/ntfs3g acl crypt progs suid -external-fuse
 sys-fs/udev gudev hwdb keymap openrc rule_generator
-sys-fs/udev-init-scripts
 sys-libs/zlib minizip
 www-client/chromium custom-cflags
 www-client/firefox crashreporter custom-cflags custom-optimization ipc jit minimal webm
@@ -74,17 +69,11 @@
 x11-libs/cairo glib
 x11-libs/gtk+ appmenu
 x11-libs/gtkdatabox glade
-x11-libs/gtksourceview
 x11-libs/libdrm libkms
 x11-libs/qt-declarative accessibility exceptions
 x11-libs/qt-gui accessibility exceptions glib
 x11-libs/qt-qt3support accessibility exceptions
 x11-libs/qt-svg accessibility exceptions
-x11-libs/qt-webkit exceptions icu -jit jit#trololo
-x11-misc/appmenu-gtk gtk2 gtk3
-x11-misc/appmenu-gtk -gtk2 -gtk3 gtk2 gtk3 -gtk2#oh shi~!!1 wut? 1 9 3 7 5 6
-x11-misc/appmenu-gtk gtk2
-x11-themes/qtcurve-qt4
+x11-libs/qt-webkit exceptions icu jit#trololo
+x11-misc/appmenu-gtk gtk3 gtk2#oh shi~!!1 wut? 1 9 3 7 5 6
 x11-wm/compiz -gtk -kde
-#123123123 234234234 324324
-# wewr werrwe werwerew
на большее фантазии не хватает

megabaks ★★★★
() автор топика
Последнее исправление: megabaks (всего исправлений: 2)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.