- Вопрос или проблема
- Определите свой конкретный адрес:
- Добавьте репозиторий:
- Настоятельно рекомендуется не добавлять сторонние репозитории
- Текущая проблема
- Решение
- /etc/apt/preferences.d/stable.preferences**strong text**
- /etc/apt/preferences.d/your-ppa-name.preferences
- Заключение
- Ответ или решение
- Как добавить PPA, содержащее только версии Ubuntu, на систему Debian
- Шаг 1: Установка необходимых инструментов
- Шаг 2: Убедитесь в наличии PPA
- Шаг 3: Ручное добавление PPA
- Шаг 4: Импорт ключей PPA
- Шаг 5: Настройка приоритетов пакетов (опционально)
- Шаг 6: Обновление и установка пакетов
- Заключение
Вопрос или проблема
Я знаю, что могу использовать 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, которое будет использоваться при добавлении репозитория, легко:
Определите свой конкретный адрес:
-
Перейдите на сайт Launchpad вашего желаемого репозитория. Вы можете собрать адрес из первого элемента вашего адреса PPA.
- В вашем случае:
ppa:nextcloud-devs/client
➡ https://launchpad.net/~nextcloud-devs
- В вашем случае:
-
Там выберите желаемый пакет из списка Личные архивы пакетов.
- В вашем случае Клиент для рабочего стола, который приведет нас к
https://launchpad.net/~nextcloud-devs/+archive/ubuntu/client
- В вашем случае Клиент для рабочего стола, который приведет нас к
-
Нажмите на зеленый текст Технические детали об этом PPA.
-
Укажите кодовое имя Ubuntu, которое вы хотите, в Выберите свою версию Ubuntu.
- Artful (17.10)
-
Скопируйте (только??) первую строку блока кода.
deb https://ppa.launchpadcontent.net/nextcloud-devs/client/ubuntu artful main
Добавьте репозиторий:
- Выполните с параметром
-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.
- Перейдите на страницу PPA, которую вы хотите использовать (например, nextcloud-devs/client).
- Найдите раздел с техничекими деталями PPA и определите, какая версия Ubuntu вам нужна (например,
artful
,bionic
).
Шаг 3: Ручное добавление PPA
Использование add-apt-repository
с командой ppa:
не даст желаемого результата на Debian, поскольку система не распознаёт версии Ubuntu. Вместо этого вы можете добавить PPA вручную в список источников:
- Создайте новый файл в директории
/etc/apt/sources.list.d/
:
sudo nano /etc/apt/sources.list.d/nextcloud-devs-client.list
- Вставьте альтернативную строку репозитория, заменяя
artful
на нужную версию Ubuntu:
deb http://ppa.launchpad.net/nextcloud-devs/client/ubuntu artful main
- Сохраните файл и выйдите из редактора.
Шаг 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/
:
- Для стабильной версии Debian:
sudo nano /etc/apt/preferences.d/stable.preferences
Добавьте следующее:
Package: *
Pin: release a=stable
Pin-Priority: 1000
- Для вашего 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, это всегда предпочтительнее.
Также стоит помнить, что использование сторонних репозиториев может привести к нестабильности системы, поэтому очень важно обдумывать такие шаги и заранее создавать резервные копии важных данных.