Показать статистику
0 голосов
от (1.6тыс. баллов)

Имеется ряд вопросов, непонятных мне.

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

1.3тыс. просмотров 3 ответов

3 Ответы

+1 голос
от (26.4тыс. баллов)

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

sudo add-apt-repository ppa:rvm/smplayer
sudo apt-get update
sudo apt-get install smplayer smplayer-themes smplayer-skins

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

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

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

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

PPA расшифровывается как Personal Package Archive - "Архив личных пакетов".

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

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

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

  • Основное

бесплатное программное обеспечение с открытым исходным кодом, поддерживаемое Canonical.

  • Universe 

поддерживаемое сообществом бесплатное программное обеспечение с открытым исходным кодом.

  • Restricted

проприетарные драйверы для устройств.

  • Multiverse 

Программное обеспечение ограничено авторским правом или правовыми вопросами.

Вы можете увидеть такие репозитории для всех версий Ubuntu http://archive.ubuntu.com/ubuntu/dists/. Вы можете просматривать их, а также перейти к отдельным репозиториям. 

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

Вероятно Вас заинтересовал вопрос: Как ваша система узнает, где находятся эти репозитории?

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

Теперь, когда Вы запускаете команду

sudo apt update

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

sudo apt install package_name

она использует информацию для получения этого пакета с URL-адреса, где хранится реальное программное обеспечение.

( Что такое APT?

представляет собой набор инструментов для управления Debian пакетов.APT позволяет:

  • Установить приложения
  • Удалить приложения
  • Держите ваши приложения в актуальном состоянии
  • и многое другое...)

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

E: Unable to locate package

Или примерно в таком виде:

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

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

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

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

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

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

Enter PPA!

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

PPA - означает «Архив личных пакетов». Помните слово «Личное» здесь. Это дает намек на то, что это что-то эксклюзивное для разработчика и официально не одобрено дистрибутивом. Вы можете ознакомиться с этой страницей https://launchpad.net/ubuntu/+ppas

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

Если вы добавите 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 он не меняет исходный список sources.list. Вместо этого он создает два файла в каталоге /etc/apt/sources.d, список и файл резервной копии с суффиксом «save».

На скриншоте показано как PPA создает отдельный sources.list

Так выглядит содержание source.list PPA

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

Это мера безопасности, гарантирующая, что добавление PPA не связывается с оригинальным sources.list. Это также помогает в удалении PPA.

от (26.4тыс. баллов)
+1

Продолжая тему...

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

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

Ответ заключается в процедуре обновления. Если вы устанавливаете программное обеспечение с использованием пакета DEB, нет никакой гарантии, что установленное программное обеспечение будет обновлено до более новой версии при запуске обновления

sudo apt && 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:rvm/smplayer, и вы получите первый результат от Launchpad , официальной платформы для размещения PPA. Вы также можете перейти на Launchpad и найти нужный PPA прямо там.

Если вы не проверите и не добавите PPA, вы можете увидеть такую ​​ошибку, когда пытаетесь установить программное обеспечение, недоступное для вашей версии.

E: Unable to locate package

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

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

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 для конкретной версии недоступен, он никогда не сможет открыть URL, и вы получите известную ошибку 404

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

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

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

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

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

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

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

После выбора раскроется список пакетов

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

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

от (26.4тыс. баллов)
0

Как удалить PPA

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

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

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

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

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

sudo apt install synaptic

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

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

sudo apt remove название пакета

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

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

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

(В Kubuntu KDE это можно сделать через Discover, введя в поиске PPF)

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

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

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

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

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

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

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

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

0 голосов
от (340 баллов)
PPA - это персональные архивы пакетов, они используются для поддержки и разхвития свободных проектов. Любой человек может создать свой репозитарий в нем.
0 голосов
от (2.9тыс. баллов)
редактировать от

Простой пример: программы для Windows разбросаны в интернете, и их нужно скачивать с сайтов в виде "exe"-файлов. Разработчики Ubuntu придумали более удобный способ - все нужные и доступные программы хранятся в одном месте - репозитории. Не нужно бродить по интернету, искать для установки, так как достаточно зайти в Центр Программного обеспечения Ubuntu и проверить репозиторий, чтобы загрузить оттуда на вашу систему любую необходимую программу.

Зачем нужен PPA

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

Вот тут-то и нужен PPA (Personal Package Archive). Это коллекция программного обеспечения, не входящего в Ubuntu по умолчанию. С его помощью можно скачать любое важное обновление для нужной программы.

Как пользоваться PPA

Итак, вы нашли программу для установки или обновления, но секция "Download" сбивает вас с толку, отправляя на сайт для загрузки. Не волнуйтесь, добавление программы через PPA - простой процесс. Достаточно открыть терминал и ввести команду с названием приложения.

Несложный пример добавления Twitter-клиента "Hotot":

sudo add-apt-repository ppa:hotot-team
sudo apt-get update
sudo apt-get install hotot
...