Как обновить систему?

Как я понял, чтобы обновить систему (только с мной установленными пакетами), нужно выполнить:
emerge -u world
Чтобы при обновлении спрашивала:
emerge -ua world
Чтобы с USE флагами моими:
emerge -uNa world
Чтобы со всеми пакетами дистрибутива:
emerge -uDNa world

А как сделать так, чтобы система обновлялась со всеми пакетами, которые на данный момент установлены в системе, но не устанавливала обратно те пакеты, которые удалены мной? Как? Что надо делать?

B. X. wrote:

А как сделать так, чтобы система обновлялась со всеми пакетами, которые на данный момент установлены в системе, но не устанавливала обратно те пакеты, которые удалены мной? Как? Что надо делать?

разные варианты возможны (в зависимости от пакета)
наверное лучше начать с конкретного примера

B. X. wrote:

Как я понял, чтобы обновить систему (только с мной установленными пакетами), нужно выполнить:
emerge -u world
Чтобы при обновлении спрашивала:
emerge -ua world

так же есть
emerge -u system (основные пакеты)
если давно не обновлялись иногда лучше начать с этого, а не сразу весь world
Так же кроме параметра -a можно использовать параметр -p. (мне он нравится больше)
Параметр -v можно использовать для того, что бы узнать какой объем пакетов в Мб предполагается скачивать (некоторым может быть полезно)

emerge -u system

то есть, эта команда обновляет все на данный момент установленные пакеты?
хорошо, большое спасибо… почему-то в доках об этом ни слова…

Дополнено:

Что-то не то… или вы не так поняли мой вопрос или ещё что-то… но команда
emerge -u system попросила меня обновить только один пакет:

[binary     U  ] app-shells/bash-4.2_p20 [4.1_p9] USE="net nls -afs -bashlogger -examples -mem-scramble -plugins -vanilla" 726 kB

а команда emerge -upv world:

[ebuild  N     ] net-libs/libnatpmp-20110808-r1  USE="-static-libs" 0 kB
[binary     U  ] app-shells/bash-4.2_p20 [4.1_p9] USE="net nls -afs -bashlogger -examples -mem-scramble -plugins -vanilla" 726 kB
[ebuild  N     ] sys-apps/lsb-release-1.4  11 kB
[ebuild  N     ] net-libs/miniupnpc-1.6-r1  USE="-static-libs" 65 kB
[binary     U  ] sys-apps/portage-2.2.0_alpha95 [2.2.0_alpha92] USE="(ipc) -build -doc -epydoc (-pypy1_8) -python2 -python3 (-selinux) -xattr" LINGUAS="pl" 880 kB
[binary     U  ] x11-libs/pango-1.29.4 [1.28.4] USE="X introspection -debug -doc -test" 857 kB
[binary     U  ] dev-libs/atk-2.2.0 [1.32.0-r1] USE="introspection nls -doc" 245 kB
[binary     U  ] x11-libs/gtk+-3.2.3 [3.0.12-r1] USE="cups introspection xinerama (-aqua) -colord% -debug -doc -examples (-packagekit) -test -vim-syntax" 6,104 kB
[binary     U  ] x11-themes/gnome-themes-standard-3.2.1 [3.0.2] 914 kB
[ebuild     U  ] net-p2p/transmission-2.50-r1 [2.22] USE="gtk (-ayatana) -lightweight% -qt4 -xfs% (-gnome%) (-kde%) (-libcanberra%) (-libnotify%*)" LINGUAS="en%* es%* pt_BR%* ru%* -kk% -lt%" 2,702 kB
[binary     U  ] x11-libs/qt-gui-4.8.0-r3 [4.8.0-r2] USE="accessibility cups dbus exceptions gif glib gtkstyle mng nas qt3support tiff xinerama (-aqua) (-c++0x) -debug -egl -nis -pch (-qpa) -trace" 11,367 kB

только если бы я добавил emerge -upNDv world, то было бы полное обновление дистрибутива, а вот как обновить не ТОЛЬКО мной установленные программы, но и все установленные НА ДАННЫЙ МОМЕНТ в системе пакеты? я так и не понял, как это сделать… без --deep? Но тогда опять же обновляются только мной установленные пакеты (во всяком случае, так пишут в документации).

B. X. wrote:

emerge -u system

то есть, эта команда обновляет все на данный момент установленные пакеты?

Где такое писалось??
Основные - это основные системные пакеты/библиотеки, т.е. это меньше, чем world. Однако иногда (например давно не обновлялись или вышло обновление основного пакета с кучей зависимостей) лучше начать с этого.

B. X. wrote:

а вот как обновить не ТОЛЬКО мной установленные программы, но и все установленные НА ДАННЫЙ МОМЕНТ в системе пакеты? я так и
не понял, как это сделать… без --deep? Но тогда опять же обновляются только мной установленные пакеты (во всяком случае, > так пишут в документации).

Ну почему? Обновление world включает в себя обновление system, и пакеты ранее входившие в дистрибутив, и установленные вами (они при установке запишутся в world). Может не так поняли документацию - дайте ссылку, где это было написано.

Есть ещё параметр e (может он вас удовлетворит) пересобирает (а не только обновляет) все пакеты.

Пара ещё пара ссылок ссылок
http://wiki.enchtex.info/tools/system/emerge
http://ru.gentoo-wiki.com/wiki/HOWTO_Полное_обновление_системы

дайте ссылку, где это было написано.

нигде это не было написано… это вы мне дали эту команду, в ответ на мой вопрос…

и пакеты ранее входившие в дистрибутив, и установленные вами

да, но проблема в том, что world доустанавливает те пакеты, которые я удалил… как этого избежать?
как обновить только те пакеты, которые установлены в системе на данный момент?

неужели это такой сложный для понимания вопрос, что мне надо повторять несколько раз?

B. X. wrote:

да, но проблема в том, что world доустанавливает те пакеты, которые я удалил… как этого избежать?
как обновить только те пакеты, которые установлены в системе на данный момент?

неужели это такой сложный для понимания вопрос, что мне надо повторять несколько раз?

просто более конкретно задавайте вопросы.
Между “Как обновить систему?” и “Как правильно удалять пакеты, что бы они вновь не устанавливались?” все такие есть разница - не находите?
Тем более, что этот вопрос на форуме уже обсуждался http://www.calculate-linux.org/boards/7/topics/4810?r=5586#message-5586
Опять же вас просили указать конкретные версии пакетов, так как только по той ссылке вы найдете три предложенных варианта решения данной проблемы.

B. X. wrote:

А как сделать так, чтобы система обновлялась со всеми пакетами, которые на данный момент установлены в системе, но не устанавливала обратно те пакеты, которые удалены мной? Как? Что надо делать?

Если Вы удалили пакет, то он уже не должен обновляться, так как его нет в системе, кроме одного случая, когда он требуется другим пакетам по зависимостям.

Хотя при обновлении пакеты, включенные в состав дистрибутива могут снова появляться, тогда замаскировываем их так:

Жестко замаскировать конкретный пакет можно так # echo ‘=www-client/firefox-10.0.1’ >> /etc/portege/package.mask/used

или

Полностью отказываемся от установки любых версий пакета # echo ‘www-client/firefox’ >> /etc/portege/package.mask/used

По идее должно помочь.

Я обновляюсь так на профиле сборки из исходников:

 # emerge -avtbuDgk world

Эта команда выдает расширенную справочную информацию о пакетах (параметр vt) и запрашивает пользователя нужно ли выполнять обновление (параметр a). Кроме того параметр b формирует бинарный пакет скомпилированный с моими параметрами в моей системе, а параметр gk в случае наличия уже скомпилированного пакета в моей системе устанавливает его, а не компилирует повторно. Параметр D указывает портежам выполнить обновление не только основных пакетов системы, но и все пакеты, которые необходимы основным. После этого желательно выполнить # revdep-rebuild -i и (если используется) # prelink -afmR.

P.S.

Очень рекомендую изучить документацию по команде emerge. Тем более, что на сайте Calculate Linux она на русском языке. Не пожалеете. Команду emerge можно изучить в разделе Portage

Алексей Чуклимов wrote:

B. X. wrote:

А как сделать так, чтобы система обновлялась со всеми пакетами, которые на данный момент установлены в системе, но не устанавливала обратно те пакеты, которые удалены мной? Как? Что надо делать?

Если Вы удалили пакет, то он уже не должен обновляться, так как его нет в системе, кроме одного случая, когда он требуется другим пакетам по зависимостям.
Хотя при обновлении пакеты, включенные в состав дистрибутива могут снова появляться, тогда замаскировываем их так:
Жестко замаскировать конкретный пакет можно так # echo ‘=www-client/firefox-10.0.1’ >> /etc/portege/package.mask/used

Я же не зря писал про несколько вариантов решения
кроме приведенного с package.mask есть вариант (проще и удобней на мой взгляд, emerge не ругается на замаскированные пакеты) с /etc/portage/profile/package.provided
ещё проще для некоторых пакетов (или пакетов с зависимостями) использовать USE-флаги или флаги CALCULATE

Сергей, я не спорю. Вариантов масса. Автору необходимо просто от чего-нибудь оттолкнуться, если я правильно его понял.

Спасибо за ответы. Как я понял, простой команды нет и надо танцевать с бубном для того, чтобы пакеты не ставились обратно.

Если Вы удалили пакет, то он уже не должен обновляться, так как его нет в системе, кроме одного случая, когда он требуется другим пакетам по зависимостям.

Насколько я понял, бинарный профиль создаётся таким образом, что все пакеты нужны по зависимостям и поэтому они однозначно устанавливаются обратно. Вот, например, команда emerge -uDNa world выдает мне:

[binary     U  ] media-libs/libmad-0.15.1b-r7 [0.15.1b-r6] USE="-static-libs%" 
[ebuild  N     ] net-libs/libnatpmp-20110808-r1  USE="-static-libs" 
[binary     U  ] net-wireless/madwifi-ng-tools-0.9.4.4178.20120131 [0.9.4.4176.20111123]
[binary  N     ] media-libs/libsamplerate-0.1.7  USE="-sndfile" 
[binary  N     ] dev-libs/libpipeline-1.2.1  USE="-static-libs -test" 
[binary     U  ] dev-libs/libburn-1.1.8 [1.0.0] USE="-static-libs%" 
[binary     U  ] app-portage/eix-0.23.10-r10 [0.23.10-r9]
[binary     U  ] app-shells/bash-4.2_p20 [4.1_p9]
[binary     U  ] dev-db/sqlite-3.7.10 [3.7.7.1]
[binary  N     ] dev-lang/nacl-toolchain-newlib-0_p7311 
[binary     U  ] sys-apps/usb_modeswitch-1.2.3 [1.1.9]
[binary     U  ] app-text/djvu-3.5.24-r1 [3.5.24]
[binary     U  ] net-wireless/madwifi-ng-0.9.4.4178.20120131 [0.9.4.4176.20111123]
[binary     U  ] dev-libs/libisofs-1.1.6 [1.0.0] USE="-static-libs%" 
[binary     U  ] sys-apps/man-db-2.6.1 [2.5.9] USE="zlib%* -static-libs%" 
[binary     U  ] dev-libs/openssl-1.0.0h [1.0.0g]
[binary     U  ] net-nds/openldap-2.4.30 [2.4.28-r1]
[binary  N     ] x11-misc/x11vnc-0.9.9  USE="crypt fbcon jpeg ssl xinerama zlib -avahi -system-libvncserver -threads" 
[ebuild  N     ] sys-apps/lsb-release-1.4 
[ebuild  N     ] net-libs/miniupnpc-1.6-r1  USE="-static-libs" 
[ebuild     U  ] sys-apps/portage-2.2.0_alpha95 [2.2.0_alpha92]
[binary     U  ] media-libs/alsa-lib-1.0.25-r1 [1.0.24.1]
[binary     U  ] dev-lang/yasm-1.2.0 [1.1.0-r1]
[binary     U  ] dev-python/simplejson-2.3.0 [2.2.1]
[binary     U  ] app-pda/libplist-1.8 [1.4] USE="-cython%" 
[binary     U  ] media-sound/alsa-utils-1.0.25-r1 [1.0.24.2-r1]
[binary     U  ] x11-libs/pango-1.29.4 [1.28.4]
[binary   R    ] media-libs/ftgl-2.1.3_rc5  USE="-static-libs%" 
[binary     U  ] dev-libs/atk-2.2.0 [1.32.0-r1]
[binary     U  ] sys-apps/calculate-lib-2.2.28-r4 [2.2.28-r3]
[binary     U  ] x11-libs/gtk+-3.2.3 [3.0.12-r1] USE="-colord% (-packagekit)" 
[binary  N     ] media-gfx/xsane-0.998  USE="jpeg nls png tiff -gimp -lcms -ocr" 
[binary  N     ] app-text/stardict-3.0.3-r1  USE="spell -editor -espeak -gnome -gucharmap -pronounce -qqwry" 
[binary     U  ] x11-themes/gnome-themes-standard-3.2.1 [3.0.2]
[ebuild     U  ] net-p2p/transmission-2.50-r1 [2.22] USE="(-ayatana) -lightweight% -xfs%" LINGUAS="en%* es%* pt_BR%* ru%* -kk% -lt%" 
[binary  N     ] net-p2p/linuxdcpp-1.0.3  USE="-debug" 
[binary  N     ] media-gfx/gtkam-0.1.17  USE="nls -debug -gimp -gnome" 
[binary  N     ] net-dialup/gnome-ppp-0.3.23-r1  USE="-debug" 
[binary  N     ] mail-client/claws-mail-3.7.10  USE="crypt dbus gnutls imap ipv6 session spell ssl -bogofilter -dillo -doc -ldap -nntp -pda -smime -spamassassin -startup-notification -xface" 
[binary  N     ] net-p2p/deluge-1.3.3  USE="gtk libnotify -webinterface" 
[binary  N     ] net-im/pidgin-2.10.1  USE="dbus gtk ncurses networkmanager nls spell xscreensaver -debug -doc -eds -gadu -gnutls -groupwise -gstreamer -idn -meanwhile -perl -prediction -python -sasl -silc -tcl -tk -zephyr -zeroconf" 
[binary  N     ] net-news/liferea-1.7.6-r1  USE="libnotify (-ayatana)" 
[ebuild  N     ] www-client/chromium-17.0.963.83  USE="cups gnome-keyring -bindist -custom-cflags -gnome -kerberos (-pulseaudio) -test" LINGUAS="bg de es fr it pl pt_BR ro ru uk -am -ar -bn -ca -cs -da -el -en_GB -es_LA -et -fa -fi -fil -gu -he -hi -hr -hu -id -ja -kn -ko -lt -lv -ml -mr -nb -nl -pt_PT -sk -sl -sr -sv -sw -ta -te -th -tr -vi -zh_CN -zh_TW" 
[binary     U  ] sys-block/gparted-0.11.0 [0.10.0]
[ebuild   R    ] sys-fs/nilfs-utils-2.1.0  KERNEL="(linux%*)" 
[ebuild     U  ] x11-libs/qt-gui-4.8.0-r3 [4.8.0-r2]
[binary     U  ] sys-apps/calculate-utilities-2.2.28-r7 [2.2.28-r6]
[binary   R    ] media-video/mplayer-1.0_rc4_p20120213  USE="(-esd%)" 
[binary     U  ] app-office/libreoffice-l10n-3.5.1-r1 [3.5.1] LINGUAS="-tt%"

xsane, stardict, linuxdcpp, gtkam, gnome-ppp, claws-mail, deluge, pidgin, liferea, chromium хотят установиться обратно, хотя до этого я использовал команду emerge -ca для того, чтобы убрать зависимые от них пакеты, но он мне написал вот это:

* Dependencies could not be completely resolved due to
* the following required packages not being installed:
* 
*   media-gfx/xsane pulled in by:
*     app-misc/cl-printer-meta-11.15
*   >=mail-client/claws-mail-3.7.10 pulled in by:
*     mail-client/claws-mail-rssyl-0.31
*   net-news/liferea pulled in by:
*     app-misc/cl-nettools-meta-11.15
*   net-p2p/deluge pulled in by:
*     app-misc/cl-nettools-meta-11.15
*   net-im/pidgin pulled in by:
*     app-misc/cl-nettools-meta-11.15
*   mail-client/claws-mail pulled in by:
*     app-misc/cl-nettools-meta-11.15
*   net-dialup/gnome-ppp pulled in by:
*     app-misc/cl-nettools-meta-11.15
*   net-im/pidgin[gtk] pulled in by:
*     x11-plugins/pidgin-hotkeys-0.2.4
*   net-p2p/linuxdcpp pulled in by:
*     app-misc/cl-nettools-meta-11.15
*   www-client/chromium pulled in by:
*     app-misc/cl-nettools-meta-11.15
*   app-text/stardict pulled in by:
*     app-misc/cl-office-meta-11.15
*   x11-misc/x11vnc pulled in by:
*     app-misc/cl-nettools-meta-11.15
*   net-im/pidgin[gtk] pulled in by:
*     x11-plugins/pidgin-libnotify-0.14-r1
*   www-client/chromium pulled in by:
*     www-apps/chromium-adblock-2.5.15
*   media-gfx/gtkam pulled in by:
*     app-misc/cl-graphics-meta-11.15
* Have you forgotten to do a complete update prior to depclean? The
* most comprehensive command for this purpose is as follows:
* 
*   emerge --update --newuse --deep --with-bdeps=y @world
* 
* Note that the --with-bdeps=y option is not required in many
* situations. Refer to the emerge manual page (run `man emerge`)
* for more information about --with-bdeps.
* 
* Also, note that it may be necessary to manually uninstall
* packages that no longer exist in the portage tree, since it may
* not be possible to satisfy their dependencies.

То есть, насколько я понял, предложил вначале обновить систему… зачем? чтобы обратно доустановить пакеты, которые были удалены? В принципе, я понимаю, что можно пакеты замаскировать и тд (я читал в Документации и про блокировку и про маскирование)… но неужели нет более лёгкого и простого способа обновления?

xsane, stardict, linuxdcpp, gtkam, gnome-ppp, claws-mail, deluge, pidgin, liferea, chromium хотят установиться обратно

Опишу на примере xsane.

Смотрим кому нужен этот пакет:

 # equery d xsane
 * These packages depend on xsane:
app-misc/cl-printer-meta-11.15 (media-gfx/xsane)
net-print/hplip-3.11.10 (media-gfx/xsane)

Здесь net-print/hplip тянется тем же app-misc/cl-printer-meta.

 # equery d cl-printer-meta
 * These packages depend on cl-printer-meta:
app-misc/cld-meta-11.15 (!calculate_noprinter ? app-misc/cl-printer-meta)

Здесь видно, что по USE флагу “calculate_noprinter” вытягивается xsane. Чтобы исключить группу пакетов, отвечающих за печать, достаточно вписать этот флаг для пакета, а лучше в переменную CALCULATE в файле /etc/make.conf:

CALCULATE="noprinter"

Реализовано через исключение для того, чтобы впоследствии можно было добавлять новые флаги.

После этого обновите мир “emerge -uDNa world” и удалите лишние пакеты “emerge -ac”. Если пакетный менеджер захочет удалить нужные вам программы, добавьте их в сет /etc/portage/sets/custom.

B. X. wrote:

Спасибо за ответы. Как я понял, простой команды нет и надо танцевать с бубном для того, чтобы пакеты не ставились обратно.

как нет??

xsane, stardict, linuxdcpp, gtkam, gnome-ppp, claws-mail, deluge, pidgin, liferea, chromium хотят установиться обратно

берете и все эти пакеты вписываете в /etc/portage/profile/package.provided

Лучше конечно будет подразобраться, какие пакеты зависят друг от друга (как описано выше) - дабы не вписывать в исключения 3-4 пакета, когда можно обойтись одним или вообще исключить комплекс пакетов по USE (например все, связанные с wi-fi или принтерами, если вы им не пользуетесь)

Продолжение темы
http://www.calculate-linux.org/blogs/show/351