0%

linux下载软件包

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 CPU

  • ppc.rpm
    用于带 Apple Powe rPC CPU 的计算机

  • s390.rpm
    用于基于 S/390 CPU 的 IBM 服务器

  • sparc.rpm
    用于带 Sun 系统公司 SPARC CPU 的计算机

rpm安装

1
2
3
4
5
6
7
rpm -ivh 包全名
-------
-i install安装
-v verbose显示详细信息
-h 显示安装进度
--force 强制安装,即使覆盖其他包的文件也要安装
--nodeps 当要安装的rpm包依赖其他包时,即使其他包没有安装,也要安装这个包

rpm包升级

1
2
3
rpm -Uvh  包全名
------
-U 升级安装

rpm包卸载

1
2
# 多个包的话,空格隔开
rpm -e 包名

rpm包查询

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# 查询是否安装
rpm -q 包名

# 查询包的相关信息
rpm -qi 包名

# 查询系统上所有安装的包
rpm -qa

# 查询软件包的文件列表
rpm -ql 包名

# 查询某个文件属于哪个包
rpm -qf 文件名

------------------
-i info信息
-a all所有
-l list文件列表
-f file文件

srpm 包的安装

源代码 RPM 包的结尾通常是.src.rpm

1
2
3
4
5
6
7
8
rpm -i 包名 

cd /usr/src/redhat/SPECS

# 编译完之后,/usr/src/redhat/RPM/i386/目录下,有一个新的 rpm 包,这个是编译好的二进制文件。
rpmbuild -bb 打出来的specs文件
# 安装
rpm -i 新的rpm包名

由于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
2
3
4
5
6
7
8
9
# 查询yum源服务器上的所有软件包
yum list
# 列出已安装的
yum list installed

# 查询是否包含某个软件包
yum list 包名

yum search 关键字
安装
1
2
3
4
yum -y install 包名
-------
install 安装
-y 自动回答yes

还可以手动下载rpm安装文件并使用yum安装

1
yum localinstall package_name.rpm
升级
1
2
3
4
5
6
7
8
# 列出所有已安装包的可用更新
yum list updates


yum -y update 包名
-------
update 升级
-y 自动回答yes
卸载
1
2
3
4
5
# 删除软件包但是保留配置文件和数据文件
yum remove 包名

# 删除软件和它的所有文件
yum erase 包名

卸载需要谨慎,会把依赖该包的所有包都卸载掉

软件组操作
1
2
3
4
5
6
yum grouplist

yum groupinfo

yum -y groupinstall 组名

依赖关系

每个包都包含了很多依赖库,可以使用deplist来查看依赖关系

1
yum deplist 包名

有时候某个包的软件依赖关系会被另一个包的安装覆盖掉,导致包依赖关系损坏

1
2
3
4
5
6
7
# 尝试清理
yum clean all
# 清理后尝试升级
yum update

# 如果无法解决可以自己去查依赖关系,下载所需要的依赖
yum deplist 包名

apt安装软件包

apt全称Advanced Package Tool,一般使用两个命令,apt-get:用于执行和软件包安装有关的所有操作;apt-cache:用于查找软件包的相关信息

下载安装
1
2
3
4
5
6
# 更新当前apt-get缓存中的软件包信息,安装前执行该命令以保证获得的软件包是最新的
apt-get update
# 安装软件包
apt-get install 包名
#获取软件源代码
apt-get source 包名
卸载
1
2
3
4
# 卸载特定的软件包
apt-get remove 包名
# 删除所有已下载的包文件
apt-get clean
查询
1
2
3
4
5
# 搜索软件包列表中的特定的软件包,可以搜索所有该字的软件包
apt-cache search 部分包名

# 列出软件包的依赖关系
apt-cache denpens 包名
安装源

apt的安装源都在/etc/apt/sources.list

1
2
deb http://mirrors.cloud.aliyuncs.com/ubuntu/ xenial main restricted universe multiverse
deb-src 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

欢迎关注我的其它发布渠道