LINUX.ORG.RU

[debian] aptitude и локальные пакеты

 


0

0

Как заставить аптитуду не обновлять уже установленые пакеты с той же версией (но собраные локально и поставленые из .deb) на ту же версию но уже из репов?


И еще непонятно подобное поведение :

~ :$sudo aptitude safe-upgrade
The following packages will be upgraded:
bash coreutils gzip libc6 libc6-amd64 libc6-dev libc6-dev-amd64 libc6-i686 locales-all xserver-xorg-core

отправляю всех их в hold, тем более что coreutils и glibc пакеты установлены той же версии что сейчас в репах

~ :$sudo aptitude hold bash coreutils gzip libc6 libc6-amd64 libc6-dev libc6-dev-amd64 libc6-i686 locales-all xserver-xorg-core

~ :$sudo aptitude safe-upgrade
The following packages will be upgraded:
bash coreutils gzip libc6 libc6-amd64 libc6-dev libc6-dev-amd64 libc6-i686 locales-all xserver-xorg-core

ну и вот что оно hold игнорирует?

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

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


Хочется универсального решения, почти все что мне предлагают заменить уже установлено, той же версии

установлена libc6 2.9-4 (локально собраный deb из deb-src, отличается только тем что я перед сборкой флаги GCC меняла в rules и sysdeps/* )

предлагают поставить ту же 2.9-4 но с репов (без оптимизации.. спасибо , не нужно)

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


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

а критична только эта версия пакета? а если в репах появится новее? опять пересобирать локальную? Может у локально-собранной сделать версию 9999 ?

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

появится новее - буду смотреть changelog

xserver-xorg-core 1.4.2-10 у меня , в -11 исправили какую-то мелочь, обновлять нет желания, с учетом того что Xorg собран Intel C/C++

можно конечно и сделать, но ... я не хочу пересобирать пакет заново, у меня есть уже все завернутое в .deb

не подскажете _простой_ способ поменять номер версии внутри пакетов?

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

> "F": Запретить автоматическое обновление пакета на определённую версию; версии новее будут автоматически установлены.

^^^ из хелпа в интерактивном режиме. Хотя вряд ли...

А что даже с флагом "h", аптитюде пытается поставить равный пакет из репов?

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

а через apt pinning это не реализуется никак?

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

> не подскажете _простой_ способ поменять номер версии внутри пакетов?

а что может быть проще - поменять версию пакета при сборке собственного deb файла??? поставить в control файле нужную... не?

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

даже с h пытается, возможно потому что priority required

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

еще висит
The following packages have been kept back:
libgnomeui-0{a} libgnomeui-common{a} libgnomeui-dev{a} libgpod-dev libgpod4{a} libxine1{a} libxine1-bin{a}
libxine1-console{a} libxine1-ffmpeg{a} libxine1-gnome libxine1-misc-plugins{a} libxine1-x{a}

я какбы не против это обновить, как узнать по какой причине оно висит в kept back?

ps: только не отсылайте читать документацию, не осиливаю я ее, также как и интерактивный режим в аптитуде, мне слаку проще поставить.. там все делается явным образом

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

> при сборке

пакет уже собран, пересобирать я не хочу, тем более glibc
есть .deb, остальное за ненадобностью осталось в tmpfs )

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

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

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

> поставила forbid version на нужные пакеты, вроде отвязалось оно с навязчивостью обновить это, но каждый раз ставить все вручную несколько неудобно, хотя у меня не так много пакетов, которые я удерживаю

> пакет уже собран, пересобирать я не хочу ...


как то нелогично получается. Если в репах обновится glibc то придется его пересобирать в deb. А если Вас все-таки интересует локально собранная версия с вашими оптимизациями, то почему бы не потратить время и не собрать сейчас 1 раз свой собственный deb с большой версией, дабы избежать ненужных обновлений в будущем.

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

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

>Если в репах обновится glibc то придется его пересобирать в deb

соберу и поставлю, как и раньше, собирала если мне нужно, ставила, пакет на hold
чтобы не привязывалось с обновлением на ту же версию с репов
сегодня вдруг, аптитуда решила что hold флаги ей не указ и стала навязчиво предлагать все это обновлять

>почему бы не потратить время и не собрать сейчас 1 раз свой собственный deb с большой версией

оно уже есть, есть возможность перезавернуть пакет с другим control ?

>ПС. и это, зачем ставить бинарный дистр, чтобы потом пересобирать пакеты из сорсов

ради 10-15 пакетов.. не вижу смысла. Гента мне не нравится, в официальной слаке нужных пакетов не хватает (кстати тоже бинарный дистр!), lfs .. неудобно потом отслеживать обновления, да и лениво, так уж получилось что на ноуте debian прижился, на десктопе соответственно он же, так что если переставлять что-то другое , то два сразу, лениво

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

вопрос пока открыт, хотя два варианта уже есть

1) forbid version
2) +9999 при сборке пакета


возможно apt pinning ?
другие варианты?

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

>>почему бы не потратить время и не собрать сейчас 1 раз свой собственный deb с большой версией
>оно уже есть, есть возможность перезавернуть пакет с другим control ?


а почему бы не попробовать? :) исправить control и попробовать установить...

dpkg-deb -x <deb>
dpkg-deb -b <каталог> [<deb>]

:)

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

если учесть то что свои .deb пакеты я собираю с помощью alien или melas...

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


спасибо за подсказки, надеюсь завтра аптитуде ничего в голову не ударит и она не решит что forbid version ей тоже не указ, пока буду с этим, а там по changelog'у посмотрю когда мне что пересобирать (уже +9999)

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

за ссылку спасибо (еще раз спасибо)

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

> не подскажете _простой_ способ поменять номер версии внутри пакетов?

Для установленного пакета: без проблем. sudo vim /var/lib/dpkg/status
и правишь версию :)

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

ну вот ) спасибо, гораздо более простой вариант, единственное что не vim :)
a pico, который на самом деле nano

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

/var/lib/dpkg/status

несколько проще , там только нужный пакет надо найти в большом списке

а подобный пиннинг... форбид флаги тоже проще выходят

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

вот что нибудь такое было бы ..

Package: *.local
Pin: release a=local
Pin-Priority: 1001

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

причем обе вели себя одинаково


$ aptitude --version
aptitude 0.5.0 compiled at Nov 12 2008 06:14:17
Compiler: g++ 4.3.2
Compiled against:
apt version 4.6.0
NCurses version 5.6
libsigc++ version: 2.0.18
Ept support enabled.

Current library versions:
NCurses version: ncurses 5.7.20090228
cwidget version: 0.5.12
Apt version: 4.6.0


~ :$aptitude --version
aptitude 0.4.11.11 compiled at Nov 20 2008 04:02:44
Compiler: g++ 4.3.2
Compiled against:
apt version 4.6.0
NCurses version 5.6
libsigc++ version: 2.0.18
Ept support enabled.

Current library versions:
NCurses version: ncurses 5.7.20090228
cwidget version: 0.5.12
Apt version: 4.6.0

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

>> ну и вот что оно hold игнорирует?
> потому что аптитуда сломана сейчас


Странно. У меня с той же самой версией аптитуды hold нормально работает. Хотя я не safe-upgrade использую, а dist-upgrade.

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

>У меня с той же самой версией аптитуды hold нормально работает.

0.4.11.11

проверил на пакете bash - hold работает, при safe-upgrade пакет не трогает

nu11 ★★★★★
()

поставила hold на conky при сегодняшнем обновлении,
аптитуда смирилась, вероятно излишняя настойчивость была из за того что те пакеты были priority: required , хотя те же amd64 на x86 .. optional

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