Làm thế nào để thêm PPA trên máy chủ?


160

Phiên bản máy chủ của Ubuntu không có add-apt-repositorylệnh. Làm cách nào tôi có thể thêm Lưu trữ gói cá nhân (PPA) vào máy chủ mà không có lệnh này?


trong phiên bản mới nhất của synap, bạn có thể thêm ppa trực tiếp vào các nguồn phần mềm thay vì dòng
gỡ lỗi

1
- Câu trả lời của @ Doug là đúng cho Ubuntu 16.04 - Câu trả lời của @ fossfreedom là đúng với Ubuntu 14.04 Trên Ubuntu 16.04 , gói đúng là thực sự software-properties-common, như được hiển thị bởi: $ type add-apt-repository add-apt-repository được băm (/ usr / bin / add-apt-repository) $ apt-file search / usr / bin / add-apt-repository software-property-common: / usr / bin / add-apt-repository trên các phiên bản trước đó có thể tìm thấy trên python-software-properties--- CẬP NHẬT: Tôi nhận xét nó ở đây, vì tôi không thể thêm nó dưới dạng một nhận xét!
azbarcea

apt-add-repository hoạt động ngay lập tức.
Atifm

Câu trả lời:


196

Bạn chỉ có thể thêm add-apt-repositorylệnh. Trong 13.10 trở lên, bạn cũng cần chạy lệnh này:

sudo apt-get install software-properties-common

Lưu ý bên lề: trong 11.04 họ đã thêm một liên kết tượng trưng để add-apt-repositorynó có thể được chạy vì apt-add-repositorynó hoàn toàn có ý nghĩa hơn đối với tôi. Mọi thứ khác bắt đầu bằng "apt".

LƯU Ý: Đây là một phần của python-software-propertiesgói (trước ngày 13.10):

sudo apt-get install python-software-properties

Nhìn thấy nó thực sự là một chức năng của apt, nó thực sự hợp lý với tôi. "thêm kho lưu trữ với apt"> "apt-add-repository"
MrChrisDruif

5
Điều gì xảy ra nếu "python-software-property" đã được cài đặt và bạn vẫn nhận được "lệnh không tìm thấy" khi cố gắng sử dụng "apt-add-repository"?
monkut

Bạn cũng đã thử "add-apt-resp Storage" chưa? Trên các phiên bản trước ngày 11.04, bạn phải đặt "thêm" trước "apt".
Mark Russell

Bạn phải làm gì khi 'apt-get install python-software-property' không thành công vì nó phụ thuộc vào python-curl, 'không thể cài đặt được'? Trên hệ thống 12.04 của tôi, nó phàn nàn rằng "không thể khắc phục sự cố - bạn đã giữ các gói bị hỏng"
Hoobajoob

software-properties-commonmột tập hợp các công cụ xác định hoặc bộ sưu tập các dụng cụ?
Alex

74

Hãy để tôi dạy bạn làm thế nào để câu cá. apt-filecho phép bạn tìm ra gói nào cung cấp một tệp nhất định. dpkg -Slàm điều tương tự, nhưng chỉ cho các gói cài đặt. apt-filehoạt động cho dù gói đã được cài đặt hay chưa.

Vì vậy, trước tiên bạn cài đặt apt-file : sudo apt-get install apt-file. Sau đó, bạn cần cập nhật thông tin của nó, giống như bạn phải làm với apt-get : sudo apt-file update. Bây giờ nó đã sẵn sàng để sử dụng:

$ 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

Vì vậy, trong trường hợp này, việc tiếp theo cần làm là cài đặt các thuộc tính phần mềm python.


3
mẹo tuyệt vời - có lẽ không nên chôn vùi trong câu hỏi này - một câu hỏi riêng biệt sẽ là một ý tưởng tốt để làm nổi bật điều này.
fossfreedom

@fossfreedom Đây có phải là những gì bạn đang nói về? - askubuntu.com/questions/13792/...
JRG

9
Do mẹo này, tôi phát hiện ra rằng trong máy chủ apt-add-repository 12.10 nằm trong phần mềm-thuộc tính chung (không còn thuộc tính python-software-property)
Kat Amsterdam

Tại sao tôi cứ quên rằng lệnh này cực kỳ hữu ích! Câu trả lời chính xác.
diễn ra vào

53

Nó không nhất thiết là câu trả lời tốt nhất, nhưng điều này sẽ hoạt động:

Cách thức lỗi thời (trước Ubuntu 9.10, họ gọi nó là) chỉnh sửa /etc/apt/sources.listvẫn hoạt động. Bạn cũng sẽ cần lấy khóa GPG trên hệ thống theo cách thủ công.

Trên các hệ thống Ubuntu cũ hơn (trước 9,10):

Bước 1: Truy cập trang tổng quan của PPA trong Launchpad. Tìm tiêu đề đọc Thêm PPA này vào hệ thống của bạn và nhấp vào Chi tiết kỹ thuật về liên kết PPA này.

Bước 2: Sử dụng hộp thả xuống Hiển thị nguồn.list để chọn phiên bản Ubuntu bạn đang sử dụng.

Bước 3: Bạn sẽ thấy hộp văn bản ngay bên dưới đọc một cái gì đó như thế này:

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

Sao chép những dòng đó.

Bước 4: Mở một thiết bị đầu cuối và gõ:

sudo gedit /etc/apt/sources.list

Điều này sẽ mở một trình soạn thảo văn bản chứa danh sách lưu trữ mà hệ thống của bạn hiện đang sử dụng. Cuộn xuống dưới cùng của tệp và dán các dòng bạn đã sao chép ở bước trên.

Lưu tệp và thoát khỏi trình soạn thảo văn bản.

Bước 5: Quay lại trang tổng quan của PPA, tìm tiêu đề Khóa ký. Bạn sẽ thấy một cái gì đó như:

1024R / 72D340A3 (Đây là gì?)

Sao chép phần sau dấu gạch chéo nhưng không bao gồm liên kết trợ giúp; ví dụ: chỉ 72D340A3.

Bước 6: Bây giờ bạn cần thêm khóa đó vào hệ thống của mình để Ubuntu có thể xác minh các gói từ PPA. Trong thiết bị đầu cuối của bạn, nhập:

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

(Thay thế 72D340A3 bằng bất cứ thứ gì bạn đã sao chép trong bước 5.)

Điều này bây giờ sẽ kéo xuống khóa của PPA và thêm nó vào hệ thống của bạn.

Bước 7: Bây giờ, là một lần, bạn nên nói với hệ thống của mình để lấy danh sách phần mềm mới nhất từ ​​mỗi kho lưu trữ mà nó biết, bao gồm cả PPA bạn vừa thêm:

sudo apt-get update

Bây giờ bạn đã sẵn sàng để bắt đầu cài đặt phần mềm từ PPA!


1
Nếu không có câu trả lời thân thiện và nhanh chóng hơn cho người dùng nào được đưa ra thì tôi sẽ đặt câu trả lời này là chính xác. Nó giải quyết vấn đề theo cách "đặc biệt";)
Luis Alvarado

1
Mặc dù add-apt-repository dễ dàng hơn, nhưng trong cài đặt máy chủ, tôi thích giữ mọi thứ gọn gàng, vì vậy tôi không ngại làm thủ công. Đây là câu trả lời tôi đang tìm kiếm.
D. Strout

1
Phương pháp này là cách tốt hơn so với cài đặt apt-add-repositoryvà tất cả các crap đi kèm với gói cần thiết.
Dmitry Minkovsky

4
gói phần mềm thuộc tính chung là HUGE, dường như quá nhiều cho việc chỉ thêm một số văn bản vào một tệp và chạy một vài lệnh. Như vậy lãng phí không gian trong khi sử dụng trong Docker. Câu trả lời này rất hữu ích!
rsmoorthy

3
Đây phải là câu trả lời được chấp nhận, vì OP đã hỏi cách khắc phục không sử dụng add-apt-repository ... Cảm ơn rất nhiều cho cái này!
djBo

15

add-apt-repositoryđược cung cấp bởi các gói python-software-properties.

Vì vậy, nếu bạn nên cài đặt qua

sudo apt-get install python-software-properties

Cảm ơn! Tôi phải nói rằng tôi tìm thấy một cái tên khá phi logic. Ngoài ra, bạn có biết tại sao tôi không cài đặt chuẩn không?
Peter Smit

2
đồng ý phi logic - về lý do tại sao, bạn có thể suy đoán rằng các máy chủ thường được 'cố định' về mặt phần mềm đang chạy. Do đó, bạn không cần 'sự xa xỉ' trong việc thêm và xóa kho thường xuyên ... kết thúc đầu cơ!
fossfreedom

Tại sao nó phi logic? Đó là một bộ công cụ python để xử lý các thuộc tính phần mềm. add-apt-repository là một trong những công cụ đó.
Jo-Erlend Schinstad

Tôi đã python-software-propertiescài đặt nhưng tôi vẫn nhận được lỗi này. Tôi đã thử apt-addadd-aptký hiệu, và không có việc gì ... phải làm gì?
Mohamad

1
@Mohamad, vì nó sai, ít nhất là cho Ubuntu 14.04. Tất cả bạn cần cài đặt là software-properties-common.
Theodore R. Smith

15

Chạy lệnh này:

sudo apt-get install software-properties-common

Và sau đó bạn có thể thêm kho lưu trữ của mình đang chạy:

sudo add-apt-repository [REPOSITORY]

Đổi mới để thay thế [REPOSITORY]bằng tên kho lưu trữ mà bạn muốn thêm.


Điều này làm việc hoàn hảo.
Aaron

0

Tôi đã có một cuộc tranh luận với một đồng nghiệp về điều này vài tuần trước. Đưa cho

apt-add-repository

một sự cố gắng. Không cần bất kỳ gói nào khác. Lưu ý rằng apt xuất hiện trước khi thêm. Thứ tự không thành vấn đề vì add-apt-repository cần được cài đặt.

Đối với những người không tán thành ngoài kia. Hãy thử tập tin Vagrant này. Lưu ý, tôi đang bắt đầu từ một hình ảnh đáng tin cậy mới và thêm ppa ngay ra khỏi hộp.

# -*- 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

Cập nhật: Chỉ cần làm rõ, có vẻ như các hình ảnh đám mây cho ubfox chính xác và đã có gói chính xác đã được cài đặt. Vì vậy, cho dù chúng ta đang nói về các tập lệnh đám mây hoặc tập tin mơ hồ, apt-add-repository có mặt. Vì add-apt-repository nằm trong cùng một gói nên hoạt động tốt.


Đặt hàng không thành vấn đề. Xem Askubfox.com/questions/83361/ trên .
edwinksl

1
Hãy giải thích tại sao tập tin mơ hồ này hoạt động sau đó. Lưu ý tôi không tranh luận rằng họ làm điều gì đó khác biệt. Họ làm chính xác điều tương tự. Bạn chỉ cần một gói cho add-apt, nơi mà các công cụ khác hoạt động từ đầu.
Atifm

@atifm: Xem câu trả lời này : $ apt-file search add-apt-repository software-property-common: / usr / bin / add-apt-repository software-property-common: / usr / share / man / man1 / add- apt-repository.1.gz $ apt-file search apt-add-repository software-property-common: / usr / bin / apt-add-repository software-property-common: / usr / share / man / man1 / apt- add-repository.1.gz
tricasse

@tricasse: Cảm ơn liên kết đến tệp apt, nó sẽ hữu ích ở nơi khác. Vì vậy, quyền của bạn, chúng nằm trong cùng một gói được xác minh bởi tệp apt. Điều đó nói rằng, có vẻ như các hình ảnh đám mây ubfox (cho người mơ hồ) cho chính xác và đáng tin cậy đã có gói đã được cài đặt. Không chắc chắn nếu điều này luôn luôn như vậy, nhưng nó dường như là trường hợp tại thời điểm này
Atifm
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.