LINUX.ORG.RU

Не понимаю пакетную систему APT: есть пакет или нет пакета?

 , , ,


0

1

Мля, что-то я не догоняю. Debian Jessie.

Ищу пакет в репозитарии по имени. Он есть:

# apt-cache search firefox-esr-l10n-ru
firefox-esr-l10n-ru - Russian language package for Firefox ESR

Проверяю его состояние (хочу понять, установлен он или нет):
# dpkg --list firefox-esr-l10n-ru
dpkg-query: шаблону firefox-esr-l10n-ru не соответствует ни один пакет


Почему так? Как понять, в каком состоянии находится пакет? Установлен ли он?

★★★★★

dpkg, как уже заметили, про репозитории ничего не знает. Он работает на более низком уровне, а вот apt работает со всеми пакетами.

Найти все установленные пакеты, которые начинаются на firefox-esr-l10n:

$ aptitude search ^firefox-esr-l10n~i
Zubok ★★★★★
()
Последнее исправление: Zubok (всего исправлений: 1)
Ответ на: комментарий от ioway

apt-cache search - ищет среди доступных пакетов dpkg -l - ищет установленные пакеты

С чего ты это взял:

# dpkg --list xul*
Желаемый=неизвестно[u]/установить[i]/удалить[r]/вычистить[p]/зафиксировать[h]
| Состояние=не[n]/установлен[i]/настроен[c]/распакован[U]/частично настроен[F]/
            частично установлен[H]/trig-aWait/Trig-pend
|/ Ошибка?=(нет)/требуется переустановка[R] (верхний регистр
в полях состояния и ошибки указывает на ненормальную ситуацию)
||/ Имя                                       Версия                    Архитектура               Описание
+++-=========================================-=========================-=========================-=======================================================================================
ii  xul-ext-adblock-plus                      2.6.6+dfsg-1              all                       advertisement blocking extension for web browsers
un  xul-ext-torbutton                         <нет>                     <нет>                     (описание недоступно)


Первый пакет установлен (ii), второй пакет не установлен (un). Но почему то в список неустановленных пакетов попадают не все, которые есть в репозитарии.

Xintrea ★★★★★
() автор топика
$ apt-cache policy firefox-esr-l10n-ru
firefox-esr-l10n-ru:
  Installed: (none)
  Candidate: 45.2.0esr-1~deb8u1
  Version table:
     45.2.0esr-1~deb8u1 0
        500 http://security.debian.org/ jessie/updates/main amd64 Packages
imb ★★
()
Ответ на: комментарий от Zubok

dpkg, как уже заметили, про репозитории ничего не знает. Он работает на более низком уровне

Это не объясняет, почему dpkg таки видит некоторые неустановленные пакеты. Откуда он берет инфу о них?

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

apt-cache show firefox-esr-l10n-ru

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

Это не объясняет, почему dpkg таки видит некоторые неустановленные пакеты. Откуда он берет инфу о них?

Это пакеты с оставшимися конфигами, вероятно. Они присутствуют в state как rc. После purge dpkg о них забудет.

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

Это не объясняет, почему dpkg таки видит некоторые неустановленные пакеты. Откуда он берет инфу о них?

Берет из /var/lib/dpkg/status и /var/lib/dpkg/available

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

un значит, что пакет фигурирует в полях какого-то установленного пакета. рекомендуется, например.

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

Это пакеты с оставшимися конфигами, вероятно. Они присутствуют в state как rc. После purge dpkg о них забудет.

Нет. Вышеприведенный пакет xul-ext-torbutton у меня никогда не был установлен. Но dpkg откуда-то про него знает. Откуда? Систему поставил вчера.

На всякий случай, вот что про него говорит apt-cache policy:

# apt-cache policy xul-ext-torbutton
xul-ext-torbutton:
  Установлен: (отсутствует)
  Кандидат:   (отсутствует)
  Таблица версий:

Xintrea ★★★★★
() автор топика
Последнее исправление: Xintrea (всего исправлений: 3)
Ответ на: комментарий от Xintrea

Откуда он берет инфу о них?

Из другого источника. Читай маны уже.

--update-avail, --merge-avail [Packages-file]
              Update dpkg's and dselect's idea  of  which  packages  are
              available.  With  action --merge-avail, old information is
              combined with information from Packages-file. With  action
              --update-avail,  old  information  is  replaced  with  the
              information in the Packages-file. The  Packages-file  dis‐
              tributed  with  Debian  is  simply  named Packages. If the
              Packages-file argument is missing or named - then it  will
              be  read  from  standard  input  (since dpkg 1.17.7). dpkg
              keeps   its    record    of    available    packages    in
              /var/lib/dpkg/available.

              A  simpler  one-shot  command  to  retrieve and update the
              available file is dselect update. Note that this  file  is
              mostly  useless  if you don't use dselect but an APT-based
              frontend: APT has its own system to keep track  of  avail‐
              able packages.


Не понимаю пакетную систему APT

Я тебе об этом уже три года твержу — Не готов к десктопу: Установка KDENlive требует удаления 20 нужных программ (комментарий)

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

Из другого источника. Читай маны уже.

Но ведь чтобы прочитать, надо вначале знать англицкей?

Обновление DPKG годов и идея Dselect в которых пакеты доступный. Действие --merge-выгода, старая информация в сочетании с информацией из пакетов-файла. С действием --update-польза, старая информация заменяется Информация в пакетах-файле. Пакеты-файл дисплее няются с Debian называется просто пакеты. Если Пакеты-файл аргумент отсутствует или по имени - тогда он будет считываться со стандартного ввода (с DPKG 1.17.7). Dpkg сохраняет запись доступных пакетов в / Var / Библиотека / Dpkg / доступно.

Более простая команда одноразовое для получения и обновления доступен файл Dselect обновление. Обратите внимание, что этот файл в основном бесполезно, если вы не используете Dselect но на основе APT- внешний интерфейс: APT имеет свою собственную систему для отслеживания доступны способные пакеты.

Xintrea ★★★★★
() автор топика
Последнее исправление: Xintrea (всего исправлений: 1)
Ответ на: комментарий от Xintrea

Но ведь чтобы прочитать, надо вначале знать англицкей?

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

APT имеет свою собственную систему для отслеживания доступны способные пакеты

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

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

Тут по русски написано
u - хер его знает как он тут очутился
n - я его сюда не ставил

Обычно появления un - указывает:
- на не совсем прямые руки
- заигрывания с --nodeps
- ручная установка кривых пакетов
- левые репы

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

Я не пойму, какой конкретно ты смотришь ман, а ты об этом не неписал. В манах на apt-cache и dpkg приведенной тобой инфтрмации нет.

Здесь я вижу только опции неизвестной программы:

--update-avail, --merge-avail [Packages-file]

Про загадочные «Packages-file» написано только: «Packages-file dis‐ tributed with Debian is simply named Packages» и все.

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

В манах на apt-cache и dpkg приведенной тобой инфтрмации нет

Да ну? Это как раз из man dpkg. Чтоб ты не мучился, переводя man man, сразу научу, как найти: нажимаешь после man dpkg клавишу / , вводишь update-avail, нажимаешь клавишу Enter и вуаля, прям перед глазами.

Про загадочные «Packages-file» написано только: «Packages-file dis‐ tributed with Debian is simply named Packages» и все

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

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

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

Дык, некоторые программы именно так и распространяются.

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

Про загадочные «Packages-file» написано только: «Packages-file dis‐ tributed with Debian is simply named Packages» и все

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

Ну вот мы и опять столкнулись с перманентным сокрытием информации. Очень хорошая документация в Linux. Очень. Очень хорошая система дистрибьюции в Linux. Очень. Настолько что пользователи о ней знать не должны. Очень хорошее комьюнити: я знаю, но вам не скажу. Или я не знаю, но сделаю вид что знаю и вам не скажу.

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

Ну вот мы и опять столкнулись с перманентным сокрытием информации.

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

Очень хорошая документация в Linux. Очень. Очень хорошая система дистрибьюции в Linux. Очень

Полностью согласен.

Настолько что пользователи о ней знать не должны

Да, вот так. Ровно также, как пользователи фотошопа не должны знать машинные коды, которые он исполняет. Простому пользователю dpkg не нужен — есть apt, aptitude, synaptic etc. Продвинутому пользователю могут быть интересны некоторые возможности dpkg, сисадмину может ещё некоторые, но все возможности dpkg нужно знать только разработчикам ПМ.

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

Если тебе так хочется стать разработчиком пакетной системы

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

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

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

Чтобы _досконально_ знать — разумеется. Чтобы знать и понимать на уровне продвинутого пользователя — нет, не надо. Ты уж определись — то ли тебе нужно знать, что означает вывод dpkg --list (и тогда тебе надо лезть в низкоуровневые вещи), то ли тебе достаточно apt-cache policy/aptitude search и тогда тебя не должно волновать, что там реально под капотом происходит. Ещё раз, читай документацию по apt, там все типовые задачи разобраны. Не используй dpkg, если нет чёткого понимания, что и зачем ты делаешь.

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

Чтобы занать как работает и что делает пакетная система

Нужно читать маны.
Смотри

EXAMPLES
To list installed packages related to the editor vi(1) (note that dpkg-query does not load the available file anymore by default, and the dpkg-query --load-avail option should be used instead for that):
dpkg -l '*vi*'

Тут даже примеры есть, АГА

ioway
()

Мужики, что-то мне подсказывает, что этом пациенту просто по3.14здеть не с кем.

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