LINUX.ORG.RU

выполнить

# emerge --noreplace =gcc-4.7.3
--depclean в первых строчках вывода предупреждает, что перед удалением лучше проверить список пакетов, которые он выдаст. И пишет, что сделать, чтобы не удалилось что-то нужное.

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

--depclean это довольно опасная опция, ага, он мне и текущее ядро как-то предлагал удалять. Не стоит доверять ему удалять что-то, разве что показывать, от каких пакетов «ничего» не зависит и выпиливать руками. Но доверять depclean - ССЗБ.

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

--depclean это довольно опасная опция, ага, он мне и текущее ядро как-то предлагал удалять

dd это довольно опасная утилита, ага, она мне один из винтов затерла

А вообще у этой опции есть таймер отчета, и этот таймер можно регулировать, кроме того, можно применить аргумент --pretend

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

Ээээ, я разве написал что-то не так? То, что depclean может удалять нужные пакеты давно известная вещь. То, что его выхлоп нужно проверять - тоже указал.

И, кажется, не писал, что это страшная штука, которой нельзя пользоваться. ЧЯДНТ?

Если показалось, что я предлагаю отказаться от depclean вовсе, то, извиняюсь, произошло недоразумение - у меня такого и в мыслях не было. (: Я лишь указал ТС-у, что ситуация, когда depclean предлагает удалить нужный пакет - не такая, чтобы совсем уж необычная.

Lilly
()

Может eselect gcc не выставлено?

А вообще вот это поможет:

$ emerge --depclean --exclude gcc -pv

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

нет в eselect выбора gcc, он выбирается gcc-config-ом.

$ sudo eselect gcc list
Пароль:
!!! Error: Can't load module gcc
exiting

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

Нет. Найти пакеты, которые висят без дела, и удалить оные.

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

он мне и текущее ядро как-то предлагал удалять

Он бы удалил только исходники. Делов-то.

Deleted
()
Ответ на: комментарий от Kroz

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

От вас, быть может, скрывается вектор изначального вопроса, попробую перефомулировать: «Депклин действительно иногда предлагает удалить жизненно необходимые пакеты, или же это я куда-то не туда нажимаю?»

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

Депклин действительно иногда предлагает удалить жизненно необходимые пакеты

Депклин удаляет то, что соответствует алгоритму работы его и пакетной системы в целом :3 Кампутер не знает, что «жизненно важно».

anonymous
()
Ответ на: комментарий от dmitry_malikov

Депклин действительно иногда предлагает удалить жизненно необходимые пакеты, или же это я куда-то не туда нажимаю?

Порой тупит, когда есть две версии одного пакета.

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

Депклин действительно иногда предлагает удалить жизненно необходимые пакеты, или же это я куда-то не туда нажимаю?

Warning: Running emerge --depclean is a dangerous operation and should be handled with care. Double-check the provided list of «obsoleted» packages to make sure it doesn't remove packages you need.

Да, действительно иногда он так предлагает. А почему - у авторов алгоритма нужно спрашивать | у тех, кто ковырял сорцы портажа.

Lilly
()
Ответ на: комментарий от anonymous

Ну, есть, например, сет @system, который по смыслу и есть набор «жизненно важных» пакетов. Разве нет?

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

Действительно, иногда предлагает. У меня когда-то с двумя версиями gcc и полным переходом на новую версию он всё равно не удалял старую.

Deleted
()
Ответ на: комментарий от dmitry_malikov

Какая изысканная речь :)

Депклин действительно иногда предлагает удалить жизненно необходимые пакеты, или же это я куда-то не туда нажимаю?

У меня пытался сносить ядро, которое было старым, но меня устраивало. Вроде больше ничего такого. revdep-rebuild ничего не находил. Но я всегда проверяю вывод depclean перед тем, как запустить его без ключа -p .

почему этот самый депклин хочет его удалить?

После выставления eselect gcc все то же?

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

Он не будет его переустанавливать, просто исключит из списка к удалению. Когда пакет исчезнет из дерева, то сам сможешь его удалить. У меня одновременно несколько версий gcc стоит, оставляю, чтобы не пересобирать world после перехода на новую версию gcc.

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

Ну продолжай дальше так думать.

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

Стоит проверить gcc-config -l, вдруг он перестал быть похож на себя образца начального сообщения, открывающего тему?

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

Попробуй пересобрать sys-devel/libtool

pS
()

Внимание, правильный ответ: gcc-4.7.3 ОТСУТСТВУЕТ в дереве, а 4.6.3 - есть. Обновись до 4.7.3-r1.

На заметку: как ты думаешь, что будет, если у тебя размаскирован(=cat/foo-1) и установлен cat/foo-1 из ~arch, потом его удалят из portage(останется только =cat/foo-1-r100500, тоже в ~arch), что будет делать portage, при условии что cat/foo-0 - в stable?

Правильный ответ: попытается откатиться до cat/foo-0

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

Видимо я не понимаю определения понятия «ПРИСУТСТВУЕТ». Если пакет с емержирован и от него уже зависит куча других пакетов с ним собранных, то этого всё равно мало, чтобы ПРИСУТСТВОВАТЬ?

Да, пример хороший, только gcc-4.7.3 я не удалял, ибо зачем.

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

«Присутствует в системе» и «присутствует в дереве» - немного разные понятия.

Deleted
()
Ответ на: комментарий от dmitry_malikov

Пакет может быть установлен в системе, но отсутствовать в portage. В таком случае emerge -u старается обновить версию пакета до последней доступной, в соответствии с правилами, размаскированием и прочим, как я описал выше. А вот emerge --depclean поведет себя иначе - он удалит всё что отсутствует в дереве.

Да, пример хороший, только gcc-4.7.3 я не удалял, ибо зачем.

Так вот в том и вопрос - ты его не удалял, но и не обновил. Сделай emerge -uDN world --with-bdeps=y(ну или хотя бы emerge -1u gcc:4.7) а потом повтори emerge --depclean -p и посмотри - насколько корректно он отработает.

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