LINUX.ORG.RU

[Debian] Вопрос об aptitude

 


1

4

Ставлю я метапакет xfce4. Ну, дело понятное, он тянет, допустим, 20 пакетов. Aptitude разруливает зависимости и все такое.

Но вот я решаю удалить метапакет xfce4 со всем, что он за собой потянул. Но удаляется уже не 20 пакетов, как ставилось, а только 15.

У меня сейчас, после «aptitude purge xfce4 xfce-goodies», установленными (притом автоматически установленными, iA) остались thunar, thunar-data, thunar-volman, hal.

Какого черта?

Deleted

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

> Ну нету, нету в линуксе средства для динамического конфигурирование альтернативных зависимостей на уровне отдельных зависимостей отдельных пакетов.

Ой, слова какие умные. На такие крутые вопросы отвечай сам.

Для этого придётся написать новый пакетник и иcпользовать отдельный --prefix при сборке каждого пакета, после чего перелинковывать их симлинками.


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

А настройка альтернатив на уровне всей системы — это бесполезный костыль.


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

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

> Для этого придётся размещать файлы программ по FHS, всего-то.

Все такие умные становятся, когда реальный код писать не надо. Всё так просто, что разработчики Gobo накрутили кучу симлинков по всей FHS, разработчики NixOS сдеалли пакетник на принципах ФП с ганатированно уникальными установочными путями для каждого пакета, а разработчики Gentoo придумали систему слотов. Иди научи их, как правиль пакеты ставить.

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

Зачем? Ты каждый день видеокарты меняешь? Я же говорю — примеры использования высосаны из пальца.

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

> Все такие умные становятся, когда реальный код писать не надо. Всё так просто, что разработчики Gobo накрутили кучу симлинков по всей FHS, разработчики NixOS сдеалли пакетник на принципах ФП с ганатированно уникальными установочными путями для каждого пакета, а разработчики Gentoo придумали систему слотов. Иди научи их, как правиль пакеты ставить.

При чём тут реальный код? Нужно быть конкретным бараном, чтобы не осилить FHS. Тут появилась другая теория. Всё дело в том, что у тебя попоболь от того, что в дебиане конфликты как в случае с libglx разрешаются мейнтейнерами с помощью механизма альтернатив, а в арче всё по принципу «жри как есть».

Зачем? Ты каждый день видеокарты меняешь? Я же говорю — примеры использования высосаны из пальца.


Высосаны из пальца? Я проверяю работу опенгл-приложения на разных движках. Зачем держать несколько драйверов, когда можно установить НЕСКОЛЬКО АРЧЛИНУПСОВ с разными дровами, ага?

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

> Нужно быть конкретным бараном, чтобы не осилить FHS.

Ну так осиль. Иди, раскрой глаза разработчикам всех пакетников, что они, бараны, не осилили FHS, мучаются с каким-то конфликтами пакетов, когда всё просто как два пальца.

Высосаны из пальца? Я проверяю работу опенгл-приложения на разных движках.

И каждый раз делаешь реконфигурацию альтернатив? :D

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

> Собсно, о чём речь. Если товарищ Axon ничего не напутал, то в арче тот же самый конфуз с автоудалением и метапакетами.

Я в курсе. В арче другая политика пакетирования, поэтому ситуация, когда пакет P зависит от абстрактного x-display-manager, для арча характерной не является. И это снимает проблему.

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

> Ну так осиль. Иди, раскрой глаза разработчикам всех пакетников, что они, бараны, не осилили FHS, мучаются с каким-то конфликтами пакетов, когда всё просто как два пальца.

Так и нет проблемы-то. В том же дебиане например. Там кроме случая с альтернативными реализациями и конфликтовать-то ничего не может. Ну разве что разработчики tar переименуют своё творение в bash вместе с бинариками, и НИЧЕГО НЕ ПОДОЗРЕВАЯ выложат дебы.

И каждый раз делаешь реконфигурацию альтернатив? :D


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

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

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

Можешь. Почему ты решил, что не можешь-то?

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

> А искы уже позволяют работать с двумя драйверами сразу? Смена пары симлинков это всяко быстрее чем переустановка драйвера.

А вызов ln еще быстрее, чем вызов реконфигурации альтернативы. Под такую задачу, как у тебя, можно просто пересобрать два специфичных пакета и кидать нужные линки руками. «Любой конфликт можно разрешить, поменяв пути.» (c)

Городить огород в пакетном менеджере — явный оверкилл.

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

Зачем пересобирать, когда всё за тебя разрешено?

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

> А вызов ln еще быстрее, чем вызов реконфигурации альтернативы. Под такую задачу, как у тебя, можно просто пересобрать два специфичных пакета и кидать нужные линки руками. «Любой конфликт можно разрешить, поменяв пути.» (c)

Я не буду лезть в системные папки, пусть за меня это делает update-alternatives.

Городить свои велосипеды когда есть менеджер альтернатив - явный оверкилл.

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

> Можешь. Почему ты решил, что не можешь-то?

Так гнум зависит не от абстрактного DM, а от gdm. Хотя может работать с любым Как же мне быть?

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

> Так гнум зависит не от абстрактного DM, а от gdm. Хотя может работать с любым Как же мне быть?

Это метапакет. Он не содержит никакой функциональности и не может «работать». Ставишь весь нужный тебе софт, вот и всё.

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

> Ставишь весь нужный тебе софт, вот и всё.

Пакет 'gnome-desktop', или как он там - наверняка зависит от gdm. Предлагаешь ставить ручками куски гнума? Нет уж, спасибо. Я уж лучше потерплю велосипеды высосанные из пальца, чтобы установить в два клика.

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

> Пакет 'gnome-desktop', или как он там - наверняка зависит от gdm.

И что? gnome — это группа пакетов. Ты можешь установить только отдельные части группы. Запускаешь pacman -S gnome, смотришь на список элементов группы. На предложение выбрать пакеты вводишь, нужные номера. Например ^24 чтобы отказать от 24-го пакета в списке. Жмешь ввод, пакеты ставятся.

Кстати, конкретно в группу gnome гномовский DM сейчас не входит. Странно, вроде раньше входил, или я что-то путаю.

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

Вот тебе доходчивый пример, дружок. Допустим, есть гнумоапплет, показывающий количество писем в почтовом ящике gmail. По клику на него должен открываться веб-интерфейс почты или почтовый клиент. Соответственно, он будет рекомендовать установить браузер или почтовый клиент. Как тут быть без нормальных метапакетов?

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

> Как тут быть без нормальных метапакетов?

Тут вообще метапакеты ни при чем, ты с виртуальными перепутал.

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

Да пусть хоть зарекомендуется. «Мягкие» зависимости придумали дебиановцы в приступе наркотического бреда. Либо программа может работать без какого-то компонента, либо не может. Никаких мягких зависмостей не существует, потому что мягкая завимисость это _не_ зависимость.

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

Во-вторых, тебе всё равно придётся настраивать этот апплет, чтобы указать, в _каком_ _именно_ браузере открывать ссылку (ну или он может подхватывать дефолтный браузер DE, но тогда придётся настраивать саму DE, что эквивалентно). Ну и зачем тебе тогда эти зависимости-рекомендации? Только лишняя головная боль для мейнтейнера писать их, а толку от них — ноль.

В pacman, к слову, тоже есть рекомендательные зависимости. Единственное их предназначение — после установки пакетов глубокомысленно изречь в консоль «к этому пакету могут быть полезны вот такие-то и такие-то пакеты для того-то и вот того-то».

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

> Тут вообще метапакеты ни при чем, ты с виртуальными перепутал.

Ну мысль ты понял.

Да пусть хоть зарекомендуется. «Мягкие» зависимости придумали дебиановцы в приступе наркотического бреда. Либо программа может работать без какого-то компонента, либо не может. Никаких мягких зависмостей не существует, потому что мягкая завимисость это _не_ зависимость.


Я не хочу тянуть с программой всякое ненужное говно. И при этом я хочу видеть, что может улучшить функционал программы.

Либо программа может работать без какого-то компонента, либо не может.


А ты умненький.

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


Если ты ставишь программу, работающую под иксами и написанную на c++/qt4, то, если ты не полный даун, ты поставишь и зависимости. Глядеть в список зависимостей тебе для этого не потребуется.

Во-вторых, тебе всё равно придётся настраивать этот апплет, чтобы указать, в _каком_ _именно_ браузере открывать ссылку (ну или он может подхватывать дефолтный браузер DE, но тогда придётся настраивать саму DE, что эквивалентно). Ну и зачем тебе тогда эти зависимости-рекомендации? Только лишняя головная боль для мейнтейнера писать их, а толку от них — ноль.


Не угадал, ничего не надо указывать. Откроется в дефолтном браузере.

В pacman, к слову, тоже есть рекомендательные зависимости. Единственное их предназначение — после установки пакетов глубокомысленно изречь в консоль «к этому пакету могут быть полезны вот такие-то и такие-то пакеты для того-то и вот того-то».


Да пусть хоть зарекомендуется. «Мягкие» зависимости придумали арчеводы в приступе наркотического бреда. Либо программа может работать без какого-то компонента, либо не может. Никаких мягких зависмостей не существует, потому что мягкая завимисость это _не_ зависимость.

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

> По-взрослому себя веди.

А я при чем? Ты написал не связанную с ходом обсуждения реплику. Либастрал не собран, уж извини.

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

> Если ты ставишь программу, работающую под иксами и написанную на c++/qt4, то, если ты не полный даун, ты поставишь и зависимости. Глядеть в список зависимостей тебе для этого не потребуется.

Да пусть хоть зарекомендуется. «Мягкие» зависимости придумали арчеводы в приступе наркотического бреда. Либо программа может работать без какого-то компонента, либо не может. Никаких мягких зависмостей не существует, потому что мягкая завимисость это _не_ зависимость.


«По-взрослому себя веди.» (c)
Ага?

Не угадал, ничего не надо указывать. Откроется в дефолтном браузере.


В каком дефолтном? В дефолтно-общесистемном, указанном альтернативой через симлинк? Так это очередное порождение воспалённого разума демьяновцев. Общесистемный дефолтный браузер не нужен.

А если в дефолтном для DE, то тут пакетник ни при чем, вот облом, да?

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

Опять бессвязный бред?

Какое отношение группы пакетов имеют к виртуальным пакетам? Правильный ответ: никакого. Заканчивай ты с этой травой.

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

> Общесистемный дефолтный браузер не нужен.

Обоснуй.

И да, делать талмуд из описания пакета, вытаскивая туда словесное перечисление рекомендаций - ПЛОХАЯ ИДЕЯ. Плод твоей больной фантазии :(

А тем временем следующий пример. Наш апплет умеет взаимодействовать только с браузером и без браузера не будет работать. Что тогда прописываем в зависимостях?

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

> Какое отношение группы пакетов имеют к виртуальным пакетам? Правильный ответ: никакого.

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

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

> И да, делать талмуд из описания пакета, вытаскивая туда словесное перечисление рекомендаций - ПЛОХАЯ ИДЕЯ. Плод твоей больной фантазии :(

Плохая, не спорю. А кто-то так делает?

Наш апплет умеет взаимодействовать только с браузером и без браузера не будет работать. Что тогда прописываем в зависимостях?

Без КАКОГО браузера? вебкит, xul, чёрт с рогами? Вот конкретную реализацию, которую требует твой апплет, и ставь в зависимость.

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

> Плохая, не спорю. А кто-то так делает?

К счастью, никто. Но ты ж предлагал.

Без КАКОГО браузера? вебкит, xul, чёрт с рогами? Вот конкретную реализацию, которую требует твой апплет, и ставь в зависимость.


Да хоть консольного. Задача - при поступлении письма открыть браузер с гмейлом.

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

> Ну ладно, повторим ещё раз. Если несколько пакетов предоставляют схожий функционал или реализуют один интерфейс - они предоставляют один виртуальный пакет. Что непонятного?

Отлично, какой общий интерфейс предоставляют firefox и opera? И не на прикладном уровне «вызвать браузер и открыть страничку», а на системном. Какой у них общий интерфейс?

Нет его. Потому что у них вообще нет API ни в каком виде — это не библиотека, не консольная утилита с четко определённой семантикой и аргументами вызова, не файл данных в известном формате — ничего из перечисленного.

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

Ты ведь понимаешь, что глупо перечислять все браузеры? Постоянно выходят новые, и все дела.

Или, допустим, юзер скачает пакет с оперой, про которую автор почему-то не слышал. И очень удивится, почему опера не браузер.

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

> Но ты ж предлагал.

О_О Ты всё же заканчивай с травой.

Да хоть консольного. Задача - при поступлении письма открыть браузер с гмейлом.

Так значит он всё-таки работает без браузера? Значит не нужна зависимость от браузера. Всё просто.

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

Нет его.

Ой, да они, о боже, ОДИНАКОВО ВЫЗЫВАЮТСЯ.

opera [options] [URL...]
iceweasel [OPTIONS] [URL]

Хотя тут соль в схожем функционале, а не в интерфейсах.

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

Так значит он всё-таки работает без браузера? Значит не нужна зависимость от браузера. Всё просто.

«При поступлении письма сделать ничего» - вот сам пользуйся такой программой.

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

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

Или я не из описания должен узнать, что она что-то делает в браузере?

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

> Ты ведь понимаешь, что глупо перечислять все браузеры? Постоянно выходят новые, и все дела.

*ласково* Ты ведь понимаешь, что если, как ты написал, программа _требует_ браузер, то это означает, что она либо слинкована с его библиотеками, и с другим не заработает, хоть тресни, либо рассчитана на работу с четко определенными бинарниками и их ключами командной строки? А если не слинкована, и не вызывает четко определенные бинарники, то и не требует.

Или, допустим, юзер скачает пакет с оперой, про которую автор почему-то не слышал. И очень удивится, почему опера не браузер.

Если апплету подходит любой браузер, то ставишь в настройках апплета команду opera в нужном месте, и всё.

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

> *ласково* Ты ведь понимаешь, что если, как ты написал, программа _требует_ браузер, то это означает, что она либо слинкована с его библиотеками, и с другим не заработает, хоть тресни, либо рассчитана на работу с четко определенными бинарниками и их ключами командной строки? А если не слинкована, и не вызывает четко определенные бинарники, то и не требует.

Ты тупой или притворяешься? Она вызывает симлинк на любой из браузеров. Нет браузеров - нет симлинка. При чём тут линковка вообще?

Если апплету подходит любой браузер, то ставишь в настройках апплета команду opera в нужном месте, и всё.


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

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

> Ой, да они, о боже, ОДИНАКОВО ВЫЗЫВАЮТСЯ.

opera [options] [URL...]

iceweasel [OPTIONS] [URL]



А еще wget [options] [URL...] , thunderbird [options] [URL...] , ~/bin/myscript [options] [URL...]...

Что общего между этими программами? А ничего.

Хотя тут соль в схожем функционале, а не в интерфейсах.


Соль именно в интерфейсе. Если кому-то нужен sed, значит в системе должен быть sed. Должен так называться и должен предсказуемо отвечать на стандартные ключи. Поэтому если у тебя вместо стоит my-super-puper-sed, который отзывается на команду sed, он должен предоставить виртуальный пакет sed, чтобы ты мог поставить программы, зависящие от sed.

А если ты выбираешь, в каком браузере открывать ссылку из твоего любимого апплета, это лично дело для тебя и апплета. Пакетнику до твоих настроек в хомяке дела нет.

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

> Она вызывает симлинк на любой из браузеров. Нет браузеров - нет симлинка. При чём тут линковка вообще?

Симлинк — результат больного воображени демьяновцев. Нормальные люди прикладной софт настраивают, указывая в его настройках нужную команду. В конце концов, есть стандарты fd.o для описания, какое приложение для чего предназначено логически. Так что ты всегда можешь в настройках своей DE выбрать нужный браузер из выпадающего спсика.

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

> Что общего между этими программами? А ничего.

Да ты просёк фишку. Дело в том, что первые - браузеры, а вторые - нет.

Соль именно в интерфейсе.


Неа, в функционале. А ты споришь со мной сейчас что в интерфейсе, а потом доказываешь что это не общий интерфейс. Мсье сам не знает чего желает.

Если кому-то нужен sed, значит в системе должен быть sed. Должен так называться и должен предсказуемо отвечать на стандартные ключи. Поэтому если у тебя вместо стоит my-super-puper-sed, который отзывается на команду sed, он должен предоставить виртуальный пакет sed, чтобы ты мог поставить программы, зависящие от sed.


поставь вместо sed слово «браузер» мне лениво менять.

А если ты выбираешь, в каком браузере открывать ссылку из твоего любимого апплета, это лично дело для тебя и апплета. Пакетнику до твоих настроек в хомяке дела нет.


А дефолтный вариант из пальца высасывать? Или заставить пользователя настраивать каждую мелочь, прежде чем она заработает хоть как-то?

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

> Симлинк — результат больного воображени демьяновцев. Нормальные люди прикладной софт настраивают, указывая в его настройках нужную команду. В конце концов, есть стандарты fd.o для описания, какое приложение для чего предназначено логически. Так что ты всегда можешь в настройках своей DE выбрать нужный браузер из выпадающего спсика.

Я могу и в update-alternatives выбрать нужный браузер из выпадающего списка. Тебя не устраивают симлинки как реализация или что?

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

> Нормальные люди прикладной софт настраивают, указывая в его настройках нужную команду

У нормальных людей настройка это способ не заставить программу работать, а изменить её поведение.

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

поставь вместо sed слово «браузер» мне лениво менять.

Бла-бла. Для начала, покажи мне программу, которая зависит от браузера в том же смысле, в котором initscripts зависят от mount, например.

А дефолтный вариант из пальца высасывать? Или заставить пользователя настраивать каждую мелочь, прежде чем она заработает хоть как-то?

Какой «дефолтный»? Ты осознаешь, что применимость самого понятия дефолтный, подразумевает возможность выбора среди установленных? А значит это не зависимость.

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

> Бла-бла. Для начала, покажи мне программу, которая зависит от браузера в том же смысле, в котором initscripts зависят от mount, например.

Я понятия не имею, как initscripts зависит от mount.

Какой «дефолтный»? Ты осознаешь, что применимость самого понятия дефолтный, подразумевает возможность выбора среди установленных? А значит это не зависимость.


Когда программа требует хотя бы один компонент из списка - не зависимость? Обоснуй.

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