ubuntu20.04使用命令apt-get install xxx 安装软件时报“http://cn.archive.ubuntu.com/ubuntu xxx“连接失败的解决方案

有时候我们在ubuntu中agt-get install或者update时,会出现如下错误:

apt-get install filezilla
正在读取软件包列表... 完成
正在分析软件包的依赖关系树       
正在读取状态信息... 完成       
下列软件包是自动安装的并且现在不需要了:
  libfwupdplugin1
使用'apt autoremove'来卸载它(它们)。
将会同时安装下列软件:
  filezilla-common libfilezilla0 libpugixml1v5 libwxbase3.0-0v5
  libwxgtk3.0-gtk3-0v5
下列【新】软件包将被安装:
  filezilla filezilla-common libfilezilla0 libpugixml1v5 libwxbase3.0-0v5
  libwxgtk3.0-gtk3-0v5
升级了 0 个软件包,新安装了 6 个软件包,要卸载 0 个软件包,有 2 个软件包未被升级。
需要下载 4,192 kB/9,821 kB 的归档。
解压缩后会消耗 40.6 MB 的额外空间。
您希望继续执行吗? [Y/n] y
忽略:1 http://cn.archive.ubuntu.com/ubuntu focal/universe amd64 filezilla-common all 3.46.3-1build1
错误:2 http://cn.archive.ubuntu.com/ubuntu focal/universe amd64 filezilla amd64 3.46.3-1build1
  连接失败 [IP: xx.xx.xx.xx]
错误:1 http://cn.archive.ubuntu.com/ubuntu focal/universe amd64 filezilla-common all 3.46.3-1build1
  连接失败 [IP: xx.xx.xx.xx]
无法修复缺失的软件包。
E: 无法下载 http://cn.archive.ubuntu.com/ubuntu/pool/universe/f/filezilla/filezilla-common_3.46.3-1build1_all.deb  连接失败 [IP: xx.xx.xx.xx]
E: 无法下载 http://cn.archive.ubuntu.com/ubuntu/pool/universe/f/filezilla/filezilla_3.46.3-1build1_amd64.deb  连接失败 [IP:xx.xx.xx.xx]
E: 中止安装。

 这是由于ubuntu20.04 LTS系统默认源source.list文件中http://cn.archive.ubuntu.com/ubuntu/

的问题,把上述地址替换全部替换为可用的镜像,建议使用阿里云的: http://mirrors.aliyun.com/ubuntu/

 

source.list:apt管理软件包对于的软件库存储在文件,一般放在/etc/apt/sources.list/etc/apt/sources.list.d/目录中带.list后缀的文件中。可以使用命令man sources.list来查看apt的完整存储机制

 完成后,重新install/update即可

<think>好的,用户之前询问了如何在Docker安装的Jenkins中配置JDK和Maven,现在他想把之前提到的安装OpenJDK 11的命令改成安装JDK 1.8的命令。我需要先确认用户的具体需求。 首先,用户可能正在使用一个需要Java 8的项目,因为很多旧项目仍然依赖JDK 8。他可能遇到了兼容性问题,或者项目构建需要特定版本。接下来,我需要回想在Debian或Ubuntu系统上安装OpenJDK 8的方法,因为Jenkins的Docker镜像通常基于这些系统。 之前的命令是`apt-get install -y openjdk-11-jdk`,现在要改成安装JDK 8。但OpenJDK 8在较新的Debian版本中可能不在默认仓库里。需要检查正确的包名和可能的仓库源。比如,在Debian Stretch或Buster中,可能需要添加旧的仓库或使用特定的包名,比如`openjdk-8-jdk`,但可能遇到不可用的情况。 另外,用户可能不知道不同系统版本的差异,或者安装过程中可能出现的依赖问题。比如,如果直接运行`apt-get install openjdk-8-jdk`,可能会出现找不到包的情况,这时候需要添加第三方仓库,比如AdoptOpenJDK或者使用Oracle JDK,但后者涉及到许可问题。 我需要提供两种常见方法:一种是使用OpenJDK 8,可能需要添加仓库;另一种是使用Oracle JDK 8,但需要注意许可协议。考虑到用户可能更倾向于开源解决方案,优先考虑OpenJDK,但也要给出备选方案。 同时,用户是在Docker环境中操作,所以在Dockerfile中使用这些命令时,需要确保步骤正确,比如在基于Jenkins镜像的基础上添加正确的仓库,更新包列表,然后安装。另外,安装完成后可能需要设置环境变量JAVA_HOME到正确路径,比如`/usr/lib/jvm/java-8-openjdk-amd64`。 还要提醒用户,安装完成后需要在Jenkins的全局工具配置中指定JDK 8的路径,以确保构建时使用正确版本。此外,如果用户选择手动安装到容器内部,需要注意容器重启后可能丢失数据,因此建议使用Dockerfile构建自定义镜像持久化配置。 最后,验证步骤也很重要,比如在容器内运行`java -version`确认安装成功。同时,提醒用户注意不同Linux发行版的包管理差异,确保命令适用于他们使用的基镜像。</think>--- ### **Docker容器中安装JDK 1.8的完整步骤** --- #### **一、问题分析** 将原命令`apt-get install -y openjdk-11-jdk`改为安装JDK 1.8时,需注意以下问题: 1. **包名差异**:不同Linux发行版中JDK 1.8的包名称可能不同。 2. **仓库支持**:新版本系统可能不再默认支持JDK 1.8,需手动添加仓库。 3. **环境兼容性**:确保JDK路径正确配置。 --- #### **二、安装JDK 1.8的两种方法** 以下以Debian/Ubuntu系统为例(Jenkins官方镜像基于Debian)。 --- ##### **方法1:直接安装OpenJDK 8(推荐)** **适用场景**:系统仓库支持`openjdk-8-jdk`(适用于较旧系统版本)。 **步骤**: 1. **更新仓库并安装**: ```bash apt-get update && apt-get install -y openjdk-8-jdk ``` 2. **验证安装**: ```bash java -version # 输出应包含 "openjdk 1.8.0_xxx" ``` --- ##### **方法2:通过第三方仓库安装(系统仓库无JDK 8时)** **适用场景**:新系统版本(如Debian 11/Ubuntu 20.04+)默认仓库已移除JDK 8。 **步骤**: 1. **添加旧版仓库**: ```bash echo "deb http://archive.debian.org/debian stretch main" > /etc/apt/sources.list.d/stretch.list ``` 2. **忽略仓库签名过期问题**: ```bash apt-get update -o Acquire::Check-Valid-Until=false ``` 3. **安装JDK 8**: ```bash apt-get install -y openjdk-8-jdk ``` --- ##### **方法3:手动安装Oracle JDK 8(需下载二进制包)** **适用场景**:强制使用Oracle官方JDK 8(需接受许可协议)。 **步骤**: 1. **下载Oracle JDK 8 tar包**: ```bash wget https://download.oracle.com/otn/java/jdk/8u381-b09/jdk-8u381-linux-x64.tar.gz ``` 2. **解压并安装**: ```bash tar -xzf jdk-8u381-linux-x64.tar.gz -C /usr/lib/jvm mv /usr/lib/jvm/jdk1.8.0_381 /usr/lib/jvm/java-8-oracle ``` 3. **设置环境变量**: ```bash export JAVA_HOME=/usr/lib/jvm/java-8-oracle export PATH=$JAVA_HOME/bin:$PATH ``` --- #### **三、在Dockerfile中集成JDK 8** 以自定义镜像为例: ```dockerfile FROM jenkins/jenkins:lts USER root # 安装JDK 8(通过第三方仓库) RUN echo "deb http://archive.debian.org/debian stretch main" > /etc/apt/sources.list.d/stretch.list && \ apt-get update -o Acquire::Check-Valid-Until=false && \ apt-get install -y openjdk-8-jdk # 设置环境变量 ENV JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 USER jenkins ``` --- #### **四、Jenkins全局工具配置** 1. **进入Jenkins管理界面**: - **Manage Jenkins** → **Tools** → **JDK installations** 2. **配置JDK 8路径**: - 取消勾选 **Install automatically** - 输入名称(如 `JDK8`) - `JAVA_HOME`填写容器内的路径: - OpenJDK 8:`/usr/lib/jvm/java-8-openjdk-amd64` - Oracle JDK 8:`/usr/lib/jvm/java-8-oracle` --- #### **五、验证配置** 1. **在容器内检查Java版本**: ```bash docker exec -it <容器ID> java -version ``` 输出示例: ``` openjdk version "1.8.0_382" OpenJDK Runtime Environment (build 1.8.0_382-8u382-ga-1~18.04.1-b05) OpenJDK 64-Bit Server VM (build 25.382-b05, mixed mode) ``` 2. **在Jenkins任务中测试**: - 创建自由风格项目,添加构建步骤:`Execute shell` - 输入命令:`echo $JAVA_HOME && java -version` --- #### **六、注意事项** 1. **镜像兼容性**:若使用旧仓库(如`stretch`),可能引发依赖冲突,建议优先测试。 2. **许可证问题**:Oracle JDK 8需遵守商业使用协议,生产环境建议用OpenJDK。 3. **数据持久化**:在Dockerfile中固化配置,避免容器重启后丢失环境。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值