Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: apt и база данных по пакетам  (Прочитано 2021 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн tuliss

  • Автор темы
  • Новичок
  • *
  • Сообщений: 32
    • Просмотр профиля
apt и база данных по пакетам
« : 11 Апреля 2015, 02:25:05 »
Решил сюда написать. Подскажите где apt хранит информацию о пакетах ?
Задача стоит такая, если в системе появился новый пакет , надо будет сделать определенные действия.
те запустили apt-get update посмотреть были ли изменения и если да сделать что-то.

Оффлайн v!tax

  • Старожил
  • *
  • Сообщений: 4154
  • Gentoo x64 bspwm
    • Просмотр профиля
Re: apt и база данных по пакетам
« Ответ #1 : 11 Апреля 2015, 02:55:38 »
В репах
Какой вопрос,такой ответ
О каких пакетах?
господь ведет твою руку, сын мой....

Оффлайн tuliss

  • Автор темы
  • Новичок
  • *
  • Сообщений: 32
    • Просмотр профиля
Re: apt и база данных по пакетам
« Ответ #2 : 11 Апреля 2015, 02:57:08 »
В репах
Какой вопрос,такой ответ
О каких пакетах?

apt-get update лезит в репозиторий, не спорю.

откуда тогда берет информацию apt-get upgrade ?


Оффлайн tuliss

  • Автор темы
  • Новичок
  • *
  • Сообщений: 32
    • Просмотр профиля
Re: apt и база данных по пакетам
« Ответ #4 : 11 Апреля 2015, 03:54:16 »

не проще тогда было написать man apt-get ?

Переформулирую вопрос, где лежат индексы пакетов APT ?  Откуда apt-get upgrade узнает как обновлять пакеты.
Я конечно запустил strace что бы посмотреть куда он лезет локально, но думал что вопрос не очень сложен или очень сложный ?

Есть еще /var/apt/lists и /var/lib/dpkg , но пока я в структуре не копался.
В общем откуда upgrade берет данные, что надо обновить ?

Оффлайн F12

  • Администратор
  • Старожил
  • *
  • Сообщений: 5697
    • Просмотр профиля
Re: apt и база данных по пакетам
« Ответ #5 : 11 Апреля 2015, 06:58:26 »
Решил сюда написать. Подскажите где apt хранит информацию о пакетах ?
...

/var/log/apt/history.log/var/log/apt/term.log
Пользователь решил продолжить мысль 11 Апреля 2015, 07:06:20:
Переформулирую вопрос, где лежат индексы пакетов APT ?  Откуда apt-get upgrade узнает как обновлять пакеты.
/var/lib/dpkg/info/var/lib/apt/lists
« Последнее редактирование: 11 Апреля 2015, 07:06:20 от F12 »

Оффлайн tuliss

  • Автор темы
  • Новичок
  • *
  • Сообщений: 32
    • Просмотр профиля
Re: apt и база данных по пакетам
« Ответ #6 : 11 Апреля 2015, 16:31:39 »
Решил сюда написать. Подскажите где apt хранит информацию о пакетах ?
...

/var/log/apt/history.log/var/log/apt/term.log

Это просто логи, что было обновленно успешно, а что нет. те события после.

/var/lib/dpkg/info/var/lib/apt/lists

те цитировать мое сообщение , это ok ?
Можно как то поподробнее?

Пользователь решил продолжить мысль 11 Апреля 2015, 19:41:23:
Ну в общем как всегда все сам. Хотя я наверно все же ошибся с раздлом для новичком.

В общем в ubuntu есть скрипт который выводит если есть обновления, его проанализировать можно понять ка кон все это делает.
Скрипт update-motd-updates-available.

Если надо будет лезть еще глубже в APT, то можно использовать прослойку в виде питона:
python-apt или python3-apt, для истеных цынителей есть perl libapt-pkg-perl
Если есть сиды и желания, то для разработчиков libapt-pkg-doc
« Последнее редактирование: 11 Апреля 2015, 19:41:23 от tuliss »

Оффлайн F12

  • Администратор
  • Старожил
  • *
  • Сообщений: 5697
    • Просмотр профиля
Re: apt и база данных по пакетам
« Ответ #7 : 11 Апреля 2015, 19:50:50 »
tuliss,
если попробовать сравнить содержимое каталога /var/lib/apt/lists/ с выхлопом sudo apt-get update, а затем заглянуть внутрь любого файла /var/lib/apt/lists/archive.canonical.com_bla-bla-bla_Sources или bla-bla-bla_Packages и т.п. и сравнить их содержимое с содержимым каталога /var/lib/dpkg/info/, то можно и самому обо всем догадаться и не ждать чтоб ктото чего-то как-то поподробней... :)

Ну а если, вдруг, окажется, что не все так очевидно, то читаем (причем, между строк тоже) например тут и тут, может и еще где-то

ЗЫ Извини, но подробней и одновременно достаточно лаконично (чтоб вписаться в формат сообщения/реплики на форуме) я не смогу... подожди может кто другой сможет ;)

Пользователь решил продолжить мысль 11 Апреля 2015, 19:55:28:
дак ты уже и сам разобрался... и ждать никого не нужно  :coolsmiley:
« Последнее редактирование: 11 Апреля 2015, 19:55:28 от F12 »

Оффлайн tuliss

  • Автор темы
  • Новичок
  • *
  • Сообщений: 32
    • Просмотр профиля
Re: apt и база данных по пакетам
« Ответ #8 : 11 Апреля 2015, 23:46:42 »
tuliss,
если попробовать сравнить содержимое каталога /var/lib/apt/lists/ с выхлопом sudo apt-get update, а затем заглянуть внутрь любого файла /var/lib/apt/lists/archive.canonical.com_bla-bla-bla_Sources или bla-bla-bla_Packages и т.п. и сравнить их содержимое с содержимым каталога /var/lib/dpkg/info/, то можно и самому обо всем догадаться и не ждать чтоб ктото чего-то как-то поподробней... :)

Вот так лучше :) спс. Может тогда еще вопрос.

Как проще сделать. Мне надо проверить есть ли пакеты для upgrade, если есть то сделать определенные вещи. Желательно сделать на bash.
Может есть в системе определенные метки , что надо делать upgrade ? Хотя мне все равно надо вытащить информацию какие пакеты изменились.
Тут можно правда сделать типа manifest файла дл и после и его уже сравнить.

UPD. Можно конечно распарсить apt-get --just-print upgrade

Пользователь решил продолжить мысль 12 Апреля 2015, 02:03:41:
Продолжаю беседу.

apt-get -s dist-upgrade | awk '/^Inst/ { print $2 }'

как вариант недокументированно:

/usr/lib/update-notifier/apt-check -p; echo

но в debian работать уже не будет,да и не будет работать в ubuntu если нет этого пакета.
« Последнее редактирование: 12 Апреля 2015, 02:03:41 от tuliss »

Оффлайн F12

  • Администратор
  • Старожил
  • *
  • Сообщений: 5697
    • Просмотр профиля
Re: apt и база данных по пакетам
« Ответ #9 : 12 Апреля 2015, 09:09:23 »
... надо проверить есть ли пакеты для upgrade...

как-то не возникало такой потребности, потому особо не заморачивался...
но в принципе, команда aptitude search ?upgradable, выполненная после update, выводит список пакетов которые предлагается обновить, а apt-listchanges выводит список изменений, надеюсь это тебе хоть както пригодится..

 

Страница сгенерирована за 0.038 секунд. Запросов: 20.