包管理器是很方便啊,在node里有npm、cnpm、yarn等,要啥install啥子。

通过 Linux 的包管理器可以很方便的下载并安装 Linux 下的一些软件。比如 Centos 中的 yum,Ubuntu 中的 apt-get。

以前用都没怎么了解过,今天!我就要拿小本本记下来!

简单介绍

大多数包系统都是围绕包文件的集合构建的。包文件通常是一个存档文件,它包含已编译的二进制文件和软件的其他资源,以及安装脚本。包文件同时也包含有价值的元数据,包括它们的依赖项,以及安装和运行它们所需的其他包的列表。 ——前辈的文章

虽然包管理系统的功能和优点大致相同,但打包格式和工具却因平台而异:

图片来源:Linux.cn

yum

yum(Yellow dog Updater, Modified)主要用在Fedora,RedHat,Centos等发行版上。

列出安装包

1
2
3
4
➜  ~ yum list | grep lrzsz # rzsz工具用于windows机器和远端的Linux机器通过XShell传输文件.拖拽即可
# 执行结果,列出了yum源里相关的包
lrzsz.x86_64 0.12.20-36.el7 @anaconda
➜ ~

软件包名称(lrzsz)

主版本号.次版本号.源程序发行号-软件包的发行号.主机平台(

1
2
3
4
➜  ~ yum list | grep lrzsz
# 执行结果,列出了yum源里相关的包
lrzsz.x86_64 0.12.20-36.el7 @anaconda
➜ ~

软件包名称.cpu架构(lrzsz.x86_64)

主版本号.次版本号.源程序发行号-软件包的发行号.主机平台(0.12.20-36.el7)

  • “el7” 表示操作系统发行版的版本,”el7” 表示的是 centos7/redhat7,”el6” 表示 centos6/redhat6。

软件源(@anaconda)

搜索软件包

1
yum search httpd

安装

1
2
3
sudo yum install lrzsz
# 如果不想让弹出询问 y/N 的对话,可以使用
sudo yum install -y lrzsz

安装软件时由于需要向系统目录中写入内容, 一般需要 sudo 或者切到 root 账户下才能完成。
yum安装软件只能一个装完了再装另一个,正在yum安装一个软件的过程中,,如果再尝试用yum安装另外一个软件,yum会报错。

如果有一个本地的软件包

假如你有一个rpm软件包但是没有它所依赖的软件包,你不知道到哪去得到它所依赖的软件包。你仍然可以通过yum安装这个rpm软件包,并从软件仓库里得到它所依赖的软件包。

1
yum localinstall /opt/httpd-devel-2.2.15-29.el6_4.x86_64.rpm

卸载

1
2
3
yum list installed # 列出所有已经安装了的软件

sudo yum remove lrzsz

更新

1
2
yum update httpd # 更新一个已存在的软件包
yum update # 更新服务器上所有的软件包

下载但不安装

下载一个插件让yum只下载rpm软件包而不安装。插件名字叫downloadonly,可以通过yum安装。

1
yum install yum-downloadonly

现在就可以从软件仓库里只下载软件包而不安装了:

1
yum install httpd-devel -downloadonly

默认情况下软件包会被下载到/var/cache/yum/目录,但是可以添加额外选项将其下载到指定位置:

1
yum install httpd-devel -downloadonly -downloaddir=/home