LINUX.ORG.RU

[Debian] Вручную установленные пакеты

 


0

0

Как в Debian получить только пакеты, установленные вручную, без их зависимостей? Аналог гентовского cat /var/lib/portage/world или арчевского pacman -Qe



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

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

и в итоге оно выдало 1156 пакетов. что-то я очень сомневаюсь, что я вручную мог столько поставить.

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

А ты проверь, да.

aptitude search ~i — все инсталлированные пакеты

aptitude search '~i~!M' — все инсталлированные, но вручную

aptitude search '~i~M' — все иснталлированные автоматически

Сложи и проверь, совпадает ли. У меня 1344 = 462 + 882

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

Ладно, спасибо за помощь. Если проверить, то верно. Но просто в той-же генте и арче при равной с дебианом функциональности количество пакетов установленных вручную не превышает 150. а тут порядка за тысячу перевалило.

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

К сожалению, очень много пакетов и библиотек после инсталляции Debian отмечены как установленные вручную. Я в исходник установщика не лазил, но предполагаю, что базовый (весьма обширный) набор пакетов и библиотек ставится попакетно. То есть каждая библиотека из базового набора оказывается установленной вручную. Однако это можно поправить уже после установки. Можно зайти в морду aptitude, зайти в раздел библиотек main/libs, например. Они там все в виде lib*. Надо пометить их как установленные автоматически (нажать 'Shift+m', но кроме тех, которые действительно ставились вручную). Также много пакетов от иксов значатся установленными вручную и много разного рода базовых пакетов (библиотеки к perl, базовая система и т. п.). Я до Etch это поправил, т. е. восстановил зависимости. С тех пор все чистенько происходит. После таких манипуляций число пакетов, установленных вручную, резко сократится. Все это делать, конечно, совсем необязательно. Я сделал, так как у меня система эволюционирует без перестановки уже давно, плавно апгрейдясь. А система ставилась, когда еще apt-get был в моде и когда он еще не умел понимать, кто автоматически, а кто вручную, поэтому пришлось восстанавливать зависимости ручками при переходе на aptitude. Многие до сих пор этого не делают и живут счастливо.

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

>А какой смысл в этой процедуре для стейбла?

Не знаю, удовлетворит ли это объяснение. Есть пакет, который зависит от библиотеки или другой программы. И пакет, и библиотека обозначены как установленные вручную. Пакет сносим, а библиотека эта больше никому не нужна, но она не удалится, а будет вечно висеть, потому что автоматически удаляются вместе с пакетом только установленные по зависимостям, т. е. автоматически. Это все. Если это не разражает, то и не надо ничего поправлять. Если потом захочется избавиться от ненужных пакетов, то придется полную инспекцию проводить, вспоминать, ставил ли ты этот пакет или нет. Я один раз подправил зависимости, а дальше в этом необходимость просто отпала, система за чистотой своих рядов следит самостоятельно при удалении пакетов, при апгрейде до следующего stable.

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

Надо будет, конечно, еще учитывать, что куча пакетов пришло по рекомендации. У меня установка рекомендуемых отключена, поэтому я не помню, как они помечаются — как установленные вручную или притянутые автоматически. Я обычно интересующие пакеты из рекомендуемого набора просматриваю и ставлю вручную то, что мне надо.

Zubok ★★★★★
()

Вручную это какие? Через deb вне репозитария или прямой указкой внутри репозитария, но не по зависимостям?

1ое

aptitude search ~o
Все устаревшие и установленные вручную. Ну а дальше уже можно попробовать другие параметры доставить по вкусу.

Про второе уже сказали. Некоторые стандартные пакеты отмечены как установленные вручную, т.к. они необходимы для системы (или при выборе задач при установке тоже отметятся) чтобы их по зависимостям не снесло в случае, если от них ничего не зависит.

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

Насколько я помню, это тоже автоматические, но у меня тоже отключено.

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


А зачем это нужно? Места на диске не хватает?
apt-get autoremove? есть еще другая тузлень, деборфан кажись называется, она лазит по списку покетов и спрашивает, что тебе надо или не надо. Потом, в зависимости от вызова, может все что не надо удалить.

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

>А зачем это нужно? Места на диске не хватает?

Я пурист. Для этого нужно применить усилия один раз и забыть. И еще раз отсылаю к своим ответам. Я там написал, что это полезно сделать тем, кому мешает беспорядок. Человек удивился, что у него вручную установленных пакетов больше тысячи. Кому это не мешает, может ничего не удалять. Но пусть будет готовым к тому, что если он захочет снести GNIME и поставить KDE, то очень вероятно, что в системе останется много гномячего хлама.

apt-get autoremove?

А это тут при чем? Стандартное удаление пакета с зависимостями, как и aptitude remove. Или ты хочешь, чтобы тебе предлагались к сносу пакеты, которые помечены как установленные вручную и которые программа внезапно посчитает, что они тебе не нужны? Нет уж, все эти программы написаны так, чтобы не считать себя умнее пользователя.

деборфан

Deprecated, так как aptitude, apt-get и др. все это делают сейчас без всяких тулзеней, если в системе порядок, разумеется. У меня порядок. А если беспорядок, то для приведения системы в надлежащий вид вполне можно применить, а потом нормально пользоваться aptitude. Однако список, который выдаст deborphan, все-равно надо фильтровать, он туда и нужные пакеты запишет. Способ все-равно полуавтоматический, требуется вмешательство пользователя.

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

Я как поставил деб так и забыл. Достаточно ОДИН РАЗ ГРАМОТНО УСТАНОВИТЬ И НАСТРОИТЬ СИСТЕМУ. Все остальное - либо от безделья, либо от красноглазия. Ты видимо от безделья.

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

Хотя кривизны дебиановского менеджера пакетов это не отменяет. К примеру, установка новых тем для кде потащит по зависимости всякой ненужной фигни.

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

>Хотя кривизны дебиановского менеджера пакетов это не отменяет. К примеру, установка новых тем для кде потащит по зависимости всякой ненужной фигни.

Это кривизна не пакетного менеджера, а твоих рук (ответ на красноглазие и безделие). Ненужная фигня приходит по recommends, а не по depends. Те, кто знают, что им нужно, те установку recommends могут отключить. Большинству же recommends я бы рекомендовал ставить, иначе могут получить не весь функционал. Например, кодеки gstreamer для звукового оповещения в pidgin идут по рекомендации. При этом aptitude, например, при отключении recommends предложит эти пакеты снести.

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

Увы, руки тут не при чем. И это не recommends, а именно зависисмости. Если ты не знаешь этого, значит в дибиане не разбираешься вообще.

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

ОК, я не разбираюсь в Debian'e вообще. Извини, что спорил. :)

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

> Не знаю, удовлетворит ли это объяснение.

Вполне. Я этим вопросом особо не заморачивался, поэтому про такое количество пакетов, которое считается установленными вручную и не догадывался. Спасибо, буду знать, хотя до интенсивной зачистки точно дело не дойдёт. :)

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

Например для того, чтобы перед обновлением удалить ненужные программы. Вот тут проблема и возникает. В генте открыл /var/lib/package/world, увидел только то, что ты сам руками ставил(а не установилось системой и отметилось как установленное вручную), удалил все ненужное, сделал emerge --depclean и готово. А арче ситуация подобная, по крайней мере количество пакетов которое ставится при установке системы и отмечаются как установленные вручную невелико. Даже в оффтопике можно открыть центр установки и удаления программ и примерно видно что стоит. А в дебиане же и убунте смотришь список установленных вручную и понимаешь, что он сделан явно не для людей.

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

>хотя до интенсивной зачистки точно дело не дойдёт. :)

Если чего-то и чистить, то можно библиотеками только ограничиться. Это даже не чистка. Там просто надо каждую библиотеку, которая обозначена как установленная вручную, отметить как установленную автоматически. В морде aptitude это удобно делать, они там все в разделе libs/main лежат. Это дело на несколько минут. Можно, конечно, и по маске ^lib все скопом пометить при помощи aptitude markauto, но есть вероятность, что так может пометиться пакет, который не библиотека и который начинается на lib (например, libtool) или пакеты из раздела -dev, которые ставились вручную. Вероятно, что после этой процедуры накоторые библиотеки сразу пойдут автоматом на удаление, так как окажется, что они сиротинушки и никому не нужны. А может ничего не произойти. Потом уже такого вмешательства не потребуется.

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

Можно, конечно, и по маске ^lib все скопом пометить при помощи aptitude markauto, но есть вероятность, что так может пометиться пакет, который не библиотека и который начинается на lib (например, libtool)

Получить выборку библиотек в aptitude можно ключом ~slib

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

>Можно, конечно, и по маске ^lib все скопом пометить при помощи aptitude markauto,

Можно также пометить и все установленные пакеты из раздела libs:

sudo aptitude markauto ~slibs~i

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

гыг, пока писал, ты уже уточнил. Я забыл написать. :)

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

>Получить выборку библиотек в aptitude можно ключом ~slib

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

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

вообще-то бредовая возможность
допустим , я фиксирую состояние системы составлением перечня пакетов
на момент X, а в момент Y получаю контрольный diff изменения перечня пакетов.
Это мне как-то еще понятно в практической плоскости полезности.

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

>вообще-то бредовая возможность

В смысле? Ты ответил на комментарий, где про ~slibs шла речь. Эта возможность имеется в виду, что бредовая?

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


Эта возможность имеется в виду, что бредовая?


Да.
Перечитывал весь тред и все примерял на себя полезность и использование этой фичи .
Составляю LiveCD и получаю торбу пакетов установленных вручную. ))

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

>Составляю LiveCD и получаю торбу пакетов установленных вручную. ))

Ну тут же все-равно все пакеты нужны практически всегда. ИМХО, это не зло. Может, в этих Гентах с Арчами какие-то метапакеты крупные используются для поставки всей базовой системы, и поэтому число пакетов, установленных вручную такое небольшое или механизм подсчета другой. Может, там подсчет пакетов установленных вручную начинается с момента после установки какой-то базовой системы, а она сама никогда не учитывается. Или, может, разбиение на пакеты более укрупненное. Или подсчитываются только действия пользователя по установке. Автор топика, наверное, знает. В Debian же с этих всех utils-linux, perl, apt, dpkg, file, всяких сетевых утилит и программ, всяких принтерных, ядреных, иксовых и пр. Их же дофига в базовой установке. Вот и набирается торба. Это же у нас все отдельные пакеты. И они важные и их много.

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

В генте все эти важные пакеты просто отделили в отдельный список. И они сидят там и не мозолят глаза.

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

>В генте все эти важные пакеты просто отделили в отдельный список. И они сидят там и не мозолят глаза.

Правильно ли я понимаю, что ведется отдельный список пакетов, поставленных именно пользователем?

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

Да. Там идет 2 списка. system - то есть пакеты, необходимые для функционирования системы, и world - пакеты, которые устанавливал именно пользователь. Ну и отдельно зависимости этих пакетов. Изначально, после установки системы список world пустой.

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

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

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

Такой функционал, конечно, реализуем и в Debian, но поверх aptitude. Можно пакетам, которые ставятся при помощи aptitude, давать любой, придуманный тобой пользовательский тег (--add-user-tag). А потом просто делать поиск пакетов по этому тегу. Добавление пользовательского тега — это особенность aptitude. Другие пакетные менеджеры, может быть, и имеют нечто похожее уже из коробки (я имею в виду ведение списка пакетов пользователя). Вот elipse может рассказать, есть ли такое в wajig, а JackYF может рассказть, есть ли такое в cupt. :) В Debian есть костылина debfoster, ориентированная на такую же вот задачу отслеживания пользовательских пакетов, но она тоже deprecated in favour of aptitude.

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

>А так как от привычек отказываться сложно пытаюсь найти со сходным по действию пакетным менеджером. К сожалению, дебиановский, как я понял довольно далек от идеала. Видимо все-таки выберу арч.

Интересно узнать, неужели поведение пакетного менеджера, что, что один показывается отдельно твои пакеты и системные, а другой все сразу, является решающим при выборе дистрибутива?! Что-то я не понимаю в этой жизни. Я думаю, что решающим должно быть что-то более существенное. Вот отсутствие времени и мощности машины для компиляции Gentoo — это существенный аргумент, чтобы уйти с нее, хотя кто-то вполне может указать на ее преимущества для себя. Но какой-то список пакетов...

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

Само по себе конечно не является. Но есть есть 2 дистрибутива, которые в остальном всем устраивают, и надо из них выбирать, то смотришь уже на мелочи. И вот это и поведение и есть мелочь, которая позволяет выбрать один дистрибутив вместо другого. Так что все ты в этой жизни понимаешь верно.

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

~M - это установленные автоматически

Читай выше, там уже ответили на вопрос. Просто в результате получается огромное количество пакетов(из-за тех, что ставятся при установке системы), что становится неудобно со всем этим работать.

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

Но просто в той-же генте и арче при равной с дебианом функциональности количество пакетов установленных вручную не превышает 150

[jugatsu@lenovo ~]$ aptitude search ~M | wc -l
139
anton_jugatsu ★★★★
()
Ответ на: комментарий от anton_jugatsu

из 1957 установленных:
$aptitude search ~M | wc -l
1550

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

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

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

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

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