Як додати PPA на сервері?


160

Серверна версія Ubuntu не має add-apt-repositoryкоманди. Як я можу додати на сервер архів особистого пакета (PPA) без цієї команди?


в останній версії синаптики ви можете додавати
файли ppa

1
- @ відповідь Дуга правильна для Ubuntu 16.04 - @ відповідь fossfreedom правильна для Ubuntu 14.04 У Ubuntu 16.04 правильний пакет справді є software-properties-common, як показано: $ type add-apt-repository add-apt-repository хешируется (/ usr / bin / add-apt-repository) $ apt-file search / usr / bin / add-apt-repository software-properties-common: / usr / bin / add-apt-repository у попередніх версіях його можна знайти дійсно на python-software-properties--- ОНОВЛЕННЯ: Я коментую це тут, тому що я не зміг додати його як коментар!
azbarcea

apt-add-repository працює прямо з вікна.
Atifm

Відповіді:


196

Ви можете просто додати add-apt-repositoryкоманду. У 13.10 і пізніше вам також потрібно виконати цю команду:

sudo apt-get install software-properties-common

Бічна примітка: в 11.04 вони додали символьне посилання, щоб add-apt-repositoryйого можна було запустити, apt-add-repositoryщо для мене цілком має сенс. Все інше apt починається з "apt".

ПРИМІТКА. Це частина python-software-propertiesпакета (до 13.10):

sudo apt-get install python-software-properties

Бачити, що це насправді функція підходу, для мене насправді логічно. "add repository with apt"> "apt-add-repository"
MrChrisDruif

5
що робити, якщо "python-software-properties" вже встановлено, і ви все одно отримуєте "команду не знайдено" при спробі використовувати "apt-add-repository"?
monkut

Ви також пробували "add-apt-respository"? У версіях до 11.04 слід поставити "додати" перед "підходом".
Марк Рассел

що ви повинні робити, коли "apt-get install python-software-властивості" не вдається, оскільки це залежить від python-curl, який "не встановлюється"? У моїй системі 12.04 він скаржиться, що "не вдається виправити проблеми - ви зламали пакунки"
Hoobajoob

Це software-properties-commonнабір визначених інструментів чи колекція утиліт?
Олексій

74

Дозвольте навчити вас ловити рибу. apt-fileдозволяє дізнатися, який пакет надає певний файл. dpkg -Sробить те саме, але лише для встановлених пакетів. apt-fileпрацює незалежно від того, встановлено чи ні пакет.

Отже, спочатку встановити APT-файл: sudo apt-get install apt-file. Потім вам потрібно оновити інформацію, так само , як ви повинні з APT-GET: sudo apt-file update. Тепер він готовий до використання:

$ apt-file search add-apt-repository
python-software-properties: /usr/bin/add-apt-repository
python-software-properties: /usr/share/man/man1/add-apt-repository.1.gz

Отже, у цьому випадку наступне, що потрібно зробити, - це встановити властивості python-software.


3
відмінна порада - це, можливо, не повинно бути похованим у цьому питанні - окремим питанням було б гарною ідеєю, щоб висвітлити це.
fossfreedom

@fossfreedom Це те, про що ти говориш? - askubuntu.com/questions/13792/…
jrg

9
Завдяки цій підказці я виявив, що в 12.10 сервер apt-add-repository розміщений у спільних програм-властивостях (більше не у властивостях python-software)
Kat Amsterdam

Чому я постійно забуваю, що ця неймовірно корисна команда існує! Чудова відповідь.
Лефф

53

Це не обов'язково найкраща відповідь, але це функціонує:

Старомодний спосіб редагування (до Ubuntu 9.10, його називають) редагування /etc/apt/sources.listвсе ще працює. Також вам потрібно буде отримати ключ GPG в системі вручну.

На старих системах (до 9.10) Ubuntu:

Крок 1: Відвідайте сторінку огляду PPA в Launchpad. Шукайте заголовок, в якому написано Додавання цього PPA до вашої системи та натисніть Технічні відомості про це посилання PPA.

Крок 2: Скористайтеся спадною панеллю "Display source.list", щоб вибрати версію Ubuntu, яку ви використовуєте.

Крок 3. Ви побачите, що в текстовому полі прямо внизу написано щось подібне:

deb http://ppa.launchpad.net/gwibber-daily/ppa/ubuntu jaunty main
deb-src http://ppa.launchpad.net/gwibber-daily/ppa/ubuntu jaunty main

Скопіюйте ці рядки.

Крок 4: Відкрийте термінал і введіть:

sudo gedit /etc/apt/sources.list

Це відкриє текстовий редактор, що містить перелік архівів, якими зараз користується ваша система. Прокрутіть донизу файлу та вставте рядки, які ви скопіювали на кроці вище.

Збережіть файл та вийдіть із текстового редактора.

Крок 5. Поверніться на сторінку огляду PPA, знайдіть заголовок ключа підпису. Ви побачите щось на кшталт:

1024R / 72D340A3 (що це?)

Скопіюйте частину після косої риси, але не включаючи довідкову посилання; наприклад, просто 72D340A3.

Крок 6: Тепер вам потрібно додати цей ключ до вашої системи, щоб Ubuntu міг перевірити пакети з PPA. У своєму терміналі введіть:

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 72D340A3

(Замініть 72D340A3 тим, що ви скопіювали на кроці 5.)

Це дозволить знищити ключ PPA та додати його до вашої системи.

Крок 7: Тепер, як разовий, ви повинні сказати вашій системі зняти останній список програмного забезпечення з кожного відомого про нього архіву, включаючи щойно доданий PPA:

sudo apt-get update

Тепер ви готові розпочати встановлення програмного забезпечення з PPA!


1
Якщо ніякої іншої швидшої та зручнішої в користуванні відповіді не дано, я поставлю цю як правильну. Він вирішує проблему "особливим" способом;)
Луїс Альварадо

1
Хоча додавання-apt-сховище простіше, в серверній установці мені подобається тримати речі неміцними, тому я не проти робити це вручну. Це була відповідь, яку я шукав.
D. Strout

1
Цей спосіб набагато кращий, ніж установка apt-add-repositoryта всі лайна, що постачаються з необхідним пакетом.
Дмитро Міньковський

4
Поширений пакет-властивості програмного забезпечення є ВЕЛИЧЕЗНИМ, здається занадто великим, щоб просто додати якийсь текст до файлу та виконати пару команд. Така трата місця під час використання в Докер. Ця відповідь дуже корисна!
rsmoorthy

3
Це має бути прийнятою відповіддю, оскільки ОП запитала, як обійти, не використовуючи add-apt-сховище ... Дякую за це!
djBo

15

add-apt-repositoryнадається пакетом python-software-properties.

Таким чином, якщо вам слід встановити через

sudo apt-get install python-software-properties

Дякую! Треба сказати, що я знаходжу цілком нелогічну назву. Крім того, чи маєте ви уявлення, чому я не встановлений стандартно?
Пітер Сміт

2
погоджено нелогічно - щодо того, чому ви можете припускати, що сервери, як правило, «виправлені» з точки зору роботи програмного забезпечення. Таким чином, вам не потрібна "розкіш" додавання та видалення сховищ часто ... закінчення спекуляцій!
fossfreedom

Чому це нелогічно? Це набір інструментів python для боротьби з властивостями програмного забезпечення. add-apt-repository - один із таких інструментів.
Жо-Ерленд Шінстад

Я вже python-software-propertiesвстановив, але я продовжую отримувати цю помилку. Я спробував apt-addі add-aptнотації, і жодна робота ... що робити?
Мухаммад

1
@Mohamad, тому що це неправильно, принаймні для Ubuntu 14.04. Все, що вам потрібно встановити - це software-properties-common.
Теодор Р. Сміт

15

Виконайте цю команду:

sudo apt-get install software-properties-common

Після цього ви можете додати ваше сховище:

sudo add-apt-repository [REPOSITORY]

Перейміть, щоб замінити [REPOSITORY]ім'я сховища, яке ви хочете додати.


Це спрацювало чудово.
Аарон

0

Я мав дебати з колегою з цього приводу кілька тижнів тому. Дайте

apt-add-repository

спробувати. Не потрібні інші пакети. Зауважте, що apt з'являється перед додаванням. Замовлення має значення, оскільки потрібно встановити додаток-сховище.

Для тих найсайєрів там. Спробуйте цей файл Vagrant спробувати. Зауважте, я починаю зі свіжого надійного зображення і додаю ppa прямо з поля.

# -*- mode: ruby -*-
# vi: set ft=ruby :

# All Vagrant configuration is done below. The "2" in Vagrant.configure
# configures the configuration version (we support older styles for
# backwards compatibility). Please don't change it unless you know what
# you're doing.
Vagrant.configure(2) do |config|

  config.vm.box = "ubuntu/trusty64"
  config.ssh.username = "vagrant"

  config.vm.provision "shell", inline: <<-SHELL
    sudo apt-add-repository ppa:george-edison55/cmake-3.x -y
    sudo apt update
    sudo apt upgrade
    sudo apt install -y virtualbox-guest-dkms
    sudo apt-get install -y curl g++ libpng12-dev  \
      libtiff5-dev libssl-dev libxml2-dev libxslt1-dev libpq-dev postgresql-client \
      postgresql pgadmin3 liblcms2-dev libcrypto++9 libcrypto++-dev \
      graphviz-dev libboost1.55-dev libboost-filesystem1.55-dev libboost-system1.55-dev \
      libexpat1-dev python-software-properties qtbase5-dev qttools5-dev  \
      libqt5svg5-dev qtscript5-dev qtdeclarative5-dev qtmultimedia5-dev \
      libsqlite3-dev qt5-default cmake

  SHELL
end

Оновлення: Просто для уточнення, схоже, що хмарні зображення для ubuntu точні та вище мають вже встановлений правильний пакет. Отож, чи ми говоримо про хмарно-init-скрипти або про бродячий файл, apt-add-repository присутній. Оскільки додаток-apt-сховище знаходиться в одному пакеті, який повинен працювати і.


Замовлення не має значення. Дивіться askubuntu.com/questions/83489/… .
edwinksl

1
Поясніть, чому працює цей бродячий файл. Зауважте, я не заперечую, що вони роблять щось інше. Вони роблять точно те саме. Вам просто потрібен пакет для add-apt, де як і інші працюють з нуля.
Atifm

@atifm: Дивіться цю відповідь : $ apt-файл пошуку додавання-apt-репозиторія програмне забезпечення-властивості-загальні: / usr / bin / add-apt-repository software-properties-common: / usr / share / man / man1 / add- apt-repository.1.gz $ apt-file search apt-add-repository software-properties-common: / usr / bin / apt-add-repository software-properties-common: / usr / share / man / man1 / apt- add-repository.1.gz
tricasse

@tricasse: Дякую за посилання на apt-файл, який буде корисний у іншому місці. Отже, ваше право, вони знаходяться в тому ж пакеті, що і підтверджений apt-файлом. Однак, схоже на те, що зображення хмари ubuntu (для бродячого) для точного та надійного пакету вже встановлено. Не впевнений, чи завжди це було так, але, мабуть, так і є на даний момент
Atifm
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.