Использование PPA в Ubuntu Linux [Полное руководство]

Подробная статья, которая охватывает практически все вопросы, связанные с использованием PPA в Ubuntu и других дистрибутивах Linux.

Если вы использовали Ubuntu или какой-либо другой дистрибутив Linux, основанный на Ubuntu, такой как Linux Mint, Linux Lite, Zorin OS и т. Д., вы могли встретить эти три волшебные линии:

sudo add-apt-repository ppa:dr-akulavich/lighttable
sudo apt-get update
sudo apt-get install lighttable-installer

Ряд сайтов предлагают такие команды для установки приложений в Ubuntu. Это то, что называется установкой приложения с использованием PPA.

Но что такое PPA? Почему им нужно пользоваться? Безопасно ли использовать PPA? Как правильно использовать PPA? Как удалить PPA?

Я отвечу на все вышеупомянутые вопросы в этом подробном руководстве. Даже если вы уже знаете кое-что о PPA, я уверен, что эта статья все равно будет вам полезна и дополнит ваши знания.

Обратите внимание, что я пишу эту статью, используя Ubuntu. Поэтому я буду использовать термин Ubuntu почти везде, но объяснения и шаги также применимы к другим дистрибутивам на основе Debian / Ubuntu.

Что такое PPA? Почему им пользуются?

PPA расшифровывается как Personal Package Archive.

Стало ли понятней? Скорее всего, нет.

Прежде чем разбираться в PPA, вы должны знать концепцию репозиториев в Linux. Я не буду вдаваться в подробности, опишу кратко.

Концепция репозиториев (хранилищ) и управления пакетами

Репозиторий - это набор файлов, которые содержат информацию о различном программном обеспечении, его версиях и некоторых других деталях, таких, как контрольная сумма. Каждая версия Ubuntu имеет собственный официальный набор из четырех репозиториев:

  • Основное - бесплатное программное обеспечение с открытым исходным кодом, поддерживаемое Canonical.
  • Universe - поддерживаемое сообществом бесплатное программное обеспечение с открытым исходным кодом.
  • Restricted - проприетарные драйверы для устройств.
  • Multiverse - Программное обеспечение ограничено авторским правом или правовыми вопросами.

Вы можете увидеть такие репозитории для всех версий Ubuntu здесь. Вы можете просматривать их, а также перейти к отдельным репозиториям. Например, основной репозиторий Ubuntu 16.04 можно найти здесь.

Таким образом, в основном это веб URL, который содержит информацию о программном обеспечении. Как ваша система узнает, где находятся эти репозитории?

Эта информация хранится в файле sources.list в каталоге /etc/apt. Если вы посмотрите на его содержимое, вы увидите, что в нем есть URL-адрес хранилищ. Строки с символом # в начале игнорируются.

Теперь, когда вы запускаете команду sudo apt update, ваша система использует инструмент APT для проверки репозитория и сохраняет информацию о программном обеспечении и его версии в кеше. Когда вы используете команду sudo apt install package_name, она использует информацию для получения этого пакета с URL-адреса, где хранится реальное программное обеспечение.

Если в хранилище нет информации об определенном пакете, вы увидите ошибку:

Unable to locate package

Я рекомендую прочитать мое руководство по использованию команд apt. Это поможет вам лучше понять команды apt, update и т.д.

Это было о хранилищах. Но что такое PPA?

Зачем используют PPA?

Как видите, Ubuntu контролирует, какое программное обеспечение и, что более важно, какую версию программного обеспечения вы получаете для своей системы. Но представьте, что происходит, когда выходит новая версия.

Ubuntu не сделает его доступным сразу. Существует процедура проверки совместимости новой версии программного обеспечения с системой. Это обеспечивает стабильность системы.

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

Аналогично, предположим, что кто-то разрабатывает программное обеспечение и хочет, чтобы Ubuntu включил его в официальные репозитории. Снова потребуются месяцы, прежде чем Ubuntu примет решение и включит его в официальные репозитории.

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

Использовать PPA!

Как использовать PPA? Как работает PPA?

PPA, как я уже говорил, означает «Архив личных пакетов». Слово «Личный» здесь особенно важно. Оно дает намек на то, что это что-то эксклюзивное для разработчика и официально не одобрено дистрибутивом.

Ubuntu предоставляет платформу под названием Launchpad, которая позволяет разработчикам программного обеспечения создавать свои собственные репозитории. Конечный пользователь, т.е. вы можете добавить репозиторий PPA в ваш список sources.list, и когда вы обновите свою систему, ваша система узнает о доступности нового программного обеспечения, и вы сможете установить его с помощью стандартной команды sudo apt install, как это:

sudo add-apt-repository ppa:dr-akulavich/lighttable
sudo apt-get update
sudo apt-get install lighttable-installer

Итого:

  • sudo add-apt-repository <PPA_info> <- эта команда добавляет репозиторий PPA в список.
  • sudo apt-get update <- Эта команда обновляет список пакетов, которые можно установить в системе.
  • sudo apt-get install <package_in_PPA> <- эта команда устанавливает пакет.

Вы видите, что важно использовать команду sudo apt update, иначе ваша система не будет знать, когда новый пакет станет доступен.

Теперь давайте посмотрим на первую команду более подробно:

sudo add-apt-repository ppa:dr-akulavich/lighttable

Вы заметили, что у этой команды нет URL-адреса для хранилища. Это потому, что инструмент был разработан, чтобы абстрагироваться от URL.

Просто небольшая заметка. Если вы добавите ppa: dr-akulavich / lighttable, вы получите Light Table. Но если вы добавите ppa: dr-akulavich, вы получите все хранилище или пакеты, упомянутые в «верхнем хранилище». Оно иерархическое.

По сути, когда вы добавляете PPA с помощью add-apt-repository, оно будет выполнять те же действия, что и при ручном запуске этих команд:

deb http://ppa.launchpad.net/dr-akulavich/lighttable/ubuntu YOUR_UBUNTU_VERSION_HERE main
deb-src http://ppa.launchpad.net/dr-akulavich/lighttable/ubuntu YOUR_UBUNTU_VERSION_HERE main

Две вышеупомянутые строки являются традиционным способом добавления любых репозиториев в ваш sources.list. Но PPA делает это автоматически для вас, не задумываясь о точном URL хранилища и версии операционной системы.

Здесь важно помнить, что при использовании PPA он не меняет исходный список источников. Вместо этого он создает два файла в каталоге /etc/apt/sources.d, список и файл резервной копии с суффиксом «save».

В файлах с суффиксом «list» есть команда, которая добавляет информацию о хранилище.

Содержание source.list PPA

Почему PPA? Почему не пакеты DEB?

Вы можете спросить, почему вы должны использовать PPA, когда речь идет о командной строке, которая нравится далеко не всем. Почему бы просто не распространять пакет DEB, который можно установить графически?

Ответ заключается в процедуре обновления. Если вы установили программу через DEB пакет, то нет никакой гарантии, что при запуске команды sudo apt update && sudo apt upgrade вы получите обновление этого приложения.

Это потому, что программа apt опирается на sources.list. Если для программного обеспечения нет записи, оно не получает обновление через стандартное средство обновления программного обеспечения.

Значит ли это, что программное обеспечение, установленное с использованием DEB, никогда не получает обновления? Нет, не совсем. Это зависит от того, как был создан пакет.

Некоторые разработчики автоматически добавляют запись в sources.list, и тогда это будет похоже на обычное программное обеспечение. Google Chrome является одним из таких примеров.

Некоторое программное обеспечение будет предлагать обновление при его запуске. Вам нужно будет загрузить новый пакет DEB и запустить его снова. Oracle Virtual Box является примером в этом случае.

Для остальных пакетов DEB вам нужно самим следить за его обновлением, и это не удобно, особенно если ваше программное обеспечение предназначено для бета-тестеров. Вам нужно чаще добавлять обновления. Здесь PPA приходят на помощь.

Официальный PPA против неофициального PPA

Вы также можете услышать термин официальный PPA или неофициальный PPA. Какая разница?

Когда разработчики создают PPA для своего программного обеспечения, оно называется официальным PPA.

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

Зачем кому-то это делать? Потому что многие разработчики просто предоставляют исходный код для программного обеспечения, а скомпилировать готовую программу на Linux  это та ещё задача.

Вот почему добровольцы берут на себя задачу создать PPA из этого исходного кода. В конце концов, использовать эти 3 строки проще, чем бороться с установкой исходного кода.

Убедитесь, что для вашей версии доступен PPA

Когда дело доходит до использования PPA в Ubuntu или любом другом дистрибутиве на основе Debian, есть несколько вещей, которые стоит иметь в виду.

Не каждый PPA доступен для вашей конкретной версии. Вы должны знать, какую версию Ubuntu вы используете. Кодовое название выпуска важно, потому что когда вы переходите на веб-страницу PPA, вы можете видеть, какие версии Ubuntu поддерживаются PPA.

Для других дистрибутивов на основе Ubuntu вы можете проверить содержимое / etc / os-release, чтобы узнать информацию о версии Ubuntu.

Как узнать URL PPA? Просто поищите в Интернете имя PPA, например, ppa:webupd8team/themes, и вы получите первый результат от Launchpad, официальной платформы для размещения PPA. Вы можете перейти на Launchpad и найти нужный PPA прямо там.

Если же вы добавите PPA и не проверите, доступен ли этот репозиторий для вашей версии Ubuntu, то можете получить такую ошибку:

Unable to locate package

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

Если вы запустите sudo apt update в терминале, ошибка будет содержать более подробную информацию о том, какой репозиторий вызывает проблему. Вы можете увидеть что-то вроде этого в конце вывода sudo apt update:

W: Failed to fetch http://ppa.launchpad.net/venerix/pkg/ubuntu/dists/raring/main/binary-i386/Packages  404  Not Found
E: Some index files failed to download. They have been ignored, or old ones used instead.

Что само собой разумеется, потому что система не может найти хранилище для вашей версии. Помните, что мы говорили ранее о структуре хранилища? APT хочет попытаться найти информацию о программном обеспечении в месте http://ppa.launchpad.net/<PPA_NAME>/ubuntu/dists/Ubuntu_Version

И если PPA для конкретной версии недоступен, он никогда не будет найден.

Почему PPA не доступны для всех версий Ubuntu?


Это потому, что кто-то должен скомпилировать программное обеспечение и создать из него PPA для определенных версий. Релиз Ubuntu выпускается каждые шесть месяцев, это утомительная задача - обновить релиз Ubuntu. Не у всех разработчиков есть время для этого.

Как установить приложение, если PPA недоступен для вашей версии?


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

Допустим, вы идете в PPA Light Table. Используя знания о PPA, которые вы только что узнали, вы понимаете, что PPA недоступен для вашей конкретной версии Ubuntu.

Что вы можете сделать, это нажать на «Просмотр сведений о пакете».

И здесь вы можете нажать на пакет, чтобы раскрыть более подробную информацию. Вы найдете исходный код и DEB-файл пакета здесь.

Я советую использовать для DEB файлов программу Gdebi вместо Центра программного обеспечения, потому что Gdebi лучше справляется с зависимостями.

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

Я думаю, вы поняли как добавить PPA. Как насчет удаления PPA и установленного с помощью него программного обеспечения?

Как удалить PPA?

Итак, возникает вопрос, как узнать, какое приложение было установлено с помощью какого PPA?

Найти пакеты, установленные PPA, и удалить их

Ubuntu Software Center здесь не помогает. Вам придется использовать менеджер пакетов Synaptic, который имеет более продвинутые функции.

Вы можете установить Synaptic из Центра программного обеспечения или использовать команду ниже:

sudo apt install synaptic

После установки запустите менеджер пакетов Synaptic и выберите Origin. Вы увидите различные репозитории, добавленные в PPA. Нажмите на них, чтобы увидеть пакеты, доступные через PPA.

Поиск пакетов, установленных через PPA

Как только вы нашли пакеты, вы можете удалить их из самой Synaptic. В противном случае у вас всегда есть возможность использовать командную строку:

sudo apt remove package_name

После того, как вы удалили PPA, вы можете продолжить удаление PPA из вашего sources.list.

Удалить PPA графически

Перейдите в раздел «Программное обеспечение и обновления», а затем перейдите на вкладку «Другое программное обеспечение». Найдите PPA, который вы хотите удалить:

У вас есть два варианта здесь. Либо вы отменяете выбор PPA, либо выбираете опцию Удалить.

Разница в том, что когда вы отмените выбор записи PPA, ваша система закомментирует запись репозитория в своем файле ppa_name.list в /etc/apt/sources.list.d, но не удалит запись репозитория из его файла ppa_name.list в каталоге /etc/apt/sources.list.d.

В обоих случаях файлы ppa_name.list остаются в указанном каталоге, даже если он пуст.

Безопасно ли использовать PPA?

Это субъективный вопрос. Консерваторы ненавидят PPA, потому что большую часть времени PPA принадлежат сторонним разработчикам. Но в то же время PPA популярны в мире Debian / Ubuntu, поскольку они предоставляют более простой вариант установки.

Что касается безопасности, вероятность взлома или заражения вредоносным ПО вашей системы Linuxе не увеличится, если вы будете использовать PPA. На моей памяти таких случаев еще не было.

Официальные PPA можно использовать не задумываясь. Использование неофициального PPA - полностью ваше решение.

Но я рекомендую избегать установки программы третьих лиц, если оно запрашивает доступ к sudo.

Что вы думаете об использовании PPA?

Если у вас есть какие-либо вопросы о PPA, пожалуйста, не стесняйтесь спрашивать в комментариях.