add-apt-repository问题

本文介绍了如何解决在64位Ubuntu Server中使用add-apt-repository命令时出现的“command not found”错误。通过安装python-software-properties和software-properties-common两个依赖包,可以成功启用第三方PPA仓库。
64位ubuntu server下sudo:add-apt-repository:command not found 问题
新装了Ubuntu Server 12.04,然后升级到Raring Ringtail(development branch),当然许多的软件和环境都要重新配置,所以会遇到问题。首先少不了ppa仓库的一些常见问题。
比如想要在Ubuntu Server 安装个最新的git,
直接执行命令:
sudo add-apt-repository ppa:git/ppa
错误来啦:
sudo: add-apt-repository:command not found
网上解决办法是直接安装工具包 命令:
sudo apt-get install python-software-properties
亲测安装后还是报command not found,所以依赖包还没有安装完全
执行命令:add-apt-repository 
除了要安装python-software-properties外还需要software-properties-common
执行安装命令:
sudo apt-get install software-properties-common
例如:
sam@ubuntu :~$ sudo apt-get install python-software-properties
Reading package lists... Done
Building dependency tree 
Reading state information... Done
The following extra packages will be installed:
 python-pycurl unattended-upgrades
Suggested packages:
 libcurl4-gnutls-dev python-pycurl-dbg bsd-mailx
The following NEW packages will be installed:
 python-pycurl python-software-properties unattended-upgrades
0 upgraded, 3 newly installed, 0 to remove and 81 not upgraded.
Need to get 97.3 kB of archives.
After this operation, 657 kB of additional disk space will be used.
Do you want to continue [Y/n]? y
Get:1 http://cn.archive.ubuntu.com/ubuntu/ precise-updates/main unattended-upgrades all 0.76ubuntu1.1 [24.7 kB]
Get:2 http://cn.archive.ubuntu.com/ubuntu/ precise/main python-pycurl amd64 7.19.0-4ubuntu3 [49.2 kB]
Get:3 http://cn.archive.ubuntu.com/ubuntu/ precise-updates/main python-software-properties all 0.82.7.7 [23.5 kB]
Fetched 97.3 kB in 0s (266 kB/s) 
Preconfiguring packages ...
Selecting previously unselected package unattended-upgrades.
(Reading database ... 52993 files and directories currently installed.)
Unpacking unattended-upgrades (from .../unattended-upgrades_0.76ubuntu1.1_all.deb) ...
Selecting previously unselected package python-pycurl.
Unpacking python-pycurl (from .../python-pycurl_7.19.0-4ubuntu3_amd64.deb) ...
Selecting previously unselected package python-software-properties.
Unpacking python-software-properties (from .../python-software-properties_0.82.7.7_all.deb) ...
Processing triggers for man-db ...
Processing triggers for ureadahead ...
Setting up unattended-upgrades (0.76ubuntu1.1) ...
Setting up python-pycurl (7.19.0-4ubuntu3) ...
Setting up python-software-properties (0.82.7.7) ...
sam@ubuntu :~$ sudo apt-get install software-properties-common
Reading package lists... Done
Building dependency tree 
Reading state information... Done
The following NEW packages will be installed:
 software-properties-common
0 upgraded, 1 newly installed, 0 to remove and 81 not upgraded.
Need to get 8,450 B of archives.
After this operation, 132 kB of additional disk space will be used.
Get:1 http://cn.archive.ubuntu.com/ubuntu/ precise-updates/main software-properties-common all 0.82.7.7 [8,450 B]
Fetched 8,450 B in 0s (63.8 kB/s) 
Selecting previously unselected package software-properties-common.
(Reading database ... 53066 files and directories currently installed.)
Unpacking software-properties-common (from .../software-properties-common_0.82.7.7_all.deb) ...
Setting up software-properties-common (0.82.7.7) ...
sam@ubuntu :~$
 
sam@ubuntu :~$ sudo add-apt-repository ppa:git-core/ppa
You are about to add the following PPA to your system:
 The most current stable version of Git for Ubuntu.
For release candidates, go to https://launchpad.net/~git-core/+archive/candidate .
 More info: https://launchpad.net/~git-core/+archive/ubuntu/ppa
Press [ENTER] to continue or ctrl-c to cancel adding it
gpg: keyring `/tmp/tmpEE0fsN/secring.gpg' created
gpg: keyring `/tmp/tmpEE0fsN/pubring.gpg' created
gpg: requesting key E1DF1F24 from hkp server keyserver.ubuntu.com
gpg: /tmp/tmpEE0fsN/trustdb.gpg: trustdb created
gpg: key E1DF1F24: public key "Launchpad PPA for Ubuntu Git Maintainers" imported
gpg: Total number processed: 1
gpg: imported: 1 (RSA: 1)
OK
sam@ubuntu :~$
<think>好的,用户想了解关于add-apt-repository这个命令。首先,我需要确认自己对这个工具的理解是否正确。add-apt-repository主要用于添加PPA仓库或者第三方软件源到Ubuntu或Debian系统中。用户可能是在安装软件时遇到了需要添加额外仓库的情况,比如安装最新版本的软件或者官方源中没有的软件。 接下来,我应该先解释这个命令的基本功能。可能需要提到它是如何工作的,比如它自动将仓库地址添加到sources.list.d目录下,并导入公钥。然后,用户可能需要知道如何安装这个命令,因为有时候系统可能没有预装,特别是如果他们使用的是较旧的版本或者最小化安装。这时候需要提到安装software-properties-common包。 然后,常见的用法场景,比如添加PPA,用户可能对PPA不太熟悉,需要简单解释PPA是什么,以及为什么有用。例如,PPA允许开发者分发自己的软件包,用户可以通过添加PPA来获取这些软件。还要给出具体的命令示例,比如sudo add-apt-repository ppa:user/repo,这样用户可以直接复制使用。 另外,用户可能需要知道如何移除已经添加的仓库,这时候需要介绍--remove选项。还有,直接添加外部软件源的情况,比如某些软件提供自己的APT源,用户需要知道可以直接使用命令添加URL,并可能还需要导入GPG密钥,这时候可能需要提到apt-key,不过注意到现在apt-key已经被弃用,应该指导用户使用更安全的方法,比如将密钥文件放在/etc/apt/trusted.gpg.d/目录下。 可能用户还会遇到错误,比如仓库不存在或者网络问题,这时候需要提醒常见问题和解决方法,比如检查拼写错误,或者网络连接是否正常。此外,安全性问题也需要强调,添加不受信任的源可能有风险,用户应该只添加可信的来源。 最后,要确保回答结构清晰,分点说明,让用户能够一步步理解和使用这个命令。同时注意使用中文,避免技术术语过于晦涩,必要时举例说明。需要检查LaTeX格式是否正确,不过在这个问题中可能用不到数学公式,但系统级指令里要求行内数学表达式用$...$,所以如果有变量或代码片段的话,可能需要用反引号而不是LaTeX。但在这个回答中,主要涉及命令行示例,所以应该用代码块或者反引号来标注命令,比如`sudo add-apt-repository`,但根据用户的系统级指令,可能需要确认是否允许使用其他格式。不过用户提供的示例中没有提到代码块,可能只需要用普通文本,但为了清晰,使用适当的格式会让回答更易读。不过根据用户的要求,可能不需要使用LaTeX,所以需要确认。实际上,用户给出的系统级指令是关于数学表达式的格式,而这个问题主要涉及命令行,所以不需要使用LaTeX,因此可以忽略数学格式的要求,专注于命令行和解释的结构。</think>`add-apt-repository` 是 Ubuntu/Debian 系统中用于管理软件仓库的命令行工具。它允许用户添加第三方软件源(包括 PPA 仓库)到系统的软件源列表中,从而扩展可安装软件的范围。以下是逐步说明: --- ### **1. 基本功能** - **作用**:向 `/etc/apt/sources.list.d/` 目录添加新的软件源配置文件。 - **附带操作**:自动下载并导入软件源的 GPG 公钥(验证软件包签名)。 - **依赖工具**:属于 `software-properties-common` 包,需预先安装。 --- ### **2. 安装方法** 若系统未预装该命令,执行: ```bash sudo apt update sudo apt install software-properties-common ``` --- ### **3. 常见使用场景** #### **场景 1:添加 PPA 仓库** - **PPA**(Personal Package Archive)是 Ubuntu 特有的个人软件包存档,常用于获取最新版本软件。 - **命令格式**: ```bash sudo add-apt-repository ppa:用户名/仓库名 ``` - **示例**(添加 Node.js 官方 PPA): ```bash sudo add-apt-repository ppa:nodejs/ppa sudo apt update sudo apt install nodejs ``` #### **场景 2:添加第三方软件源** - 直接通过 URL 添加非 PPA 仓库: ```bash sudo add-apt-repository "deb [arch=amd64] https://example.com/repo stable main" ``` - **参数说明**: - `deb`: 表示仓库类型(二进制包)。 - `[arch=amd64]`: 指定系统架构。 - `stable main`: 仓库的分支和组件。 #### **场景 3:移除已添加的仓库** - 使用 `--remove` 选项: ```bash sudo add-apt-repository --remove "deb http://example.com/repo stable main" ``` --- ### **4. 高级选项** - **手动确认操作**:添加 `-y` 参数自动确认(适用于脚本): ```bash sudo add-apt-repository -y ppa:user/repo ``` - **查看帮助文档**: ```bash add-apt-repository --help ``` --- ### **5. 注意事项** 1. **权限要求**:需使用 `sudo` 提权。 2. **安全性**:仅添加可信来源的仓库,避免恶意软件。 3. **依赖更新**:添加仓库后需执行 `sudo apt update` 刷新软件列表。 4. **常见错误**: - `Error: need a repository as argument`:未正确输入仓库地址。 - `NO_PUBKEY`:GPG 密钥导入失败,需手动下载(如 `sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys <KEY_ID>`)。 --- ### **6. 底层原理** `add-apt-repository` 实际执行以下操作: 1. 将仓库信息写入 `/etc/apt/sources.list.d/` 下的 `.list` 文件。 2. 通过 `gpg` 或 `wget` 下载并导入公钥到 `/etc/apt/trusted.gpg.d/`。 --- 通过合理使用此工具,您可以便捷地扩展系统的软件生态,但需谨慎操作以确保系统稳定性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值