LINUX.ORG.RU
Ответ на: комментарий от JohnRus

А где хваленая скорость разработки на Питоне?

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

Может хватит уже этих газифицирований про depclean? Надоело. Это херня полная. Давай проверим? Похерь к примеру Gtk и посмотри удалит ли тебе потом delpclean все связанное с этим gtk? Нет не удалит - херня потомучто.

К томуже мне сейчас он орет: Calculating depclean dependencies ... done! !!! You have no world file. Cannot determine explicit merges.

Вот такой он - depclean!

К томуже изменение USE флагов в процессе многодневной установки генту не должно никак влиять на зависимости. А пи удалении пакета мне нужно сообщение от системы портежей о том, что удаление такого то пакета несет с собой и удаление таких-то.

То что в генту сделали с удалением на данный момент - МРАСЬ

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

зато так оно полностью управляемо)

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

С apt-get такая же хрень. Я как-то спрашивал здесь, а как сделать, чтобы команда apt-get remove удаляла пакет и все, что он с собой притащил, которое не используется другими установленными программами. Так вот apt-get remove удаляет только указанный пакет, а все остальное остается на диске, хотя я точно знаю, что оно никому больше не нужно. В итоге, единственным ответом мне здесь было: "А я, например, помню какой пакет у меня кто притащил". Потом мной был все-таки найден ключ '-D', котороый вроде бы должен был делать то, что надо. Но потом оказалось, что все-равно далеко не всегда удаляются пакеты. Например, из Сизифа "на посомтреть" вытащил AbiWord. За компанию он еще какую-то lib* поставил. Потом посмотрел. Посомтрели. Удаляем. А удаляется только пакет abiword. а эта lib* никому ненужная так и осталась мусором.

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

Вобщем еще один бич GNU/Linux - отсутствие рабочей функциональности удаления. Уж за 10-то лет можно было склепать. Что-то все больше мне хочется самому писать portage2 на Mono :)

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

Этого я не знаю. Дело может быть, конечно в том, как пакетируюется система. Если 'apt-cache showpkg <pkg>' смотреть на любой пакет, то в нем есть список Reverse Depends. Если я правильно понимаю, apt-get проверяет, используется ли пакет каким-нибудь еще пакетом именно по этому списку. Или вот как раз не проверяет? просто хочу понять, зачем мне тогда менеджер пакетов уровня apt. Может тогда есть смысл на бумажке записывать и rpm-кой удалять все по частям? :)

Я тут как-то задумал чистку провести. Благо пакетов было не миллион. пробежался по сомнительным пакетам, по которым у меня были вопросы. Оказалсь, что за коротки период использования дистрибутива ALT Linux у меня на винте скопилось довольно много пакетов, которые "повисли" в воздухе (в большинстве случаев это lib*). Такая вот хрень. Кстати, я пока не жалуюсь. Я пока, наверное, спрашиваю. Это баг, фича? :)

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

Какой нах (извините, модераторы) debfoster? Ну это же грязный костыль, исправляющий то, что должен делать нормальный менеджер пакетов! К тому же, насколько я понял, он работает только с .deb (fix me!), а у меня RPM-дистрибутив (ALT)

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

> Вобщем еще один бич GNU/Linux - отсутствие рабочей функциональности удаления. Уж за 10-то лет можно было склепать. Что-то все больше мне хочется самому писать portage2 на Mono :)

имхо это просто незаметный бич по сравнению с кривизной распространения закрытого софта и дровами

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

> Какой нах (извините, модераторы) debfoster? Ну это же грязный костыль, исправляющий то, что должен делать нормальный менеджер пакетов!

Не брызгай слюной, сам ты грязный костыль :) В Debian и так многоуровневая пакетная система. dpkg ничего не знает о репозитариях -- это забота apt. Также и apt ничего не знает о том, какие пакеты ставились просто по зависимостям, а какие --- по требованию. Если бы он об этом знал, тебе бы на этапе установки системы пришлось бы _явно_ указывать каждый пакет, который ты хочешь установить, а это тупость :) Поэтому есть дебфостер, который делает снапшот твоей системы, где каждый пакет тебе нужен, а в дальнейшем уже следит, что поставилось по зависимостям и в случае чего предлагает тебе удалить ненужные пакеты.

> К тому же, насколько я понял, он работает только с .deb (fix me!), а у меня RPM-дистрибутив (ALT)

мне все равно, что ты используешь. ты говорил об apt, а это родная packaging-система под Debian, как все это делать на каком-то другом rpm-based дистре с приблудным apt4rpm (или обо что оно там), меня ниипет -- спрашивай в мейл-листах своего дистра.

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

>Не брызгай слюной, сам ты грязный костыль :)

Еще раз повторяю: "это *костыль*"! Не должно быть так, как ты тут пишешь! Должно быть просто. Поставил пакет с подпакетами. Тут же поставил его на удаление и он подчистую стерся со всеми подпакетами. Все. Сейчас этого нет.

>В Debian и так многоуровневая пакетная система. dpkg ничего не знает о репозитариях -- это забота apt. Также и apt ничего не знает о том, какие пакеты ставились просто по зависимостям, а какие --- по требованию. Если бы он об этом знал, тебе бы на этапе установки системы пришлось бы _явно_ указывать каждый пакет, который ты хочешь установить, а это тупость :) Поэтому есть дебфостер, который делает снапшот твоей системы, где каждый пакет тебе нужен, а в дальнейшем уже следит, что поставилось по зависимостям и в случае чего предлагает тебе удалить ненужные пакеты.

Для начала вопрос: А после установки debian этот debfoster уже сразу стоит и сразу функционирует? Или после установки надо еще потом установить debfoster? А если я удаляю пакет, *установленный до debfoster*, он будет знать о всех его зависимостях? Он же еще не отслеживал его установку? Вот. пока на это ответь.

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

> Не должно быть так, как ты тут пишешь!

а я тебе еще раз говорю, что зависимости на этапе установки и зависимости при установке пакетов на уже отлаженную систему играют совершенно разные роли. В первом случае эти зависимости помогают упростить процесс установки (т.е. ты ставишь kdegraphics, а тебе сразу ставится с десяток всяких смотрелок/пищалок => тебе не приходится по одной эти пищалки выбирать, приплюсуй к этому большое количество пакетов и необходимость решать, нужна ли тебе какая-то зависимость или проще не устанавливать пакет с этой зависимостью --- получишь долгий мозготрах при установке).

Потом, что ты подразумеваешь под тем, что "это должно быть в системе пакетов"? dpkg+apt+debfoster --- это тоже будет одна единая система пакетов, просто трехуровневая. dpkg обрабатывает непосредственно пакеты, apt работает с репозитариями, а debfoster следит за "брошенными" пакетами. Установка в этом случае может выглядеть так:

1) базовая установка Debian.

2) установка пакетов, приводящих систему в более-менее юзабельный вид

3) обточка системы (добавление нужных и удаление ненужных пакетов, т.е. приведение системы в псевдоидеальное состояние)

4) снятие снапшота debfoster'ом, после чего все последующие установки пакетов осуществляются при помощи debfoster'а.

Все просто и логично. Если для тебя это не так --- сочувствую, можешь попробовать написать что-то свое, или патч к apt'у наклепать, только его у тебя никто не примет, ибо никому это _в_ apt'е нах не надо. это я с 80% уверенностью могу сказать :))

> А после установки debian этот debfoster уже сразу стоит и сразу функционирует?

ты Debian хоть раз ставил? Если бы ставил, не задавал бы таких глупых вопросов. Почему глупых --- читай выше.

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

Deborphan работает сразу без предв. настроек. Так что не надо ля-ля.

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

Я хочу уяснить. То есть, следуя всем советам, ситуация такова, что для того, чтобы удалять "повисшие" библиотеки, надо ставить какую-то приблуду, которую пользователю еще надо будет запускать после apt-get remove? А чем это лучше костыля "чистильщика реестра" в виндоуз (был такой, помнится), появление которого было вызвано дебильными инсталляторами программ? Дайте мне *рациональные причины*, почему это не должно быть сделано в рамках apt!

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

Вот. Вдогонку. Такая возможноть вроде описывается в apt-get. Я о ней написал, между прочим в первом своем сообщении.

Q: A package I installed pulled tons of new libraries along with it. Now I I want to remove the package but how do I get rid of the extra libraries as well? A: Use "apt-get -D remove package" to remove package and all of it's dependencies which no other package requires.

Так что man читать умею. Кто говорил, что на 80% уверен, что это там не нужно?

Но! Я еще раз повторю, что срабатывает через раз. Да и вообще непонятно, как работает. Некоторые пакеты удаляет красиво, со всеми притянутыми. Другие пакеты удаляет с какми-то подмножеством библиотек, которые были притянуты (причем сразу же после установки). С третьими вообще не проходит фокус. Вот я и спросил ранее - это недоработка или особенность функционирования? В чем секрет?

Zubok ★★★★★
()

Как в Gentoo посмотреть обратные зависимости пакета?.. Помню как-то вроде делал, но как - не помню :D

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

equery debends EBUILD

вот только это херня все. У меня например не стояло ГТК то GCC от нее был зависим!

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

> Такая возможноть вроде описывается в apt-get. Я о ней написал, между прочим в первом своем сообщении.

================================ goblin:/home/andrey# apt-get -D remove mplayer

E: Неизвестная опция командной строки 'D' [из -D].

goblin:/home/andrey# ================================

Предположим, что эта мифическая опция существует (скорее всего, она существует в каком-то клоне apt'а, да?). В любом случае, если эта опция и присутствует, то у "apt-get -D remove", deborphan и debfoster три совершенно разных предназначения. Первая просто удаляет пакеты, от которых зависит только удаляемый, вторая позволяет _искать_ такие пакеты по различным критериям (например, только либы), debfoster же вообще занимается тем, что пытается держать систему в некотором идеальном состоянии, где все пакеты нужны. Если ты поставил какой-нибудь пакет A с бинарями, а потом пакет B, который зависит от A, то эта опция -D по идее должна удалить и A. А если там нужные тебе бинари?

> надо ставить какую-то приблуду

Unix-way рулит, каждая программа занимается своим делом. По-твоему, так надо чтоб все в одном флаконе было? Нафиг...

> которую пользователю еще надо будет запускать после apt-get remove?

не после, а вместо, хотя, вроде бы, можно и после...

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

> Дайте мне *рациональные причины*, почему это не должно быть сделано в рамках apt!

повторяю еще раз. 1) dpkg работает непосредственно с файлами пакетов и управляет списками установленных пакетов. 2) apt работает с репозитариями и позволяет манипулировать пакетами на уровне имен, а не файлов. Ну и где здесь должно стоять "удалять пакеты, от которых ничто не зависит"? Знаешь, сколько пакетов, от которых ничто не зависит? Например, от debfoster ничего существенного не зависит. Что ж их, всех удалять? или как ты себе иначе это представляешь? В общем, это чушь какая-то, имхо.

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

> открой для себя debfoster.
Блин, капец, а про aptitude кто-нть вспомнит?
Там как раз есть то, что надо при удалении чего-нть: "эти пакеты будут удалены, так как больше не используются".

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

а если они всё равно нужны ? то есть по вашему если от пакета никто не зависит и он никому не нужен - его теперь фтопку ? пипец....

ЗЫ. rpm -qa|grep kde|xargs rpm -e --nodeps --force

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

ну и заодно: equery depends gtk|tail -n +1|xargs emerge unmerge && emerge unmerge gtk

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

> то есть по вашему если от пакета никто не зависит и он никому не нужен - его теперь фтопку ?
Не совсем верно: например пакеты "верхнего уровня" (скажем xmms) фтопку не отправляются, хоть от них никто и не зависит. Дело в том, что aptitude помечает пакеты установленные для удовлетворения зависимостей (т.е. не по прямому запросу юзера) как "автоматические" и удалять будет, в случае если от них больше никто не зависит, только их. Пакеты к-рые юзер поставил "явно" могут быть удалены тоже только явно. А если же пакет нужен для софта собранного из сорцов, то тут юзеру просто не надо тупить: либо собирать пакет из сорцов в deb-ку, либо использовать equiv, либо внимательно смотреть что удаляется :)

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

>1) dpkg работает непосредственно с файлами пакетов и управляет списками установленных пакетов.

Это не оспаривалось за весь ход разговора.

>2) apt работает с репозитариями и позволяет манипулировать пакетами на уровне имен, а не файлов.

Поразбираемся. Установка пакетов осуществляется пользователем через apt-get install. Следовательно apt вполне может владеть информацией о том, был ли пакет установлен по запросу или притянут другим пакетом. Пример. Поставил сам Mozilla. Потом решил поставить Galeon. Galeon использует Mozilla. Если Galeon не понравился, то прошу удалить его со всем барахлом, которое было притянуто. Если бы apt помнил, что Mozilla была установлена вручную, то не снес бы ее, выдав предупреждение, что пакет Mozilla, от которого завист Galeon удален не будет по причине установки по запросу.

>Ну и где здесь должно стоять "удалять пакеты, от которых ничто не зависит"? Знаешь, сколько пакетов, от которых ничто не зависит? Например, от debfoster ничего существенного не зависит. Что ж их, всех удалять? или как ты себе иначе это представляешь? В общем, это чушь какая-то, имхо.

Опять тот же пример с Мозиллой и Галеоном. Удаление Галеона автоматически означет удаление Мозиллы, если она была с Галеоном поставлена, а не пользователем. Довольно простое правило. Ставил ты debfoster сам через apt-get, тогда никто и ничто его не удалит. А притащил debfoster какой-нибудь другой пакет - удалится. Нужен отдельно debfoster - поставь его отдельно. Он будет помечен "установлен по запросу". И только ты его можешь удалить через apt-get remove, и пакет, который его использует не унесет его. Реализация схемы может быть и как надстройка над apt, и как часть apt. Вполне возможно, что так работает aptitude, но я этот пакет не смотрел. Так что я не понимаю сложностей. Вполне возможно, что apt с опцией "-D" - это действительно клон (я посомтрел, что пакет имеет сигнатуру cnc. т .е apt-0.5.15cnc ), но я так понмиаю, что это попытка реализации похожей такой схемы, кроме отслеживания установок по запросу и без него. Хотя, поэкспериментирую. Уже несколько обновлений apt было.

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

Это все правильно описал, но про aptitude.
Т.е. вполне может быть такое:
apt-get install kde
будет установлено дофига пакетов
apt-get remove kde
будет удален 1 пакет :(
НО
aptitude install kde
будет установлено дофига пакетов
aptitude remove kde
будет удалено дофига пакетов

Не уверен на 100% но скорее всего так и есть.

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

имхо проще не извращаться а поглядеть список пакетов и поудалять всё что не надо вручную, или вы так часто пакеты сносите ? я вот поставил нужный софт и просто его обновляю, зачем чета удалять ? :)

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

вот кстате в генту софт устанавливаемый по зависимости в world-файл не попадает... хм...

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

Нет, ну это никуда не годится. Мне часто приходится ставить новый софт, чтобы "пощупать" его. Бывает так, что с собой он тянет штук десять пакетов: какие-то библиотеки для Python, нужные только ему, библиотеки какие-то, которые за сто лет больше не понадобятся. Что же вы предлагаете? Переписать все на бумажку, а потом удалять по одной? Над нами мир смеяться будет :)

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

зачем бумажку то ? rpm -qa, dpkg -I, qpkg -I :)

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

надо кстате подумать про удаление с использованием world-файла, уже кой какая идея появилась

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

щаз образно опишу

if (equery depends xmms-mp3|tail -n +1 ) == 0 then { if (grep xmms-mp3 world == 0) then { emerge unmerge xmms-mp3 } }

ченить типа того :)

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