это единственный способ?
там описывается управление на основе пакетов и репозитариев, а на основе версий можно как-то?
например пакет superprogram-1.2.3 лежит в анстейбле, причём именно в 1.2.3 добавили супер-нужную фичу. А также, своими провидческими способностями я знаю, что версия 1.2.4 будет гюкавая и нестабильная и я не хочу её ставить. И, ибо я человек разумный, то не хочу, чтобы он(пакет) ставился из анстейбла... в тестинге пока лежит superprogram-1.2.0, а в стейбле - 1.1.0. Так вот я хочу установить самое свежее, что есть в тестинге и чтобы обновления мне автоматом доставляли всё, что есть до 1.2.3, а с появлением версии 1.2.4 перестал обновляться.
Всё кроме последней части выглядит несложно, накладывая правила друг на друга...
Ещё из той же оперы с версиями: что, если у меня десяток репозитариев и мне нужна версия 1.2.3 из репозитария, в котором она первым появится, но я не хочу, чтобы ставилась версия 1.2.4?
newzenon написал:
Вот обсуждали, не вникал:
Приоритеты репозиториев #192447
:lol: я в том обсуждении тоже участвовал... там из полезного вопросы ТС, цитата из мана и её перевод... вопрос тогда ещё назревать начал, но формулировался долго...
это единственный способ?
там описывается управление на основе пакетов и репозитариев, а на основе версий можно как-то?
Не ну ротация пакетов постоянно идёт кроме stable, хотя там тоже движение есть.
Так что только установить вручную нужную версию через dpkg -i (или обновиться до неё).
И сделать так чтобы пакет не обновлялся. (unmarkauto).
И, наконец, еще пара операторов, не имеющих аналогов в инструментарии apt: markauto и unmarkauto. Первый помечает пакет или их группу как установленную автоматически в качестве зависимостей. Так, командой
text
$ sudo aptitude markauto '~slibs'
в качестве автоматически установленных будут помечены все пакеты с компонентом libs в имени – то есть практически все библиотеки, следствием чего явится автоматическое удаление неиспользуемых библиотек после деинсталляции последнего зависимого от них пакета. Если же для некоторых библиотек это по каким-либо причинам нежелательно, их можно «размаркировать» командой
text
$ sudo aptitude unmarkauto pkg_name
переведя таким образом в категорию пакетов, установленных собственноручно, и, следовательно, могущих быть удаленными только явным образом .
http://wiki.linuxformat.ru/index.php/LXF83:APTITUDE
Азбука deb-пакетного менеджмента: семейство утилит dpkg http://citkit.ru/articles/350/
ы. У меня немного отрицательное отношение к данному представителю тех писателей, но отфильтровав есть чему поучиться. Поищи у него про сборку deb пакетов есть интерестное и весьма развернутое.
про авто/неавто пакеты я неправильно понимал... думал они всё же будут автоматом обновляться... тогда обидно, ещё за чем-то надо следить((
newzenon написал:
Поищи у него про сборку deb пакетов есть интерестное и весьма развернутое.
чего-то не нашёл...
эх.... всёже убеждаюсь, что портедж - непревзойдённая систему управления пакетами... конечно с бинарями она не так эффективна... на вот бы заменить все эти аптшные предлагает/рекомендует юсами и добавить управление версиями, как у нас, со всеми слотами и маскировками... цены бы ей небыло...
про авто/неавто пакеты я неправильно понимал... думал они всё же будут автоматом обновляться... тогда обидно, ещё за чем-то надо следить((
Не, понимал правильно и неправильно, просто есть еще метапакеты для которых unmarkauto будет обозночать не обновлять их, но обновлять то что он притащил за собой, короче это тоже надо прочувствовать.
ы. Наконец -то добрался до gentoo, под чрутом собрал, захотел сразу zen kernel - не прокатило, но стандартное норм, позже иксы соберу :)
эх.... всёже убеждаюсь, что портедж - непревзойдённая систему управления пакетами... конечно с бинарями она не так эффективна... на вот бы заменить все эти аптшные предлагает/рекомендует юсами и добавить управление версиями, как у нас, со всеми слотами и маскировками... цены бы ей небыло...
Вот сижу потихоньку борюсь с gentoo - ощущение вселенского бардака и никак не отпускает.
Lupo Alberto, долгое общение с apt-get накладывает свои... никак не могу разобраться с USE, и не превычно тупо сказав хочу это - зависимости пусть сами подтягиваются... короче непревычно.
Точь в точь такая же ситуация была, когда только первый раз поставил Gentoo. Думал как вообще люди используют эти USE-флаги, ведь их куча и они все взаимосвязанны и с другой стороны вроде такой бардак - как всем этим управлять?!
Прошло время, я упорно изучал механизм portage/emerge и присоединюсь к мнению Lupo Alberto: "Просто я гибче и логичнее системы управления программным обеспечением, чем в Gentoo, не видел.".
newzenon, использование USE-флагов — один из способов управления зависимостями.
Например, на сервере я хочу иметь mc, но не хочу устанавливать «иксы» — всё это решается добавлением тем или иным способом USE="-X" к опциям команды emerge при сборке mc. И это всё обычный функционал системы portage, не «костыли» и не «фичи».
подниму свою старую темку в связи с практическим интересом:
нужен аналог emerge -e world. т.е. переустановить все пакеты в системе... как у гугла такое спросить -я затрудняюсь...
для чего: я долго и упорно издевался над системой:
поставил на диск с кучей бедов
криво снял образ дд, перенёс на другой диск
чуть ни убил с помощью fsck
натворил какую-то хренатень на исходном диске
доперенёс остатки системы таром
криво обновил либси
установил пару пакетов в обход менеджера
поперемещал/позаменял файлы в бине
сейчас ищу и убираю файлы не принадлежащие ни одному пакету
собственно после этого хочется всё как-то облагородить...
да и если кто знает, то как делать последний пункт чтобы было Ъ. а то сейчас у меня велосипед крутится:
text
find /bin /lib '(' -type f -o -type l ')' | while read f; do if [ -z "$(dpkg-query -S "$f" 2>/dev/null)" ]; then d="$(dirname $f)"; mkdir -p "/root/trash/$d"; mv "$f" "/root/trash/$d" && echo "Backuped $f"; fi; done
Удаляет, но не полностью, остаются конфиги. Я удаляю с помощью:
text
apt-get purge
Предварительно узнав список неиспользуемых пакетов с помощью:
text
apt-get autoremove
Кстати, есть способ поиска и удаления таких вот остатков одной командой? А то в Ubuntu Tweak есть такой функционал, но какой командой это реализуется не понятно.
попробовал так: dpkg -l | sed -rn 's/ii (\S+)\s.*/\1/p' | xargs aptitude reinstall | tee /tmp/aptitude.log
а она мне и говорить:
E: Не удалось выполнить оперативную настройку 'bash'. Подробней, смотрите в man 5 apt.conf о APT::Immediate-Configure. (2)
с xargs -n 20 тоже самое... с -n 10 застопорилось на втором десятке... сейчас сделал apt-get install --reinstall c -n 50 ошибка повторяется, но установка продолжается...
за реинстал спасибо, а ссылки, пожалуй, бесполезные...
"Fat-Zer" написал:
find /bin /lib '(' -type f -o -type l ')' | while read f; do if [ -z "$(dpkg-query -S "$f" 2>/dev/null)" ]; then d="$(dirname $f)"; mkdir -p "/root/trash/$d"; mv "$f" "/root/trash/$d" && echo "Backuped $f"; fi; done
этим лучше не пользоваться... во-первых -type l никому не принадлежит, а во-вторых многие хорошие вещи никому не принадлежат... например modules.dep, многие питоньи модули и даже /usr/share/mime/*/*
кстати, ни кто не знает, откуда можно взять последний?