解决ubuntu上apt-get update失败的问题

写作原因

这两天一直被apt-get update报错(404 not found)所困扰,因为我在安装pycharm的时候,需要有JAVA JDK环境。而最常用的解决方法是1:
1:多数博客介绍解决pycharm安装问题,都会建议下载oracle jdk来解决"jdk not found"的问题,然而这个方案完全不可行,会提示“no valid license found"
2、apt-get update 失败,并不只可能是ubuntu版本到期的原因,也不是镜像源问题,例如我的版本是(ubuntu18.04)。很可能是apt列表中出现与计算机硬件架构不符合的现象(例:你用的是jetson xavier(arm64),但,souse列表里出现了i386的东西)
3有一位朋友的博客

https://blog.csdn.net/we1583004we/article/details/80001059

,误认为jetson tx2是x86平台,如果按照他说的操作,可能会导致系统崩溃,大家一定要注意!

解决问题一(apt-get install 404)

注意:不需要换国内镜像源!
①确定自己系统是哪个,是什么架构(打开设置,或者sudo dpkg --print-architecture
②试一下apt-get update看看哪里错(贴上我jetson xavier运行结果)
注意结尾的404 not found
404 not found前面有一个网址,我们在浏览器打开网址,的确是404 not found.。但当你把网址结尾的删除后,即http://ports.ubuntu.com/ubuntu-ports/dists/bionic/universe/ 发现可以打开了。

发现了吗?这里没有i386的文件夹

我可以告诉大家这个所谓binary-i386位置应该在哪里:http://cn.archive.ubuntu.com/ubuntu/dists/bionic/main/

总结:差别在arm64处于ubuntu-parts目录下的,这个目录 存有i386外各种架构(包括arm64)的官方源,而ubuntu目录存放的是x86。
所以不管你怎么修改/etc/souses.list都没有用,因为你的机子现在又要搜索i386,又要arm64,所以你不管用ubuntu还是ubuntu-parts都会出现404 nit found,因为两个目录互补。
现在,我们要修改系统搜寻list文件,只要留下本系统的架构list

对于arm架构(jetson xavier、tx2等)

sudo rm -rf /var/lib/apt/lists/* 
sudo apt-get remove .*:i386 
sudo dpkg --remove-architecture i386 

对于X86架构(INTEL、AMD的CPU)

sudo rm -rf /var/lib/apt/lists/*
sudo apt-get remove .*:arm64
sudo dpkg --remove-architecture arm64 

安装JDK

之前我说过,开始我下载的oracle jdk,在安装pycharm的时候出现:
说明oracle不行
切换java版本(切换到openjdk)
sudo update-alternatives --config java

安装openjdk

sudo apt-get update
sudo apt-get install openjdk-8-jdk

附: ORACLE jdk安装(需要根据自己实际下载版本修改)

sudo mkdir /usr/lib/jvm:
sudo tar -zxvf jdk-7u60-linux-x64.gz -C /usr/lib/jvm
sudo vi ~/.bashrc
#set oracle jdk environment
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_191  ## 这里要注意目录要换成自己解压的jdk 目录
export JRE_HOME=${JAVA_HOME}/jre  
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib  
export PATH=${JAVA_HOME}/bin:$PATH  
source ~/.bashrc

系统注册此jdk

sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.8.0_191/bin/java 300

附2:可以更换国内源(for jetson xavier)
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-updates main restricted universe multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-security main restricted universe multiverse
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-security main restricted universe multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-backports main restricted universe multiverse
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic main universe restricted
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic main universe restricted

  • 0
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: "apt-get update" 命令用于更新软件包清单,当这个命令失败时,可能是因为网络连接问题、软件源配置问题或者系统错误。 建议检查网络连接是否正常,确认软件源配置是否正确,如果问题依然存在,可以尝试使用 "apt-get update --fix-missing" 来修复错误。 ### 回答2: 当使用`apt-get update`命令更新Ubuntu系统包列表时,可能会出现失败的情况。下面是一些可能导致此问题的原因及解决办法: 1. 网络连接问题:首先,确保你的网络连接正常。可以尝试通过`ping`命令检查互联网连接是否稳定。如果网络连接有问题,可能需要检查网络设置、重启路由器或与网络管理员联系。 2. 软件源问题:`apt-get update`命令会从软件源中获取最新的软件包信息。如果你的软件源配置有问题,那么更新将会失败。可以尝试恢复默认的软件源配置,或者更换为其他可用的软件源。 3. 错误的代理设置:如果你使用了代理服务器来连接互联网,则需要确保代理服务器设置正确。你可以在终端中执行`echo $http_proxy`命令来检查当前的代理设置。如果设置了错误的代理,可以使用`export`命令来修改或删除代理设置。 4. 错误的密钥或签名:在软件源中,每个软件包都有一个相关的密钥或签名用于验证包的完整性。如果密钥或签名出现问题,`apt-get update`命令也会失败。可以尝试重新导入密钥或者更换软件源来解决问题。 5. 系统时间设置问题:如果你的系统时间设置有误,可能会导致与软件源服务器之间的连接失败。确保系统的时钟与实际时间一致,可以通过命令`date`来检查和修改系统时间。 总之,当`apt-get update`失败时,需要先排除网络连接问题,然后检查软件源配置、代理设置、密钥或签名以及系统时间等方面的问题,并采取相应的解决办法来解决问题。 ### 回答3: 在Ubuntu中,当我们运行apt-get update命令时,它会检查系统中所有已经安装的软件包,并且与存储在软件源中的最新版本进行比较,以便确保系统中的软件包是最新的。当apt-get update命令失败时,可能会有以下几个原因: 1. 网络连接问题apt-get update命令需要连接到软件源服务器来检查软件包的更新。如果你的网络连接出现问题,可能导致apt-get update失败。你可以尝试检查网络连接是否正常,或者尝试在其他时间重新运行apt-get update命令。 2. 软件源配置问题apt-get update命令需要访问正确的软件源来获取最新的软件包信息。如果你的软件源配置有误或过期,就会导致更新失败。你可以检查/etc/apt/sources.list文件中的软件源配置,确保其正确并且没有错误。 3. 防火墙或代理问题:如果你的系统上存在防火墙或代理设置,它们可能会阻止apt-get update命令的正常运行。你可以检查防火墙或代理设置,确保它们不会影响apt-get update命令的执行。 4. 软件源服务器问题:有时,软件源服务器可能出现故障或维护,导致apt-get update命令无法正常运行。在这种情况下,你只需要等待软件源服务器恢复正常,并重新运行apt-get update命令即可。 总结:当apt-get update命令失败时,我们可以首先检查网络连接、软件源配置、防火墙和代理设置等可能的问题。如果问题不在你的系统上,那么很可能是软件源服务器的问题,你只需要等待恢复即可。如果以上方法都没有解决问题,你可以尝试清除本地软件包缓存,再重新运行apt-get update命令来解决问题

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值