Как я могу добавить PPA только с выпусками Ubuntu на машину Debian?

Вопрос или проблема

Я знаю, что могу использовать add-apt-repository в Debian, сначала выполнив:

sudo apt-get install software-properties-common

Тем не менее, я все еще не могу просто выполнить (например):

sudo add-apt-repository ppa:nextcloud-devs/client
sudo apt-get update

…потому что каталог дистрибутивов для этого PPA содержит только релизы Ubuntu (artful, bionic…), а не релизы Debian (jessie, stretch…). Поэтому apt не может найти пакеты для моего релиза.

Я могу решить это вручную (определить наиболее подходящий релиз Ubuntu, загрузить ключи репозитория, изменить /etc/apt-get/sources.list), но мне бы хотелось сделать это с командной строки.

Могу ли я передать параметр командной строки или как-то убедить add-apt-repository выбрать релиз Ubuntu? Что-то вроде:

sudo add-apt-repository --force-distro=artful ppa:nextcloud-devs/client

Указать кодовое имя Ubuntu, которое будет использоваться при добавлении репозитория, легко:

Определите свой конкретный адрес:

  1. Перейдите на сайт Launchpad вашего желаемого репозитория. Вы можете собрать адрес из первого элемента вашего адреса PPA.

  2. Там выберите желаемый пакет из списка Личные архивы пакетов.

  3. Нажмите на зеленый текст Технические детали об этом PPA.

  4. Укажите кодовое имя Ubuntu, которое вы хотите, в Выберите свою версию Ubuntu.

    • Artful (17.10)
  5. Скопируйте (только??) первую строку блока кода.

    • deb https://ppa.launchpadcontent.net/nextcloud-devs/client/ubuntu artful main

Добавьте репозиторий:

  1. Выполните с параметром -S и вашим адресом.
    • sudo add-apt-repository -S "deb https://ppa.launchpadcontent.net/nextcloud-devs/client/ubuntu artful main"

Настоятельно рекомендуется не добавлять сторонние репозитории

Тем не менее, если вы понимаете риски и знакомы с apt-pinning, вы можете добавлять и управлять сторонними репозиториями. Я не рекомендую вам делать это на вашей установке Debian и вместо этого установить пакет из официального стабильного или back-ports репозитория. Если пакета нет там, установка из исходников является еще одним жизнеспособным методом.

Если вам необходим этот пакет, и он не найден в репозиториях, и вы хотите поддерживать его с помощью apt, пока вы понимаете риски, вы можете следовать этим шагам.

Текущая проблема

Вы пытаетесь добавить репозиторий ppa:nextcloud-devs/client, используя команду add-apt-repository. Вы не можете заставить apt-get update работать с новым репозиторием, так как он использует имена версий Ubuntu, а ваш sources.list использует имена версий Debian.

Решение

Я ссылаюсь на это руководство о том, как добавить PPA Ubuntu в вашу систему Debian.

Вы будете выполнять следующую команду от имени sudo (или root):

add-apt-repository ppa:nextcloud-devs/client

Теперь вы хотите проверить ваши /sources.list.d/. Например, если вы добавляете Launchpad в ваш wheezy /sources.list.d/, он должен выглядеть так:

deb http://ppa.launchpad.net/webupd8team/java/ubuntu wheezy main 
deb-src http://ppa.launchpad.net/webupd8team/java/ubuntu wheezy main

Теперь измените wheezy на версию Ubuntu, которую вы хотите использовать. Например, Xenial или 16.04.

deb http://ppa.launchpad.net/webupd8team/java/ubuntu xenial main 
deb-src http://ppa.launchpad.net/webupd8team/java/ubuntu xenial main

Теперь вы должны использовать apt-pinning, чтобы убедиться, что ваша система сохраняет некоторую целостность. Я настоятельно рекомендую, чтобы ваши стабильные репозитории имели более высокий приоритет, чем ваш ppa. В вашем /etc/apt/preferences.d/ должен быть reponame.preferences для каждого репозитория, а содержимое каждого должно выглядеть так:

/etc/apt/preferences.d/stable.preferences**strong text**

Package: *
Pin: release a=stable
Pin-Priority: 1000

/etc/apt/preferences.d/your-ppa-name.preferences

Package: *
Pin: release a=your-ppa-name
Pin-Priority: 750

Теперь вы можете выполнить apt update, и PPA должен быть успешно установлен.

Заключение

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

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

Удачи!

Ответ или решение

Как добавить PPA, содержащее только версии Ubuntu, на систему Debian

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

Шаг 1: Установка необходимых инструментов

Перед тем как получать доступ к PPA, необходимо установить пакет software-properties-common, который предоставляет команду add-apt-repository. Откройте терминал и выполните следующую команду:

sudo apt-get install software-properties-common

Шаг 2: Убедитесь в наличии PPA

При добавлении PPA, например, ppa:nextcloud-devs/client, важно проверить соответствие версии Ubuntu, которая будет использоваться. Информация о PPA доступна на сайте Launchpad.

  1. Перейдите на страницу PPA, которую вы хотите использовать (например, nextcloud-devs/client).
  2. Найдите раздел с техничекими деталями PPA и определите, какая версия Ubuntu вам нужна (например, artful, bionic).

Шаг 3: Ручное добавление PPA

Использование add-apt-repository с командой ppa: не даст желаемого результата на Debian, поскольку система не распознаёт версии Ubuntu. Вместо этого вы можете добавить PPA вручную в список источников:

  1. Создайте новый файл в директории /etc/apt/sources.list.d/:
sudo nano /etc/apt/sources.list.d/nextcloud-devs-client.list
  1. Вставьте альтернативную строку репозитория, заменяя artful на нужную версию Ubuntu:
deb http://ppa.launchpad.net/nextcloud-devs/client/ubuntu artful main
  1. Сохраните файл и выйдите из редактора.

Шаг 4: Импорт ключей PPA

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

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys [KEY_ID]

Замените [KEY_ID] на фактический идентификатор ключа, который можно найти на странице PPA.

Шаг 5: Настройка приоритетов пакетов (опционально)

Чтобы избежать конфликтов между пакетами из Debian и пакетами из PPA, рекомендуется использовать механизмы закрепления (apt-pinning). Создайте соответствующие файлы в /etc/apt/preferences.d/:

  1. Для стабильной версии Debian:
sudo nano /etc/apt/preferences.d/stable.preferences

Добавьте следующее:

Package: *
Pin: release a=stable
Pin-Priority: 1000
  1. Для вашего PPA:
sudo nano /etc/apt/preferences.d/nextcloud.preferences

Добавьте следующее:

Package: *
Pin: release a=your-ppa-name
Pin-Priority: 750

Шаг 6: Обновление и установка пакетов

Теперь вы можете обновить информацию о пакетах и установить необходимые вам пакеты:

sudo apt-get update
sudo apt-get install <ваш_пакет>

Заключение

Добавление PPA, специфичных для Ubuntu, на систему Debian представляет собой комплексный процесс, требующий внимания к деталям и потенциальных рисков. Прежде чем продолжать, важно осознанно оценить необходимость в использованном вами пакете и возможные последствия для вашей системы. Если пакет доступен через официальные репозитории Debian или через backports, это всегда предпочтительнее.

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

Оцените материал
Добавить комментарий

Капча загружается...