linux如何直接下载预编译的package而不是安装(无root权限)
Abstract
本文总结了如何下载各种linux发行版上的包管理器打包好的二进制软件并使用的方法。
1. Introduction
linux安装软件一般要么是用apt,要么是yum等,但是这些包管理器都需要root权限,在没有root权限时,我们可以用conda安装部分软件,但是有的软件conda也没有。
此时,我们可以
- 从源代码编译
- 想办法找到别人编译好的package
对于从源代码编译,本文不做过多讨论,仅讨论如何获得已经编译好的二进制包。
2. Preliminary
如果一个软件可以通过apt或者yum安装,那么一定是有二进制包的,就保存在对应的包管理器网站上。
3. Method
打开这个网站,在右上角有个搜索框,输入你需要的软件名字,搜索即可。
出现搜索结果后,请选择你需要的系统和CPU指令集,下载package。这个package在ubuntu上是deb格式,在centos上是rpm格式,其他发行版各有异同,不作过多介绍。
下载好你需要的包,然后想办法解压即可。
4. Experiments
比如说,我要在centos 7上使用axel,搜索到的结果网址是:https://rhel.pkgs.org/7/epel-x86_64/axel-2.4-9.el7.x86_64.rpm.html
往下拉,找到下载地址:https://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/a/axel-2.4-9.el7.x86_64.rpm
下载后解压出来,解压命令是[1]:
mkdir axel-2.4-9.el7.x86_64
bsdtar -xf axel-2.4-9.el7.x86_64.rpm -C axel-2.4-9.el7.x86_64
然后你就可以看到axel-2.4-9.el7.x86_64
文件夹内出现了etc
和usr
目录,从中找到我们需要的二进制文件:axel-2.4-9.el7.x86_64/usr/bin/axel
,使用即可。
5. Limitations
本文仅讨论了centos如何解压rpm包,没有讨论ubuntu系统。