Linux 软件安装管理

软件包分类

源码包

脚本安装包

【优点】

1.开源,如果有足够的能力,可以修改源代码

2.可以自由选择所需的功能

3.软件是编译安装,所以更加适合自己的系统,更加稳定也效率更高

4.卸载方便

【缺点】

1.安装过程步骤较多,尤其安装较大的软件集合时(如LAMP环境搭建),容易出现编写错误。

2.编译过程时间较长,安装比二进制安装时间长。

3.因为是编译安装,安装过程中一旦报错新手很难解决。

二进制包(RPM包,Deb包,系统默认包)

【优点】

1.包管理系统简单,只通过几个命令就可以实现包的安装、升级、查询、卸载。

2.安装速度比源码包安装快的多。

【缺点】

1.经过编译,不再能看到源代码

2.功能选择不如源码包灵活

3.依赖性

RPM命令管理

rpm包位于安装光盘的Packages下(光盘需要先挂载哦。)

RPM包命名规则

httpd-2.2.15-15.el6.centos.1.i686.rpm
-httpd 软件包名 
-2.2.15 软件版本 
-15 软件发布的次数
-el6.centos 适合的Linux平台
-rpm 包扩展名

RPM包依赖性

树形依赖:a→b→c
环形依赖:a→b→c→a
模块依赖:查询网站

安装

包全名与包名

包全名:操作的包是没有安装的软件包时,使用包全名。而且要注意路径

包名:操作已经安装的软件包时,使用包名。是搜索/var/lib/rpm/中的数据库

安装

进入Packages之后安装或者使用包全名

rpm -ivh 包全名
选项:
-i(install) 安装
-v(verbose) 显示详细信息
-h(hash) 显示进度
--nodeps 不检测依赖性(不许用)

显示依赖的安装包,然后再安装所依赖的安装包。

升级

用升级也可以安装

rpm -Uvh 包全名
选项:
-U (upgrade) 升级

卸载

rpm -e 包名
选项:
-e (erase) 卸载
--nodeps 不检测依赖性(不许用)

查询

# 查询包是否安装(q query)
rpm -q 包名
# 查询所有已经安装的rpm包,然后加上 管道符 与包名 即可找到所有的相关的包
rpm -qa (| 包名)

# 查询信息
rpm -qi 包名
# 查询未安装的包的信息
rpm -qip 包全名

# 查询包中文件安装位置
rpm -ql 包名
# 查询未安装的包中文件安装位置
rpm -qlp 包全名

# 查询系统文件属于哪个RPM包,这个文件必须是包安装出来的
rpm -qf 系统文件名

# 查询软件包的依赖性
rpm -qR 包名
# 查询未安装的软件包的依赖性
rpm -qR 包全名

RPM包默认安装位置

路径 作用
/etc/ 配置文件安装目录
/usr/bin/ 可执行的命令安装目录
/usr/lib/ 程序所使用的函数库保存位置
/usr/share/doc/ 基本的软件使用手册保存位置
/usr/share/man/ 帮助文件保存位置

校验

rpm -V 包名

验证内容中的8个信息的具体内容如下:

标识符|意义
S|文件大小是否改变
M|文件的类型或文件的权限(rwx)是否被改变
5|文件MD5校验和是否改变(可以看成文件内容是否改变)
D|设备的主从代码是否改变
L|文件路径是否改变
U|文件的属主(所有者)是否改变
G|文件的属组是否改变
T|文件的修改时间是否改变

文件类型

标识符|文件类型
c|配置文件
d|普通文档
g|鬼文件,很少见,就是该文件不应该被这个RPM包包含
L|授权文件
r|描述文件

提取

rpm2cpio 包全名 | cpio -idv .文件绝对路径

- rpm2cpio # 将rpm包转换为cpio格式的命令
- cpio # 是一个标准工具,它用于创建软件档案文件和从档案文件中提取文件


cpio 选项 < [文件|设备]
选项:
-i: copy-in模式,还原
-d: 还原时自动新建目录
-v: 显示还原过程

实例:
文件丢失解决

yum在线安装

好处:将所有软件包放到官方服务器上,当进行yum在线安装时,可以自动解决依赖性问题。

yum 源文件

vi /etc/yum.repos.d/CentOS-Base.repo

【文件内容】如下

[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

#released updates 
[updates]
name=CentOS-$releasever - Updates
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
"/etc/yum.repos.d/CentOS-Base.repo" 44L, 1664C             

【解释】

[base]容器名称,一定要放在[]中
name 容器说明,可以自己随便写
mirrorlist 镜像站点。这个可以注释掉
baseurl yum源服务器的地址。默认是CentOS官方的yum源服务器,是可以使用的。可以改成自己喜欢的yum源地址。
enabled 此容器是否生效,如果不写或写成enabled=1都是生效,写成enable=0不生效。
gpgcheck 如果是1是指RPM的数字整数生效,如果是0则不生效
gpgkey 数字证书的公钥文件保存位置。不用修改。例如:`gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7` 其中的file://类似于 http://,是文件协议本身的// 后面是地址。

光盘yum源搭建

1.挂载光盘

2.使网络yum源失效

cd/etc/yum.repos.d/
# 修改后缀名
mv CentOS-Base.repo CentOS-Base.repo.bak

3.使光盘yum源生效

vim CentOS-Media.repo
# 将地址改为自己的光盘挂载地址,并且将不存在的地址注释掉。
baseurl=file:///mnt/cdrom 
# 将enabled=0改成enabled=1
enabled=1

yum命令

常用yum命令

【查询】

# 查询所有可用软件包列表
yum list
# 搜索服务器上所有和关键字相关的包
yum search 关键字

【安装】

# 安装包
yum -y install 包名
选项:
install 安装
-y 自动回答yes

yum -y install gcc

【升级】

# 升级包
yum -y update 包名
选项:
update 安装
-y 自动回答yes


# 升级所有包,改变软件设置和系统设置,系统版本内核都升级
yum -y update
# 升级所有包,不改变软件设置和系统设置,系统版本升级,内核不改变
yum -y upgrade

【卸载】

# 卸载包
yum -y remove 包名
选项:
remove 卸载
-y 自动回答yes

服务器使用最小化安装,用什么软件安装什么,尽量不卸载

yum软件组管理命令

# 列出所有可用的软件组列表
yum grouplist
# 安装指定软件组,组名可以由grouplist查询出来
yum groupinstall
# 卸载指定软件组
yum groupremobe

更改语言:

LANG=en-US
LANG=zh-CN.utf8

源码包安装

源码包安装位置

安装在指定位置下,一般是/usr/local/软件名/,只能用绝对路径进行服务的管理。

yum安装的可以 使用service运行。

# 运行
service httpd start
# 停止
servece httpd stop

# centos7关闭防火墙 
sudo systemctl stop firewalld.service && sudo systemctl disable firewalld.service

然后在浏览器内输入ip地址即可查看到It works!字样表示服务启动,实际访问的是 /var/www/html/ 目录,空的时候访问测试页。默认为空,访问测试页。如果创建/var/www/html/index.html输入HelloWorld,则可以看到HelloWorld。

apache建议用源码包,下载后在自己的机器上编译。下载地址http://mirror.bit.edu.cn/apache/httpd,使用winscp工具从本机拷贝到服务器。

安装注意事项

源代码保存位置: /usr/local/src

软件安装位置:/usr/local/

如何确定安装过程报错:安装过程停止并出现error、warning或no的提示。

源码包安装过程

1.下载源码包

2.解压缩下载的源码包 tar -zxvf httpd-2.2.31.tar.gz

3.进入解压缩目录 cd httpd-2.2.31/

4../configure 软件配置与检查:定义需要的功能选项;检查系统环境是否符合安装要求;把定义好的功能选项和检测系统环境的信息都写入Makefile文件,用于后续的编辑。

./configure --prefix=/usr/local/apache2

5.meke 编译

make 

如果报错执行`make clean`,清楚缓存临时文件,不需要删除/usr/local/apache2

6.make install 安装

make install

如果报错需要删除/usr/local/apache2,执行`make clean`

7.启动

# 启动服务
/usr/local/apache2/bin/apachectl start
# 停止服务
/usr/local/apache2/bin/apachectl stop

使用方式查看 INSTALL 文件

8.访问

# centos7关闭防火墙 
sudo systemctl stop firewalld.service && sudo systemctl disable firewalld.service

然后在浏览器内输入ip地址即可查看到It works!字样表示服务启动,实际访问的是 /usr/local/apache2/htdocs/index.html

源码包卸载

不需要卸载命令,直接删除安装目录即可。不会遗留任何垃圾文件。

脚本安装包

优点:简单,快速,方便
缺点:不能定义安装软件的版本;不能定义所需要的软件功能;源码包的优势丧失。

实例:安装Nginx

Nginx是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,由俄国公司在2004年发布。

Nginx/apache/lighttpd的综合对比

准备工作

关闭rpm包安装的httpd,mysql。
保证yum源正常使用。
关闭SELinux和防火墙。

# 永久关闭SELinux并重启
vi /etc/selinux/config
修改SELINUX=disabled

# centos7关闭防火墙 
sudo systemctl stop firewalld.service && sudo systemctl disable firewalld.service
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,835评论 4 364
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,598评论 1 295
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,569评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,159评论 0 213
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,533评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,710评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,923评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,674评论 0 203
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,421评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,622评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,115评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,428评论 2 254
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,114评论 3 238
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,097评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,875评论 0 197
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,753评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,649评论 2 271

推荐阅读更多精彩内容