Linux软件安装
2016-04-17 22:40
351 查看
软件包管理简介
软件包分类
源码包
源码压缩文件,可以直接看到开源代码,直接使用脚本编译后安装。源码包的优点:
开源,可以修改源代码
可以自由选择所需的功能
软件是编译安装,更加适合自己的系统,稳定效率更高
卸载方便
源码包的缺点:
安装过程步骤多,尤其较大的软件集合,容易出错
编译过程时间较长,安装比二进制安装时间长
编译安装过程中报错新手很难解决
二进制包
RPM包、系统默认包二进制包的优点:
包管理系统简单,通过命令就可以实现包的安装、升级、查询和卸载
安装速度比源码包安装更快
二进制包的缺点:
经过编译,不能看到源代码
功能不能灵活定制
依赖性,平台依赖性、库依赖性
脚本安装包
所谓的脚本安装包,就是把复杂的软件包安装过程写成程序脚本,初学者可以执行程序脚本实现一键安装。实际安装的还是源码包和二进制包。优点:安装简单、快捷
缺点:完全丧失了自定义性
RPM命令管理
RPM包的来源
RPM包在系统光盘RPM包的命名规则
httpd-2.2.15-15.el6.centos.1.i686.rpm-httpd软件包名
-2.2.15软件包版本
-15软件发布的次数
-3l6.centos适合Linux平台
-i686适合的硬件平台,若为x64则为64位硬件平台
-rpm 扩展名
RPM包依赖性
树形依赖:a->b->c环形依赖:a->b->c->a
模块依赖:模块依赖(库文件依赖),查询网站:www.rpmfind.net
模块依赖解决:
1. 在线查询,网站:www.rpmfind.net
2. 本地查找,通过依赖模块名,猜测可能优先安装的rpm包中可能包含需要的库文件
3. yum在线解决,RedHat通过yum在线搭载服务器,服务器已经帮助用户整理好软件安装的依赖库,方便用户下载
4. 使用光盘做本地yum
注:RedHat的yum是付费的,需要购买key
RPM包安装命令
包全名和包名
包全名:操作的包是没有安装的软件包是,使用包全名,但要注意路径。包名:操作已经安装的软件包时,使用包名,是搜索/var/lib/rpm/中的数据库
RPM安装
rpm -ivh 包全名options:
-i (install)安装
-v(verbose)显示详细信息
-h(hash)显示进度
–nodeps不检测依赖性
rpm安装时,报依赖性错误,则先安装依赖rpm包再安装原rpm包
RPM包的升级与卸载
rpm -Uvh 包全名options:
-U (upgrade)升级
包升级命令在包没有安装时,可以安装包;安装后可以升级包。
为什么使用包全名?
升级包对系统来说是陌生的包,必须使用包全名
rpm -e 包名
options:
-e (erase)卸载
–nodeps 不检查依赖性
所有安装过的包,都可以在后台数据库/var/lib/rpm/目录中找到包的相关信息。
包卸载时,仍有依赖性,必须按照安装顺序的相反顺序卸载依赖包。
RPM包查询
查询软件包安装信息
rpm -q 包名rpm -qa
options:
-q (query)查询
-a (all)所有包
// 查询apache服务的rpm包是否安装 #rpm -q httpd // 查询所有安装的rpm包 #rpm -qa // 查询已安装服务的相关包 #rpm -qa|grep httpd
查询软件包的详细信息
rpm -qi 包名options:
-i (information)查询软件信息
-p(package)查询未安装信息
// 查询已安装软件包的详细信息 #rpm -qi httpd // 查询未安装的软件包信息,软件包未安装但有包作者发布的信息 #rpm -qip httpd
查询软件的安装位置
rpm -ql 包名options
-l (list)列表
// 查询软件包httpd的安装位置 #rpm -ql httpd
RPM包默认安装位置
RPM包默认安装路径 | |
---|---|
/etc/ | 配置文件安装目录 |
/usr/bin/ | 可执行的命令安装目录 |
/usr/lib/ | 程序所使用的函数库保存位置 |
/usr/share/doc/ | 基本的软件使用手册保存位置 |
/usr/share/man/ | 帮助文件保存位置 |
查询系统文件属于哪个包
rpm -qf 系统文件名options:
-f (file) 查询系统文件属于哪个软件包(文件不能是自己创建的文件)
查询软件包的依赖性
rpm -qR 包名options:
-R (requires)查询软件包的依赖性
-p (package)查询未安装包信息
#rpm -qR httpd
RPM包校验
RPM包校验
rpm -V 已安装的包名options:
-V (verify)校验指定RPM包中的文件
#rpm -V httpd // 什么都没有显示 #vim /etc/httpd/conf/httpd.conf 添加一行注释 #rpm -V httpd S.5....T. c /etc/httpd/conf/httpd.conf
验证内容中的8个信息的具体内容
验证内容 | 含义 |
---|---|
S | 文件大小是否改变 |
M | 文件的类型或权限(rwx)是否被改变 |
5 | 文件MD5校验和是否改变(可以看成文件内容是否改变) |
D | 设备的主从代码是否改变 |
L | 文件路径是否改变 |
U | 文件的属主(所有者)是否改变 |
G | 文件的属主是否改变 |
T | 文件的修改时间是否改变 |
类型 | 含义 |
---|---|
c | 配置文件(config file) |
d | 普通文档(documentation) |
g | “鬼”文件(ghost file),很少见,就是该文件不应该被这个RPM包包含 |
L | 授权文件(license file) |
r | 描述文件(read me) |
RPM包中文件提取
rpm2cpio 包全名 | cpio -idv .文件绝对路径注: .不能省略,代表当前目录
rpm2cpio将rpm包转换为cpio格式的命令
cpio是一个标准工具,它用于创建软件档案文件和从档案文件中提取文件
cpio 选项 < [文件|设备]
options:
-i:copy-in模式,还原
-d:还原时自动新建目录
-v:显示还原过程
// 查询ls命令属于哪个软件包 #rpm -qf /bin/ls // 移动ls到/tmp目录,那么假设ls文件丢失 #mv /bin/ls /tmp/ // 提取RPM包中ls命令到当前目录的/bin/ls #rpm2cpio /mnt/cdrom/Packages/coreutils-8.4-19.el6.i686.rpm|cpio -idv ./bin/ls // 把ls命令复制回/bin目录,修复文件丢失 #cp /root/bin/ls /bin/
yum在线管理
RPM包的在线安装方式即为yum方式优点:
将所有软件包放到官方服务器上,当进行yum在线安装时,可以自动解决依赖性问题。
yum源文件
/etc/yum.ropos.d/CentOS-Base.repo文件内容,yum.ropos.d目录中CentOS-Base.repo文件生效内容 | 含义 |
---|---|
[base] | 容器名称,一定要放在[]中 |
name | 容器说明,可以自己随便写 |
mirrorlist | 镜像站点,这个可以注释掉,和baseurl选择一个就行 |
baseurl | yum源服务器的地址。默认是CentOS官方的yum源服务器,是可以使用的;如果觉得慢可以改成其他yum源地址 |
enabled | 容器是否生效,如果不写或写成enable=1都是生效,enable=0不生效 |
gpgcheck | gpgcheck=1表明RPM的数字证书生效,gpgcheck=0则不生效 |
gpgkey | 数字证书的公钥文件保存位置。不用修改 |
光盘搭建yum源
光盘搭建yum源步骤
1 挂载光盘// 建立挂载点 mkdir /mnt/cdrom // 挂载光盘 mount /dev/cdrom /mnt/cdrom/
2 使网络yum源失效
// 进入yum源目录 cd /etc/yum.repos.d/ // 修改yum源文件后缀名,使其失效 mv CentOS-Base.repo CentOS-Base.repo.bak
3 使光盘yum源生效
#vim CentOS-Media.repo // 修改baseurl为自己的光盘挂载点 baseurl=file:///mnt/cdrom // 注释掉不用的挂载点,使用#顶头注释 // 开启enabled,即可 enabled=1 // 保存即可 // 显示yum源中内容 #yum list
yum命令
常用yum命令
1 查询// 查询所有可用软件包列表 #yum list // 搜服服务器上所有和关键字相关的包 #yum search 关键字
2 安装
yum -y install 包名
options:
-install 安装
-y 自动回答yes
#yum -y install gcc
3 升级
yum -y update 包名
options:
- update 升级,不写包名时,升级系统所有程序
4 卸载
yum -y remove 包名
options:
- remove 卸载
提醒:
服务器使用最小化安装,用什么软件安装什么,尽量不卸载
yum软件组管理命令
// 列出所有可用的软件组列表 #yum grouplist // 安装指定软件组,组名可以由grouplist查询出来,组名不支持中文 #yum groupinstall 软件组名 // 卸载指定软件组 #yum groupremove 软件组名 // 组名不支持中文,怎么解决 #LANG=en_US // 临时修改 #yum grouplist #yum groupinstall grpname // 安装完成后 #LANG=zh_CN.utf8
源码包管理
源码包和RPM包的区别
1 RMP包和源码包的区别:安装之前:概念上的区别
安装之后:安装位置不同
注:rpm安装可以指定安装位置
2 RPM包默认安装位置
RPM包默认安装路径 | |
---|---|
/etc/ | 配置文件安装目录 |
/usr/bin/ | 可执行的命令安装目录 |
/usr/lib/ | 程序所使用的函数库保存位置 |
/usr/share/doc/ | 基本的软件使用手册保存位置 |
/usr/share/man/ | 帮助文件保存位置 |
可以指定位置安装,一般在/usr/local/软件名/
4安装位置不同带来的影响
RPM包安装的服务可以使用系统服务管理命令(service)来管理
// RPM包安装apache的启动方法 #/etc/rc.d/init.d/httpd start #service httpd start
源码包安装的服务不能被服务管理命令管理,因为没有安装到默认路径,所以只能用绝对路径进行服务管理。
#/usr/local/apache2/bin/apachectl start
源码包安装过程
1 安装准备
安装c语言编译器下载源码,并上传到服务器,使用winscp从windows上传到linux服务器
2 安装注意事项
源代码保存位置: /usr/local/src/软件安装位置:/usr/local/
如何确定安装过程报错:安装过程停止并出现error、warning或no的提示
3 源码包安装过程
下载源码包解压缩下载的源码包
进入解压缩目录
./configure 软件配置与检查
定义需要的功能选项
检测系统环境是否符合安装要求
把定义好的功能选项和检测系统环境的信息都写入Makefile文件,用于后续的编辑
注1:./configure –help 查看需要的功能选项
make编译
编译失败后,可以使用make clean清除缓存和临时文件和编译成功的文件
make install 编译安装
安装失败,执行make clean并删除安装目录
// 编译安装启动过程 #./configure --prefix=/user/local/apache2/ #make #make install #/usr/local/apache2/bin/apachectl start
注2:可以查看源码包中INSTALL说明文件,查看安装过程方法
4 源码包的卸载
不需要卸载命令,直接删除安装目录即可。不会遗留任何垃圾文件。脚本安装包
Linux没有脚本安装包,使用脚本安装源码包或RPM包样例:安装nginx
准备工作
关闭RPM包安装的httpd和MySQL保证yum源正常使用
关闭SELinux和防火墙
// 关闭SELinux #vim /etc/selinux/config // 永久关闭SELINUX SELINUX=disabled
下载LNMP解压缩
到lamp官网下载lamp压缩包脚本一键安装
执行centos.sh脚本全自动安装,只需要根据提示选择作者提供的版本,安装即可。centos.sh脚本分析
所谓的一键安装包,实际上还是安装的源码包与RPM包,只是把安装过程写成了脚本,便于初学者安装。
优点:简单、快速、方便
缺点:
不能定义安装软件的版本
不能定义所需要的软件功能
源码包的优势丧失
参考
慕课网Linux软件安装相关文章推荐
- 常见linux命令
- Linux如何实现开机启动程序详解
- Linux进程间通信——信号集函数
- 使用 udev 高效、动态地管理 Linux 设备文件
- 使用Windows上SourceInsight工具建立分析Linux下uboot源码工程
- linux之DNS部署
- 《Linux内核设计与实现》第四章学习笔记——进程调度
- 红黑树rbtree原理及linux内核中红黑树实现详解
- Linux中Samba详细安装
- ubuntu12.04 安装 skyeye 1.2.6 arm-linux-gcc arm-elf-gcc
- 快速配置 Samba 将 Linux 目录映射为 Windows 驱动器
- 45_DVM和Linux进程
- LDD3学习笔记scull编译错误解决
- Linux五种IO模型
- centos查看硬件信息
- 《Linux内核设计与实现》课本第四章自学笔记——20135203齐岳
- linux MySQL 远程访问
- Linux---centos搭建git服务器
- linux文件权限详解
- linux如何设置用户权限