解决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.。但当你把网址结尾的删除后,即http://ports.ubuntu.com/ubuntu-ports/dists/bionic/universe/ 发现可以打开了。

解决ubuntu上apt-get update失败的问题_第1张图片

我可以告诉大家这个所谓binary-i386位置应该在哪里:http://cn.archive.ubuntu.com/ubuntu/dists/bionic/main/
解决ubuntu上apt-get update失败的问题_第2张图片
总结:差别在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的时候出现:
解决ubuntu上apt-get update失败的问题_第3张图片
切换java版本(切换到openjdk)
sudo update-alternatives --config java
解决ubuntu上apt-get update失败的问题_第4张图片
安装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

你可能感兴趣的:(解决ubuntu上apt-get update失败的问题)