В чем разница между PPA и хранилищем?

46

Я недавно опубликовал ответ, где я написал добавить PPA . Но теперь я понимаю, что понятия не имею, в чем разница между PPA и репозиторием . Так может кто-нибудь, пожалуйста, объясните мне это?

Альвар
источник
Информацию о PPA смотрите: askubuntu.com/questions/4983/…
Таккат

Ответы:

14

Хранилища

В таких системах, как Ubuntu, большая часть программного обеспечения упакована в красивые файлы .deb (или .rpm, как в Red Hat), которые содержат программы и библиотеки, которые вам нужны. Эти файлы могут быть загружены или записаны на компакт-дисках (компакт-диск с Ubuntu полон их). Репозитории - это серверы, которые содержат наборы пакетов .

PPA

Архивы Личного пакета (PPA) позволяют вам загрузить Ubuntu пакетов с исходным кодом будут построены и опубликованы в качестве меткой репозитории Launchpad .

Также смотрите Что такое PPA и как их использовать?

Подвести итог:

  • В репозитории есть пакеты.
  • PPA - это пакеты (/ коллекции программного обеспечения).
  • Launchpad имеет репозиторий, содержащий PPA (/ коллекции программного обеспечения).
Rinzwind
источник
4
Разве PPA - это не просто хранилище или программное обеспечение, выбранное и поддерживаемое отдельным лицом или группой? (которые не имеют прямого отношения к Canonical или официальным разработчикам Ubuntu). PPA похож на хранилище, а не на единый пакет.
Фахад Юсуф
11
PPA - это не пакет, это хранилище. Каждый PPA может содержать несколько пакетов. Панель запуска - это (или, скорее, хосты) набор репозиториев, называемых PPA.
Жиль "ТАК - перестань быть злым"
такое четкое объяснение. Итак, более четкое объяснение было бы в репозитории C: // ProgramFiles и PPA являются установленными папками программ в этом
Abhimanyu Aryan
@AbhimanyuAryan Нет, C: \ ProgramFiles - не что иное, как репозиторий, а каталоги в нем - не что иное, как PPA. Если вы не делаете метафору, в этом случае я, должно быть, упустил суть.
wjandrea
Этот ответ неверен. PPA - это не пакеты, а репозитории. Должен ли я это исправить?
Reinier Post
66

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

  • Репозиторий - это коллекция пакетов, размещенных на произвольном сервере.
  • PPA также представляет собой набор пакетов, размещенных на серверах Launchpad.

    В частности, PPA не является единым пакетом, как это очень двусмысленно сформулировал пункт «PPA - это пакеты (/ коллекции программного обеспечения)». В принятый ответ могут поверить. Кроме того, пакет не является (обязательно) набором программного обеспечения , что делает этот момент еще более запутанным.

  • Таким образом, PPA - это особый тип хранилища. Как квадрат это особый вид прямоугольника.

Основным отличием является хостер. По сути, если вы программист и хотите разрабатывать и распространять свои собственные пакеты, и у вас есть собственный корневой сервер в Интернете, вы можете создать собственный репозиторий на нем. Большой! Но что, если у вас нет корневого сервера, и вы не хотите платить за него, но все же хотите разрабатывать и распространять свои собственные пакеты? Ну, тогда есть Launchpad. Он предлагает PPA как услугу именно для этого варианта использования. Вы можете создать свой собственный репозиторий на Launchpad и управлять своими собственными пакетами там.

Давайте посмотрим на иллюстрирующий пример.

  1. Сначала предположим, что вы хотите установить среду рабочего стола MATE (вилка Gnome 2) на Ubuntu Saucy Salamander. Он не содержится в официальных репозиториях, и разработчики не поддерживают PPA. Вместо этого у них есть собственный репо. Вы можете добавить это так:

    $ sudo add-apt-repository http://packages.mate-desktop.org/repo/ubuntu
    

    Это приведет к добавлению следующей записи /etc/apt/sources.list:

    deb http://packages.mate-desktop.org/repo/ubuntu saucy main
    
  2. Во-вторых, предположим, что вы также хотите взглянуть на Cinnamon (еще одна вилка Gnome 2). Это содержится в официальных репозиториях с 13.04, но все еще есть PPA, поддерживаемый разработчиками, полезный, например, если вы заинтересованы в получении новых выпусков быстрее. Вы можете добавить это так:

    $ sudo add-apt-repository ppa:gwendal-lebihan-dev/cinnamon-stable
    

    Это приведет к добавлению следующей записи /etc/apt/sources.list.d/gwendal-lebihan-dev-cinnamon-stable-saucy.list:

    deb http://ppa.launchpad.net/gwendal-lebihan-dev/cinnamon-stable/ubuntu saucy main
    

    Как видите, последняя запись очень похожа на ту, что сделана в пункте (1). Фактически, оба являются просто URL-адресами хранилищ с точки зрения Ubuntu.

  3. Фактически, вы можете даже добавить Cinnamon PPA с тем же синтаксисом, что и в пункте (1) , хотя это не типичный способ добавления PPA:

    $ sudo add-apt-repository http://ppa.launchpad.net/gwendal-lebihan-dev/cinnamon-stable/ubuntu
    

    Это приведет к добавлению следующей записи /etc/apt/sources.list:

    deb http://ppa.launchpad.net/gwendal-lebihan-dev/cinnamon-stable/ubuntu saucy main
    

    Это точно такая же запись, как в пункте (2). Только файлы, в которые записаны эти записи, обрабатываются немного по-другому, но, в конце концов, это не имеет никакого значения. В обоих случаях вы получите пакеты из Cinnamon PPA, которые будут доступны в вашей системе, sudo apt-get updateконечно же , после канонического .

Malte Skoruppa
источник
Согласно руководству add-apt-repositoryв Xenial, если ppa:<user>/<ppa-name>форма используется, «открытый ключ GPG вновь добавленного PPA также будет загружен и добавлен в связку ключей apt». Я полагаю, что это не тот случай, если используется форма URL. На самом деле, руководство не говорит о том, что вы можете использовать вид формы URL, который вы используете в 1 и 3, но «строку, которая может быть добавлена ​​непосредственно в sources.list». Тем не менее, форма, которую вы используете, кажется, работает.
Ярно
1
@jarno Да, руководство add-apt-repositoryв этом отношении действительно неполно. Пожалуйста, используйте, add-apt-repository --helpчтобы увидеть, что форма URL, которую я использовал в 1 и 3, действительно правильная и предполагаемая возможная опция. Более того, ваше предположение абсолютно верно: открытый ключ GPA для PPA не будет добавлен при использовании формы URL. Это полезное дополнение, спасибо! :) Обратите внимание, что я не рекомендую использовать форму, описанную в 3, чтобы добавить PPA. Это было просто в качестве иллюстрации, чтобы показать, что на самом деле PPA - это просто определенный тип хранилища.
Malte Skoruppa
10

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

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

Репозитории - это везде, где есть программное обеспечение, в данном случае списки пакетов и пакеты, которые должны быть установлены в дистрибутивах на основе Debian.

Вы можете иметь свой личный репозиторий без использования Launchpad, и он может называться PPA, потому что это Personal.

Единственная разница в использовании заключается только в синтаксисе, add-apt-repositoryкоторый использует ключевое слово magic ppa:вместо того, чтобы заставлять пользователя писать полный URL-адрес, который требуется для не репозиториев Launchpad.

Braiam
источник
9

Хранилище представляет собой совокупность различного программного обеспечения , которое позволяет программное обеспечение , как APT-GET, уместности и т.д. , чтобы загрузить и установить программное обеспечение указанного. Их содержание видимо всем. Прочитайте Справочную страницу Ubuntu по репозиториям для просветления.

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

mr2k
источник
8

Хранилище - это место, где пакет хранится или поддерживается для загрузки или обновления. Это серверы, которые содержат наборы пакетов.

Личный пакет Archive (PPA) представляет собой специальное хранилище программного обеспечения для источника загрузки пакетов , которые будут построены и опубликованы как APT репозитории Launchpad или аналогичного применения. В основном это поддерживается людьми, которые не являются официальными разработчиками Ubuntu

G_p
источник