需要帮助“sudo:add-apt-repository:未找到命令”

需要帮助“sudo:add-apt-repository:未找到命令”

有很多“add-apt-repository”帖子,但我认为我已经看到并尝试了其中大多数的解决方案。

我正在尝试在 Ubuntu Server 12.04 上安装 Java。经过一番搜索,找到了以下最常见的解决方案:

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java7-installer

然而,当我跑步时

sudo add-apt-repository ppa:webupd8team/java

我收到以下错误:

sudo: add-apt-repository: command not found

因此,通过更多的搜索和故障排除,我得出了以下结论:

sudo apt-get install software-properties-common

这给了我(现在,至少 - 第一次,它实际安装了包):

0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

其他建议指出可能需要以下内容:

sudo apt-get install python-software-properties

这会出现以下错误:

Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 python-software-properties : Depends: python-pycurl but it is not installable
E: Unable to correct problems, you have held broken packages.

所以我尝试了:

sudo apt-get install python-pycur

并得到这个:

This may mean that the package is missing, has been obsoleted, or
is only available from another source

E: Package 'python-pycurl' has no installation candidate

现在有点卡住了。有什么想法下一步该怎么做吗?

根据 Thomas W. 的建议,以下是 /etc/apt/sources.list 的内容:

# deb cdrom:[Ubuntu-Server 12.04.5 LTS _Precise Pangolin_ - Release i386 (20140806.1)]/ precise main restricted

#deb cdrom:[Ubuntu-Server 12.04.5 LTS _Precise Pangolin_ - Release i386 (20140806.1)]/ precise main restricted

# See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to
# newer versions of the distribution.
deb http://us.archive.ubuntu.com/ubuntu/ precise main restricted
deb-src http://us.archive.ubuntu.com/ubuntu/ precise main restricted

## Major bug fix updates produced after the final release of the
## distribution.
deb http://us.archive.ubuntu.com/ubuntu/ precise-updates main restricted
deb-src http://us.archive.ubuntu.com/ubuntu/ precise-updates main restricted

## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team. Also, please note that software in universe WILL NOT receive any
## review or updates from the Ubuntu security team.
deb http://us.archive.ubuntu.com/ubuntu/ precise universe
deb-src http://us.archive.ubuntu.com/ubuntu/ precise universe
deb http://us.archive.ubuntu.com/ubuntu/ precise-updates universe
deb-src http://us.archive.ubuntu.com/ubuntu/ precise-updates universe

## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu 
## team, and may not be under a free licence. Please satisfy yourself as to 
## your rights to use the software. Also, please note that software in 
## multiverse WILL NOT receive any review or updates from the Ubuntu
## security team.
deb http://us.archive.ubuntu.com/ubuntu/ precise multiverse
deb-src http://us.archive.ubuntu.com/ubuntu/ precise multiverse
deb http://us.archive.ubuntu.com/ubuntu/ precise-updates multiverse
deb-src http://us.archive.ubuntu.com/ubuntu/ precise-updates multiverse

## N.B. software from this repository may not have been tested as
## extensively as that contained in the main release, although it includes
## newer versions of some applications which may provide useful features.
## Also, please note that software in backports WILL NOT receive any review
## or updates from the Ubuntu security team.
deb http://us.archive.ubuntu.com/ubuntu/ precise-backports main restricted universe multiverse
deb-src http://us.archive.ubuntu.com/ubuntu/ precise-backports main restricted universe multiverse

deb http://security.ubuntu.com/ubuntu precise-security main restricted
deb-src http://security.ubuntu.com/ubuntu precise-security main restricted

此外,sudo apt-get update 的结果可能有用:

W: Failed to fetch http://us.archive.ubuntu.com/ubuntu/dists/precise/main/source/Sources  Hash Sum mismatch

W: Failed to fetch http://us.archive.ubuntu.com/ubuntu/dists/precise/restricted/source/Sources  Hash Sum mismatch

W: Failed to fetch http://us.archive.ubuntu.com/ubuntu/dists/precise/universe/source/Sources  Hash Sum mismatch

W: Failed to fetch http://us.archive.ubuntu.com/ubuntu/dists/precise/multiverse/source/Sources  Hash Sum mismatch

W: Failed to fetch http://us.archive.ubuntu.com/ubuntu/dists/precise/main/binary-i386/Packages  Hash Sum mismatch

W: Failed to fetch http://us.archive.ubuntu.com/ubuntu/dists/precise/restricted/binary-i386/Packages  Hash Sum mismatch

W: Failed to fetch http://us.archive.ubuntu.com/ubuntu/dists/precise/universe/binary-i386/Packages  Hash Sum mismatch

W: Failed to fetch http://us.archive.ubuntu.com/ubuntu/dists/precise/multiverse/binary-i386/Packages  Hash Sum mismatch

E: Some index files failed to download. They have been ignored, or old ones used instead.

答案1

好的。感谢 Thomas W. 的评论,帮助我找到了解决方案。

原因似乎可以追溯到损坏的软件包。我之前搜索过如何修复损坏的软件包,但没有一个解决方案可以解决整个问题。我搜索了我在 apt-get update 结束时收到的哈希总和不匹配错误,并找到了此解决方案,问题就解决了。

为了完整起见,答案复制到此处:

删除 /var/lib/apt/lists 目录的内容:

sudo rm -fR /var/lib/apt/lists/*

然后运行:

sudo apt-get update

显然,各位专家可以纠正或详细说明,apt-get 的 clean 和 autoclean 标志并没有完全清除 apt/lists 目录中的问题子项。

答案2

而不是添加易于-repository 需要 python-software-properties 包,请尝试内置易于-add-repository。开箱即可在 Precise、Trusy 和 Xenial 中使用。请参阅手册页了解详情。

注意两个命令看起来相同,但看一下命令的顺序易于. 内置的启动项为易于,而另一个则以添加

答案3

我发现这个对我有用

sudo apt-get install software-properties-common

使用 Ubuntu 16.04 LTS 服务器

相关内容