Unable to locate package、404 Not Found [IP: 185.125.190.39 80]的解决办法

文章讲述了用户在使用ubuntu21.04遇到404错误,尝试更换源和执行apt-getupdate失败。解决方案是升级至LTS版本(如20.04),因为非LTS版本不再受官方维护,官方源已停止支持。

目录

1. 简要

2. 问题背景

3. 问题解析

4. 解决途径

5. 问题总结


1. 简要

        卸载不维护的ubuntu21.04,重装 ubuntu LTS 版本(如20.04.4)即可解决。 网上说的更换源、执行sudo apt-get update都不能解决。

2. 问题背景

       做项目时文档要求ubuntu21.04版本,按照文档要求换了相应的ubuntu版本,换源也按照要求来,但是每次 apt-get update 的时候,还是失败,提示404 Not Found [IP: 185.125.190.39 80]。 

xxx@xxx:~$ sudo bash -c 'echo "deb http://mirrors.ustc.edu.cn/ubuntu-old-releases/ubuntu/ hirsute main restricted universe multiverse" > /etc/apt/source.list'
xxx@xxx:~$ sudo apt-get update
Ign:1 http://cn.archive.ubuntu.com/ubuntu hirsute InRelease
Ign:2 http://cn.archive.ubuntu.com/ubuntu hirsute-updates InRelease
Ign:3 http://security.ubuntu.com/ubuntu hirsute-security InRelease
Ign:4 http://cn.archive.ubuntu.com/ubuntu hirsute-backports InRelease
Err:5 http://security.ubuntu.com/ubuntu hirsute-security Release
  404  Not Found [IP: 185.125.190.39 80]
Err:6 http://cn.archive.ubuntu.com/ubuntu hirsute Release
  404  Not Found [IP: 91.189.91.38 80]
Err:7 http://cn.archive.ubuntu.com/ubuntu hirsute-updates Release
  404  Not Found [IP: 91.189.91.38 80]
Err:8 http://cn.archive.ubuntu.com/ubuntu hirsute-backports Release
  404  Not Found [IP: 91.189.91.38 80]
Reading package lists... Done
E: The repository 'http://security.ubuntu.com/ubuntu hirsute-security Release' no longer has a Release file.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
E: The repository 'http://cn.archive.ubuntu.com/ubuntu hirsute Release' does not have a Release file.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
E: The repository 'http://cn.archive.ubuntu.com/ubuntu hirsute-updates Release' does not have a Release file.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
E: The repository 'http://cn.archive.ubuntu.com/ubuntu hirsute-backports Release' does not have a Release file.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.

3. 问题解析

      ubuntu21.04版本是中间过渡版本,官方已经不维护。

4. 解决途径

1. 原来的ubuntu 21.04、21.10都不行,即只要是奇数版本的都不行,先后找了官网的源,华中科技大学的源和中科大的源,全都失败。 

2.重装20.04 LTS,执行sudo apt-get update,成功。 

5. 问题总结

      关于ubuntu的中间版本,所谓民间的源也只是官方的镜像,官方不维护则这些镜像源也没有用,我就像个冤大头摸索了三个小时。

       LTS是long term support的简称,意思是长期支持,也就是服务支持会不停更新,一般是偶数年发布,也就是18.04(这个也快要不支持了,所以不推荐现在安装这个版本),20.04和最新的22.04这些版本。

本文转自:【ubuntu21.04问题】关于404 Not Found [IP: 185.125.190.39 80]的解决办法 (yii666.com)

<think> 我们注意到用户的问题是关于在包管理操作中无法找到特定的开发包(如zlib-devel等)。根据提供的引用,这些包通常是在安装Python或其他软件之前需要安装的依赖项。用户提到在尝试安装这些包时遇到问题,系统无法找到它们。 常见原因: 1. 软件源未正确配置:可能当前的软件源列表中没有包含这些包,或者软件源配置有误。 2. 包名称在不同发行版中可能有差异:比如在CentOS/RHEL中叫zlib-devel,而在Ubuntu/Debian中可能叫zlib1g-dev。 3. 软件源缓存未更新:需要更新软件源缓存。 用户提供的引用[1]-[5]都是在CentOS/RHEL系统下使用yum安装的命令,因此我们假设用户使用的是基于RHEL的系统(如CentOS、Fedora等)。 解决步骤: 1. 更新软件源缓存: 执行命令:`yum update` 2. 确认软件源配置: 检查/etc/yum.repos.d/目录下的repo文件,确保配置了正确的软件源(如base, epel等)。如果缺少,可能需要添加。 3. 尝试安装单个包以确认问题: 例如:`yum install zlib-devel` 4. 如果提示找不到包,可以考虑添加额外的软件源(如EPEL): 安装EPEL源:`yum install epel-release` 5. 如果用户使用的是其他Linux发行版(如Ubuntu/Debian),则需要使用apt命令,包名称也会不同。例如: 在Ubuntu上安装zlib开发包:`apt-get install zlib1g-dev` 6. 对于libffi-devel,在基于RHEL的系统上包名为libffi-devel,在Debian/Ubuntu上为libffi-dev。 7. 如果上述方法无效,可以尝试在互联网上搜索特定发行版和版本下这些包的安装方法,或者检查是否有拼写错误。 根据用户提供的引用[5],其中还提到了安装gcc和libffi-devel,并且后续步骤是下载并编译安装Python 3.7.1。因此,用户可能是为了编译安装Python而准备环境。如果用户确实是在安装Python,那么确保这些开发包安装成功是非常重要的。 考虑到用户的问题是如何解决无法找到这些包的问题,我们给出以下针对CentOS/RHEL和Ubuntu/Debian的解决方案。 如果用户系统是CentOS/RHEL: 步骤1:更新yum缓存 ``` sudo yum update ``` 步骤2:安装EPEL源(如果尚未安装) ``` sudo yum install epel-release ``` 步骤3:再次尝试安装所需的包 ``` sudo yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel ``` 如果用户系统是Ubuntu/Debian: 步骤1:更新apt缓存 ``` sudo apt update ``` 步骤2:安装相应的包(注意包名称不同) ``` sudo apt install zlib1g-dev libbz2-dev libssl-dev libncurses5-dev libncursesw5-dev libsqlite3-dev libreadline-dev tk-dev libgdbm-dev libdb-dev libpcap-dev xz-utils libffi-dev ``` 注意:在Ubuntu中,ncurses-devel对应的是libncurses5-dev和libncursesw5-dev(有时只需要其中一个,但为了兼容性可以都安装)。另外,db4-devel在Ubuntu中可能对应的是libdb-dev,但具体版本可能不同。 如果用户无法确定系统发行版,可以通过以下命令查看: ``` cat /etc/os-release ``` 最后,如果用户按照上述步骤操作后仍然无法找到某些包,可能需要根据具体的错误信息进一步排查,或者考虑手动编译安装缺失的库。 由于用户提供的引用都是关于CentOS的,我们优先给出CentOS的解决方案,并在相关问题中提出其他发行版的解决方案。 相关问题: 1. 如何检查Linux系统的发行版和版本信息? 2. 在CentOS中如何配置EPEL源? 3. 在Ubuntu/Debian中如何安装Python编译所需的依赖包? 4. 如果软件源中没有所需的包,如何手动编译安装? 5. 安装这些开发包对编译Python有什么作用? </think> ### 解决包管理中找不到开发包的问题 您在安装 `zlib-devel`、`bzip2-devel` 等开发包时遇到 "无法找到包" 的错误,通常是软件源配置或系统环境问题导致的。以下是完整解决方案: --- ### 第一步:检查系统发行版 不同 Linux 发行版使用不同的包管理命令: ```bash # 查看发行版信息 cat /etc/os-release lsb_release -a ``` - **RHEL/CentOS/Fedora**:使用 `yum/dnf` - **Debian/Ubuntu**:使用 `apt-get` --- ### 第二步:解决方案(按系统分类) #### 🔧 针对 RHEL/CentOS/Fedora 系统 1. **更新软件源缓存**: ```bash sudo yum clean all # 清理旧缓存 sudo yum makecache # 重建缓存 sudo yum update # 更新源 ``` 2. **开启 EPEL 源**(关键步骤): ```bash sudo yum install epel-release ``` 3. **安装缺失包**(含依赖): ```bash sudo yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel \ sqlite-devel readline-devel tk-devel gdbm-devel libffi-devel xz-devel ``` > 注:`libpcap-devel` 和 `db4-devel` 在 Python 编译中非必需,可忽略 4. **检查仓库配置**: ```bash # 确保基础仓库和EPEL启用 yum repolist enabled ``` #### 🔧 针对 Debian/Ubuntu 系统 包名称后缀为 `-dev` 而非 `-devel`: ```bash sudo apt update sudo apt install -y zlib1g-dev libbz2-dev libssl-dev libncurses5-dev \ libsqlite3-dev libreadline-dev tk-dev libgdbm-dev libffi-dev liblzma-dev ``` --- ### 第三步:常见错误处理 #### ❌ 错误1:`No package ... available` - **原因**:EPEL 源未启用 - **解决**: ```bash # CentOS 7 sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm # CentOS 8/AlmaLinux sudo dnf install epel-release ``` #### ❌ 错误2:`Error: Unable to find a match` - **原因**:包名错误或仓库不全 - **解决**: ```bash # 搜索实际包名 yum search zlib | grep devel # 输出示例:zlib-devel.x86_64 ``` #### ❌ 错误3:Ubuntu 中 `E: Package &#39;...&#39; has no installation candidate` - **解决**: ```bash sudo add-apt-repository universe # 启用 universe 仓库 sudo apt update ``` --- ### 验证安装成功 ```bash # 检查关键包是否安装 rpm -qa | grep -E &#39;zlib-devel|libffi-devel&#39; # RHEL/CentOS dpkg -l | grep -E &#39;zlib1g-dev|libffi-dev&#39; # Debian/Ubuntu ``` ### 安装后操作 完成依赖安装后,继续 Python 编译安装: ```bash wget https://www.python.org/ftp/python/3.7.12/Python-3.7.12.tgz tar xvf Python-3.7.12.tgz cd Python-3.7.12 ./configure --enable-optimizations make -j$(nproc) sudo make altinstall # 保留系统默认Python ``` > 📌 **关键提示**:所有开发包(`*-devel` 或 `*-dev`)都提供 C/C++ 头文件和静态库,是编译 Python/Pip 等工具的基础依赖。缺少它们会导致 `pip` 安装失败或 Python 模块编译错误[^3][^5]。 --- ### 相关问题 1. 如何永久修改 CentOS 的 yum 仓库配置? 2. EPEL 源和其他第三方源(如 Remi)有什么区别? 3. 编译安装 Python 时出现 `_ctypes` 模块错误如何解决? 4. Debian 系统如何切换多个 Python 版本? 5. 为什么需要区分 `python-dev` 和 `python3-dev` 包?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值