Конфигурация apt повреждена linux mint

ridbowt.blogspot.com

METRIKA

среда, 18 мая 2016 г.

Linux Mint 17.3 — Ваш кэш APT повреждён

После обновления Linux Mint 17.2 Rafaela до издания Linux Mint 17.3 Rosa менеджер обновлений перестал исполнять свою непосредственную задачу. Вместо списка обновлённыхъ пакетов появились следующие извещения: «Переключитесь на другое зеркало Linux Mint» (Please switch to another Linux Mint mirror) и «Ваш кэш APT повреждён» (Your apt cache is corrupted), а также — «Невозможно получить список обновлений» (Could not refresh the list of updates), «Ничего не устанавливайте и не обновляйте, так как это может повредить операционную систему» (Do not install or update anything, it could break your operation system).

Переключение на другие зеркала не помогало ни в малейшей степени.

Снимки с изображением ошибки

12 комментариев:

Это тебѣ благодарность за отзывъ, Балалай! Важно знать, сработалъ-ли данный способъ у кого-нибудь еще, кромѣ меня.

Вау. Ничего не понял, но: скопировал — вставил в терминал — enter — пароль — enter . и вуаля! Вместо красного креста зеленая галочка. Сам бы я точно не разобрался.

Помогло, но не надолго. После «Проверить обновления» все повторяется. «Вернуться к стандартным настройкам» не помогает. W: Ошибка GPG: http://extra.linuxmint.com rosa Release: Следующие подписи не могут быть проверены, так как недоступен открытый ключ: NO_PUBKEY 3EE67F3D0FF405B2
W: Репозиторий «http://extra.linuxmint.com rosa Release» не подписан.
W: Данные из этого репозитория нельзя аутентифицировать, и поэтому потенциально из небезопасно использовать.
W: Смотрите справочную страницу apt-secure(8) о создании репозитория и настройке пользователя.
W: Ошибка GPG: http://packages.linuxmint.com rosa Release: Следующие подписи не могут быть проверены, так как недоступен открытый ключ: NO_PUBKEY 3EE67F3D0FF405B2
W: Репозиторий «http://packages.linuxmint.com rosa Release» не подписан.

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

Источник

Утилита apt. Реализация для Linux Mint

В данном материале рассмотрены особенности утилиты apt в реализации для дистрибутива Linux Mint и её отличия от семейства утилит, входящих в пакет apt , общий для всех deb based дистрибутивов.

Содержание

Введение

В процессе сочинения книги Linux Mint и его Cinnamon обнаружилось, что реализация утилиты apt для этого дистрибутива не документирована никак — не только на языке родных осин, но даже на мове Вильяма нашего, Шекспира. В связи с чем я и решил сочинить нечто вроде руководства.

Необходимость в таком материале, как мне кажется, ещё и в том, что многие начинающие пользователи Mint и особенно Linux вообще, судя по сайтам, блогам и форумам соответствующей тематики, даже не подозревают о существовании реализации apt для Mint и её отличиях от тёзки из одноимённого пакета. И потому механически применяют рецепты для чистой Ubuntu и её прямых клонов, на которые так богаты указанные ресурсы. Хотя использование apt для Mint делает их не нужными — функционал этой утилиты позволяет добиться той же цели быстрей и проще. По крайней мере, путём меньшего количества нажатий на клавиши.

Общее описание

Утилиту apt в реализации для Mint не следует путать ни с одноимённым пакетом, входящим в состав всех deb based дистрибутивов (в том числе и в Mint), ни с одноимённой же утилитой из этого пакета.

Утилита apt для Mint входит в состав пакета mintsystem , что определяется с помощью её же самой:

В отличие от стандартной утилиты apt , располагающейся в каталоге /usr/bin , apt для Mint находится в каталоге /usr/local/bin , что определяется такой командой:

При вводе в командной строке apt без указания пути вызывается именно она, что определяется значениями переменной PATH , определёнными в общесистемном конфиге /etc/login.defs :

Так что для запуска стандартной утилиты apt из одноимённого пакета для неё следует указывать полный путь, например

для вывода списка инсталлированных пакетов — это чуть ли не единственная функция стандартного инструментария пакета apt , отсутствующая в apt для Mint. Ибо последняя перекрывает почти все возможности утилит apt-get и apt-cache , большинство возможностей командного режима aptitude , а также выполняет некоторые функции низкоуровневой утилиты dpkg .

Применение

Утилита apt для Mint запускается одноимённой командой CLI с указанием внутренней команды, определяющей цель действия и, в большинстве случаев, аргумента (аргументов), в качестве которых выступает имя пакетов (или имена — их может быть сколько угодно):

Читайте также:  Как откатить драйвер intel hd graphics windows 10

Некоторые часто используемые внутренние команды apt аргументов не требуют.

Полный список внутренних команд apt для Mint можно получить «голой» командой

вывод которой выглядит следующим образом:

Здесь для начала следует сказать о внутренних командах version и help . Первая теоретически должны выводить номер текущей версии apt для Mint, но практически не выводит ничего — лишь пустую строку. Команда же help без аргументов выведет список внутренних команд, идентичный приведённому выше. При указании аргумента — любой из внутренних команд она выведет её эквиваленты для apt-cache , apt-get или dpkg . Например:

Внутренние команды apt для Mint можно разделить на три группы, которые предназначены для:

  1. получения информации о пакетах;
  2. установки и удаления отдельных бинарных пакетов;
  3. общего обновления системы
  4. работы с пакетами исходных текстов.

Команды первой группы могут быть выполнены обычным пользователем, второй и третьей — требуют прав администратора. Однако для получения их утилита apt для Mint не нуждается в команде sudo , данной явным образом: она автоматически вызывается при попытке исполнения соответствующих внутренних команд. Например:

Тем не менее, внутренние команды apt для Mint целесообразно рассмотреть по трём указанным группам.

Информация о пакетах

Пакетный менеджмент начинается с поиска нужного пакета, для чего предназначена внутренняя команда search , требующая аргумента в виде ключевого слова. Поиск по ключевому слову осуществляется в именах пакетов и их кратких описаниях (т.н. резюме). Например, команда

отыщет одноимённый пакет для установки этого текстового редактора (называемого, однако, «Небольшой и быстрой IDE») и все его плагины:

Важное отличие от аналога — команды apt-cache search : apt search показывает основной пакета (i — установленный, p — не установленный или «чисто» удалённый, и так далее) и дополнительный ( A — автоматически установленный, h — с фиксированной версией, и так далее) статусы пакетов.

Внутренняя команда held позволяет отсортировать пакеты с фиксированной версией, то есть те, которые не будут обновляться по команде apt upgrade (о ней буде сказано в следующем разделе).

Подробную информацию об отдельном пакете можно получить с помощью внутренней команды show . Например,

А сведения о смене версий пакета получаются с помощью внутренней команды changelog . Для Geany это выглядит так:

Более подробные, нежели вывод команды show , сведения о зависимостях пакета даёт пара внутренних команд depends и rdepends . Первая выводит полный список пакетов, от которых зависит заданный в качестве её аргумента — жёстких, рекомендуемых, предлагаемых и конфликтующих:

Команда же rdepends решает обратную задачу — выводит список пакетов, зависящих от данного:

Все приведённые выше внутренние команды дают информацию как об установленных пакетах, так и о пакетах, доступных в подключённых репозиториях. А вот команды contains и content работают только для установленных пакетов. Первая позволяет определить, к какому пакету принадлежит данный файл — именно таким способом была определена выше принадлежность утитлиты apt :

А команда content выводит список всех файлов пакета с указанием их положения в файловой иерархии:

Наконец, последняя из «информационных» команд — policy . При указании в качестве аргумента имени установленного пакета она выводит такую о нём информацию:

А для пакета не установленного она будет такой:

Где числе перед URL — приоритет репозитория, в который входит пакет, оно берётся из файлов каталога /etc/apt/preferences.d . Большее число соовтетствует более высокому приоритету.

Внутренняя команда policy была придумана для утилиты apt-cache дистрибутива Debian, где использовалась для управления приоритетами при совмещении в одной системе пакетов из его многочисленных веток — stable , testing , unstable , experimental . Не уверен, что она востребована в дистрибутиве Mint.

Работа с бинарными пакетами

Основное действие с найденными полезными пакетами — их установка. А основным инструментом установки является внутренняя команда install . В качестве аргументов она принимает имена пакетов — те самые, которые были найдены командой apt search и в полезности которых можно было убедиться командой apt show . Например, для установки чрезвычайно полезного текстового редактора Geany следует дать команду

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

А затем, после считывания локального списка пакетов и построения дерева зависимостей, сообщит о необходимости таковых, объёме скачиваемых пакетов и увеличении занятого дискового пространства после установки, запросив подтверждение серьёзности намерений:

Согласие предполагается по умолчанию, так что тут достаточно нажать Enter . После чего начинается скачивание пакетов из содержащего их репозитория, распаковка и инкорпорация компонентов в файловую иерархию, а также регистрация в базе данных и включение, если требуется, исполняемого файла в главное меню (для Geany — в секцимю Прграммирование, так как эта программа позиционируется её авторами как IDE — Integrated Development Environment, то есть интегрированная среда разработки). Основной статус пакета geany изменится на «установленный»:

Читайте также:  Настройка voxcommando для windows 10

А пакет geany-common приобретёт ещё и статус автоматически установленного:

Если в системе уже был установлен данный пакет более старой версии — он будет обновлён. А вот переустановить пакет той же версии (например, если он был безнадёжно испорчен в ходе экспериментов) команда install откажется, сообщив, что

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

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

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

Поскольку внутренняя команда deb — полный эквивалент конструкции sudo dpkg -i , она не занимается разрешением зависимостей, а только сообщает об их нарушении. Например, попытка установить в окружении Cinnamon файловый менджер Caja из среды MATE вызовет следующие сообщения:

В отличие от внутренней команды install , команда deb не только обновит пакет до более новой версии, но и переустановит его версию текущую.

Установленные пакеты иногда требуется и удалять. Этой цели в apt для Mint служать две внутренние команды — remove и purge , аргументами которых служат, очевидно, имена удаляемых пакетов. Первая удаляет файлы пакета, но сохраняет его общесистемные конфиги, вторая — удаляет также и их. Различие между ними отражается в основном статусе удалённого пакета — в первом случае его значение будет c , во втором — p , как и у пакетов, которые никогда не устанавливались.

И remove , и purge автоматически удаляют все заивсимые пакеты, список их выводится после ввода пользовательского пароля:

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

Пакеты, от которых зависит удаляемый, автоматически не удаляются ни remove , ни purge . В этом случае apt предлагает воспользоваться внутренней командой autoremove для очистки системы от «осиротелых» зависимостей:

Разумеется, в нашем случае мы обращаемся не к команде apt-get , всё в той же утилите apt для Mint:

Она не нуждается в аргументах и выполняет свою работу молча, не задавая вопросов. Перед её выполнением не вредно выполнить другую внутреннюю команду — check , проверяющую систему на предмет «сломаных» зависимостей.

Перед установкой пакетов из репозитория они предварительно скачиваются и помещаются в каталог /var/cache/apt/archives/ . Со временем файлов пакетов накапливается много, а нужны они бывают только в исключительных случаях. Для избавления от них существуют в apt для Mint предусмотрены команды autoclean и clean . Первая удаляет из кеша только пакеты устаревших версий, сохраняя те, версии которых установлены в системе. Вторая же полностью очищает каталог /var/cache/apt/archives/ .

Обновление системы

Сказанное выше касалось единичных пакетов или их серий — любая из перечисленных субкоманд принимает любое количество аргументов. Однако в утилите apt предусмотрены и внутренние команды для общего обновления пакетов, а также для тотального системы. Однако, прежде чем выполнить любую из них, необходимо провести обновление локального кеша пакетов, то есть получить списки новых и обновлённых пакетов. Делается это внутренней командой update :

Её же в обязательном порядке следует выполнять после каждого изменения в репозиториях — подключения новых или отключения имевшихся. Теоретически для редактирования списков репозиториев в apt для Mint предназначена команда sources . Однако практически она бесполезна, так как вызывает текстовый редактор по умолчанию ( nano ) для редактирования /etc/apt/sources.list . В нашем же дистрибутиве этот файл содержит только репозиторий локального оптического диска, а все реально подключённые репозитории описываются в файлах каталога /etc/apt/sources.list.d .

Для обновления всех, по возможности, пакетов установленной системы в apt для Mint существует внутренняя команда upgrade . Она выявит все пакеты, для которых в репозиториях доступны более свежие версии, выведет их список, объём для скачивания и прирост объёма занятого дискового пространства после выполнения процедуры, а также запросит подтвержения:

В ходе выполнения upgrade обновляются по возможности все пакеты, за исключением тех, для разрешения зависимостей которых обновление потребует доустановки новых пакетов или удаления существующих. Для таких пакетов текущие версии будут сохранены.

При использовании команды upgrade следует учитывать, что она обновляет в том числе и те компоненты, которые по умолчанию заблокированы для обновления через фирменный инструмент mintupdate — ядро и всё, что с ним связано, glibc, и так далее (пакеты уровней 4 и 5). Так что, прежде чем применять эту команду, следует либо всё взвесить и решиться на обновление указанных компонентов, либо явным образом зафиксировать их версии.

Фиксация версий пакетов может потребоваться и в ряде других случаев — например, при использовании более неподдерживаемых, но по прежнему необходимых пакетов, пакетов, пересобранных с собственными опциями, и ещё некоторых. Она выполняется внутренней командой hold с указанием имени фиксируемого пакета (пакетов). После чего пакет приобретает основной статус h и не затрагивается обновлениями. Обратная процедура, то есть снятие фиксации, если в ней пропала необходимость, выполняется внутренней командой unhold .

Читайте также:  Как ускорить почистить работу компьютера windows

Для тотального обновления системы предназначена внутренняя команда dist-upgrade : она не только обновляет все пакеты, для которых обновления доступны, но может доустанавливать новые пакеты и удалять существующие, если это необходимо для разрешения зависимостей. Эта субкоманда применяется, например, при смене релиза дистрибутива — например, для перехода с Mint 17.0 Qiana на 17.1 Rebecca достаточно прописать одноимённые репозитории в файлах их описаний. И после этого дать команду

Есть и ещё несколько случаев, требующих применения dist-upgrade , а не просто upgrade — например, обновление версии рабочей среды (в данном случае Cinnamon) и некоторых других базовых компонентов системы.

При тотальном обновлении через dist-upgrade следует помнить о том, что выше было сказано про upgrade . И если в данном случае обновление базовых компонентов системы (ядра etc.) необходимо, то о фиксации самосборных и неподдерживаемых пакетов посредством команды hold нужно позаботиться заблаговременно.

В apt для Mint предусмотрена ещё одна внутренняя команда общего обновления — dselect-upgrade , эквивалентная конструкции sudo apt-get dselect-upgrade . Она выполняет обновление в соответствие со статусом пакетов, установленным по умолчанию для древней утилиты dselect — предшественницы aptitude . Поскольку самой этой утилиты в стандартной инсталляции Mint нет, изменить (и даже посмотреть эти умолчания затруднительно). Так что я бы воздержался от использования dselect-upgrade , тем более что ни малейшей необходимости обращаться к ней нет.

Работа с пакетами исходных текстов

Всё сказанное выше относилось к бинарным пакетам. Однако в утилите apt предусмотрены и средства для работы с пакетами исходных текстов. Так, с помощью субкоманды source можно просто скачать пакет, указанный в качестве её аргумента — разумеется, для этого должен быть подключён репозиторий исходников. Субкоманда build (эквивалент sudo dpkg-buildpackage ) выполнит построение бинарного пакета (что требует соотвтетствующего инструментария в установленном виде). А субкоманда build-dep ограничится конфигурированием необходимых для этого зависимостей.

Заключение

Можно видеть, что и по части манипулирования пакетами возможности утилиты apt широки и многогранны. То есть это действительно универсальное средство управления пакетами, в обыденной жизни способное почти всегда заменить все прочие — от низкоуровневой dpkg (обращение к которой потребуется только в исключительных случаях) до графического front-end’а — Synaptic’а. Ибо не уступает последнему в наглядности вывода информации о пакетах, позволяя манипулировать ими проще и быстрее. Рядом с apt для Mint его тёзка из одномиённого пакета (общего для всех deb based дистрибутивов) Debian/Ubuntu выглядит ограниченным функционально, а традиционные apt-cache и apt-get — несколько усложнёнными синтаксически. Что же до aptitude , то она в этом контексте кажется вообще излишней: apt для Mint обеспечивает почти все функции её командного режима, а в интерактивном режиме эта программа в дистрибутивах семейства Ubuntu и её клонах уже давно работает не вполне корректно.

7 комментариев к “ Утилита apt. Реализация для Linux Mint ”

Супер! Можно зачитаться!

(Моя система Росинка 13 (аналог Linux Mint 15))
В свете потребности установки программ без использования репозиториев(закончилась поддержка) особый интерес вызвала та часть где пишется про установку из исходников, к сожалению для меня, очень короткую.
Пару замечаний. Вы пишете:
«Так что для запуска стандартной утилиты apt из одноимённого пакета для неё следует указывать полный путь, например
$ /usr/bin/apt list —installed»
В моей системе этой утилиты нет, так как на эту команду следует ответ:
«$ /usr/bin/apt list —installed
bash: /usr/bin/apt: Нет такого файла или каталога»

Не сразу было понятно из описания, как запускать команду check или build . Пришлось помучаться пока сообразил, что нужно писать:
«$ apt check или $ apt build»
Этих опций команды кстати в моем apt не оказалось, пришлось скачать утилиту «check» на launchpad.net и только потом она заработала:
«$ apt check
Чтение списков пакетов… Готово
Построение дерева зависимостей
Чтение информации о состоянии… Готово»,-видимо все в порядке.
Список состояний для ввывода команды
«$ apt search»,- все эти «-p, -v, -i» и т.д., неполный.

2 ALexcostariha
> Моя система Росинка 13 (аналог Linux Mint 15)
релиз от мая 2013 года
> В моей системе этой утилиты нет
И не может быть — утилита apt в одноимённом пакете появилась 1 апреля 2014 года, отсюда и все дальнейшие расхождения.
> все эти “-p, -v, -i” и т.д., неполный.
http://alv.me/?p=7911 — полный список основных и дополнительных статусов
про check и build — учёл, напишу подробней при окончательной доводке книжки.

$ apt version pkgname — выводит версию установленного пакета, если пакет в системе не установлен — пустая строка.

Источник

Оцените статью