download
linux下载包时选择rpm和tar.gz哪个更好?有什么区别?
- RPM(Red Hat Package Manager):RPM是一种特定于Red Hat和其衍生版本(如CentOS、Fedora等)的包管理系统。它的主要优点是,RPM包可以包含元数据,如包的描述、版本号、依赖关系等,这些信息可以被包管理系统(如YUM或DNF)用来自动解决依赖关系,进行自动安装和更新。此外,RPM包还可以进行签名验证,以确保安装的软件来源可靠。RPM包的安装、卸载、升级和查询都非常方便,只需使用相应的RPM命令即可。例如,可以使用以下命令来安装一个RPM包:
rpm -ivh package.rpm
缺点是,如果需要在非Red Hat系的Linux发行版(如Debian、Ubuntu等)上安装RPM包,可能会遇到问题。此外,如果RPM包的依赖关系没有正确解决,安装过程可能会失败。
tar.gz:tar.gz是一种压缩格式,可以包含任何类型的文件和目录。tar.gz包通常包含源代码,需要手动编译和安装。安装tar.gz包的主要优点是,它可以在所有的Linux发行版上安装,因为它不依赖特定的包管理系统。此外,tar.gz包可以让你有更多的自定义选项,比如选择安装位置、启用或禁用特定的功能等。但是,安装tar.gz包的过程比安装RPM包更复杂,通常需要执行以下步骤:
tar -xvzf package.tar.gz # 解压tar.gz包 cd package # 进入解压后的目录 ./configure # 配置安装选项 make # 编译源代码 make install # 安装软件
- 缺点:tar.gz包通常不包含元数据,所以需要手动解决依赖关系,并且没有自动的更新机制
配置
# 其中/path/to/是RPM文件的路径,jdk-8uXXX-linux-x64.rpm和jdk-11.X.XX_linux-x64_bin.rpm是你下载的RPM文件的名称。
sudo rpm -ivh /path/to/jdk-8uXXX-linux-x64.rpm
sudo rpm -ivh /path/to/jdk-11.X.XX_linux-x64_bin.rpm
sudo alternatives --install /usr/bin/java java /path/to/jdk1.8.0_version/bin/java 1
sudo alternatives --install /usr/bin/java java /path/to/jdk-11.X.XX/bin/java 2
附录:
其他操作系统同理
#kali/debain
sudo tar -xf jdk-8uXXX-linux-x64.tar.gz
sudo mv jdk1.8.0_XXX /opt/
sudo nano ~/.bashrc
export JAVA_HOME=/opt/jdk1.8.0_XXX
export PATH=$PATH:$JAVA_HOME/bin
source ~/.bashrc
sudo dpkg -i jdk-11.0.X_linux-x64_bin.deb
java -version