linux下载软件包
linux下只有两种软件包
- 源码包(tar 压缩包,如有.tar.gz 和.tar.bz2)
- 二进制包(rpm) centos下 (除了rpm还有srpm,srpm 包为未编译过的 rpm 包,需要以 rpm 管理的方式编译,然后以 rpm 的安装方式安装)
RPM包操作
rpm 包全称为Redhat Package Manager,是依赖 cpu 架构的,常见的格式
noarch.rpm
不依赖于 CPU, 可以在所有计算机上安装i386.rpm
基于 Intel 386 CPU,这些 RPM 包可以在所有 Intel 兼容计算机上安装i486.rpm
用于带 Intel 486 CPU 的计算机(随时)i586.rpm
用于带 Intel 586 CPU 的计算机i686.rpm
用于带 Intel 686 CPU 的计算机ia64.rpm
用于带 Intel ltanium 64 位 CPU 的计算机alpha.rpm
用于带 HP Alpha CPU 的计算机,最初是 DEC 公司开发的nthlon.rpm
基于 AMD Athlon CPUppc.rpm
用于带 Apple Powe rPC CPU 的计算机s390.rpm
用于基于 S/390 CPU 的 IBM 服务器sparc.rpm
用于带 Sun 系统公司 SPARC CPU 的计算机
rpm安装
1 | rpm -ivh 包全名 |
rpm包升级
1 | rpm -Uvh 包全名 |
rpm包卸载
1 | 多个包的话,空格隔开 |
rpm包查询
1 | 查询是否安装 |
srpm 包的安装
源代码 RPM 包的结尾通常是.src.rpm
1 | rpm -i 包名 |
由于rpm安装软件包时比较麻烦,各个包之间的依赖需要去人工下载,所以一般使用yum来或者apt在线安装,可以进行自动检测软件依赖问题
高级安装
基于Debian系统的(如Ubuntu)使用的是dpkg命令,基于RedHat系统的(如Centos)使用的是rpm命令
dpkg命令中包含的工具有apt-get、apt-cache、aptitude。
rpm扩展的工具有yum、urpm、zypper。
yum安装软件包
yum的源配置文件保存在/etc/yum.repos.d文件夹中,默认使用的是CentOS-Base.repo,yum是Redhat所特有的安装RPM程序包的工具,在使用RPM安装某一个程序包时可能会因为该程序包依赖另一个程序包而无法安装,yum可以连同依赖的程序包一起安装
我在使用系统自带的yum源文件时发现无法访问那些网站,所以去找了个搜狐的镜像源,将原本的baseurl的前半部分换为http://mirrors.sohu.com/
如:baseurl=http://mirrors.sohu.com/centos/$releasever/os/$basearch/
yum软件库
可以通过repolist来查看正在从哪些仓库中获取软件
1 | yum repolist |
仓库中没有所需要的软件,则可以去修改/etc/yum.repos.d配置文件
查询
1 | 查询yum源服务器上的所有软件包 |
安装
1 | yum -y install 包名 |
还可以手动下载rpm安装文件并使用yum安装
1 | yum localinstall package_name.rpm |
升级
1 | 列出所有已安装包的可用更新 |
卸载
1 | 删除软件包但是保留配置文件和数据文件 |
卸载需要谨慎,会把依赖该包的所有包都卸载掉
软件组操作
1 | yum grouplist |
依赖关系
每个包都包含了很多依赖库,可以使用deplist来查看依赖关系
1 | yum deplist 包名 |
有时候某个包的软件依赖关系会被另一个包的安装覆盖掉,导致包依赖关系损坏
1 | 尝试清理 |
apt安装软件包
apt全称Advanced Package Tool,一般使用两个命令,apt-get:用于执行和软件包安装有关的所有操作;apt-cache:用于查找软件包的相关信息
下载安装
1 | 更新当前apt-get缓存中的软件包信息,安装前执行该命令以保证获得的软件包是最新的 |
卸载
1 | 卸载特定的软件包 |
查询
1 | 搜索软件包列表中的特定的软件包,可以搜索所有该字的软件包 |
安装源
apt的安装源都在/etc/apt/sources.list
中
1 | deb http://mirrors.cloud.aliyuncs.com/ubuntu/ xenial main restricted universe multiverse |
源码包安装
首先下载源码包的压缩包,解压之后进入目录
第一步 配置
先执行
1 | ./configure --prefix=安装到的目录位置 |
该命令使编译前检测系统环境是否符合安装要求,把系统环境的检测结果以及用户提供的相关参数生成赌赢的Makefile文件,后续的安装过程都会依赖该文件。
第二步 编译
如果检测成功,则继续执行
1 | make |
该命令的作用是调用gcc编译器,读取上述Makefile文件中的信息进行系统软件编译,编译是为了把源码程序转换成linux可执行的文件
第三步 安装
如果编译出错执行
1 | make clean |
清空编译内容
如果编译没有出错,执行
1 | make install |
编译安装
卸载
1 | make uninstall |