如何为 Linux 卸载 Java
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何为 Linux 卸载 Java相关的知识,希望对你有一定的参考价值。
卸载过程包括以下步骤:Java 插件卸载
Java 卸载
RPM 卸载
自解压卸载
Java 插件卸载:Mozilla 浏览器
如果准备重新安装 Java,则不必卸载 Java 插件。创建新的符号链接时,只需使用 ln 命令的 -f 选项。
示例: ln -f /usr/lib/mozilla/plugins/libnpjp2.so
如果准备从 Linux 盒中完全删除 Java,请参阅下面介绍的符号链接删除过程。
打开终端窗口
以超级用户身份登录
键入: rm /usr/lib/mozilla/plugins/libnpjp2.so
将提示删除符号链接:
rm: /usr/lib/mozilla/plugins/libnpjp2.so ?
键入:Y
Java 卸载
有两种方法卸载 Java。请使用在安装 Java 时所用的方法。
例如,如果以前使用 RPM 安装 Java,则使用 RPM 卸载方法。
RPM 卸载
注:如果 Linux 盒中具有 RPM,则应首先确定 Java 是否是使用 RPM 安装的。如果 Java 不是使用 RPM 安装的,则请跳过本节内容。
打开终端窗口
以超级用户身份登录
键入以下命令,尝试查找 JRE 软件包: rpm -qa
如果 RPM 报告一个类似于 jre--fcs 的软件包,则说明 Java 是使用 RPM 安装的。
注:通常,不必使用 RPM 卸载 Java,因为 RPM 可以在安装新版本时自动卸载旧版本的 Java!除非准备永久删除 Java,否则请跳过本节内容。
要卸载 Java,请键入: rpm -e jre--fcs
自解压文件卸载
确定 Java 是否安装在某些文件夹中。常用位置包括 /usr/java/jre_ 或/opt/jre_nb/jre_/bin/java/
如果找到了安装 Java 的文件夹,可以删除此文件夹。
警告:删除文件夹之前,应确保 Java 以前不是使用 RPM 安装的。
键入: rm -r jre
例如: rm -r jre1.7.0 参考技术A 1、卸载用 bin文件安装的JDK方法:
删除/usr/java目录下的所有东西
2、卸载系统自带的jdk版本方法:
查看自带的jdk:
#rpm -qa | grep gcj
看到如下信息:
libgcj-4.1.2-44.el5
java-1.4.2-gcj-compat-1.4.2.0-40jpp.115
使用rpm -e --nodeps 命令删除上面查找的内容:
#rpm -e –nodeps java-1.4.2-gcj-compat-1.4.2.0-40jpp.115
3、卸载rpm安装的jkd版本
查看安装的jdk:
#rpm -qa|grep jdk
看到如下信息:
java-1.6.0-openjdk-1.6.0.0-0.25.b09.el5
jdk-1.6.0_16-fcs
卸载:
#rpm -e --nodeps jdk-1.6.0_16-fcs本回答被提问者和网友采纳 参考技术B apt-get等 或rpm 都有卸载功能 。。。。。。。。。
如何为不同的 linux 内核编译一个 linux 内核模块
【中文标题】如何为不同的 linux 内核编译一个 linux 内核模块【英文标题】:How to compile a linux kernel module for different linux kernel 【发布时间】:2021-08-16 22:25:24 【问题描述】:我对内核编程有点陌生,但几天来我一直在为这个问题苦苦挣扎。我有一台带有 linux 内核 '5.10.0-kali7-amd64' 的机器,我用它来为 Ubutnu 16.04.4 '4.4.0-119-generic' 开发一个 linux 内核模块,但我想不通这样我就可以在我的机器上为该版本编译它并让它在 4.4.0 内核机器上实际工作。
我得到的最接近的是:
-
我从https://launchpad.net/ubuntu/xenial/+package/linux-headers-4.4.0-119下载了源码
并使用 dpkg 安装
然后我从https://www.ubuntuupdates.org/package/core/xenial/main/updates/linux-image-4.4.0-119-generic 下载并安装了 4.4.0-119-generic
两者都安装没有问题。
我在我的 Makefile 中使用
make -C /lib/modules/4.4.0-119-generic/build M=$(PWD) modules
编译了我的模块,它也可以工作并编译我的 hello world 模块。
但是,当上传到 4.4.0 机器时,insmod 错误地说 insmod: ERROR: could not insert module rootkitMy.ko: Invalid module format
。 dmesg 说:module: rootkit: Unknown rela relocation: 4
然后我在 4.4.0 机器上编译了我的源代码,并创建了一个具有完全相同 modinfo 的模块,但那个模块确实有效。
以下是两者的 modinfo:
filename: /rootkit.ko
version: 0.01
description: Rootkit hook
author: Bl4ckC4t
license: GPL
srcversion: 46604268C8D1B7FA5115CB4
depends:
vermagic: 4.4.0-119-generic SMP mod_unload modversions retpoline
filename: /rootkitMy.ko
version: 0.01
description: Rootkit hook
author: Bl4ckC4t
license: GPL
srcversion: 46604268C8D1B7FA5115CB4
depends:
vermagic: 4.4.0-119-generic SMP mod_unload modversions retpoline
rootkitMy.ko 在 5.10 机器上编译并且在 rootkit.ko 在 4.4.0 机器上编译并且在注入 insmod
时确实可以正常工作我可以做些什么来编译一个工作模块我的 5.10 机器?
【问题讨论】:
请将完整的错误信息复制并粘贴到问题中。 是的,抱歉我添加了它 请添加到与insmod
故障相关的dmesg
的问题帖子输出中。
哦,我什至不知道会在 dmesg 中留下输出。我会添加它
【参考方案1】:
我设法解决了这个问题。 Unknown rela relocation: 4
是由于内核处理 PLT(更具体地说是 R_X86_64_PC32 和 R_X86_64_PLT32)方式发生变化而导致的 insmod 错误。在 binutils >= 2.31 的情况下,链接器决定使用 R_X86_64_PLT32 重定位,旧内核不支持。
解决这个问题:
-
我从https://ftp.gnu.org/gnu/binutils/ 下载了旧版本的 binutils (2.26.1)
从存档中提取文件夹
通过运行将 binutils 编译为 /usr/local/binutils-2.6
./configure --prefix=/usr/local/binutils-2.6
make
sudo make install
-
将新的 binutils 导出到我的路径并重新编译了我的模块
export PATH=/usr/local/binutils-2.6/bin:$PATH
现在它可以工作了!
【讨论】:
以上是关于如何为 Linux 卸载 Java的主要内容,如果未能解决你的问题,请参考以下文章