在Linux中看与识别的软件包
1、源码包 大部分是C写的。需要手工安装,并且繁琐。比较满。
1-1、脚本安装包。不多见,并且这种包是源码包二次开发后的安装包。 不需要手工安装。
很简单,
2、二进制包(RPM包、系统默认包)。是经过编译之后的机器语言包。
源码包 有点:
1、开源,如果有足够的能力,可以修改源代码
2、可以自由选择所需要的功能
3、软件是便宜安装,所以更家适合自己的系统,更加稳定也效率更高。
4、卸载方便。
缺点:
1、安装过程步骤较多,尤其安装较大的软件集合时(如 LAMP环境搭建),容易出现拼写错误
2、编译过程时间较长,安装比二进制安装时间长。
3、因为是编译安装,安装过程中一但报错新手很难解决。
RPM包 二进制包 有点:
1、包管理系统简单,只通过几个命令就可以实现包的安装、升级、查询和卸载。
2、安装速度比源码包安装快的多。
缺点:
1、经过编译,不在可以看到源代码。
2、功能选择不如源码包灵活
3、依赖性。指:当安装a时候,需要有b的支持,当安装b时,需要有c的支持。卸载的时候需要先卸载c然后卸载b,再卸载a。
RPM包管理 -rpm命令管理
RPM包命令规则
例如:httpd-2.2.15-15.el6.centos.1.i686.rpm
httpd 软件包名 包名指:这个包的英文名称:如:httpd 全名是全称。
2.2.15 软件版本
15 软件发布的次数
el6.centos 适合的Linux平台
i686 适合的硬件平台 如果此处是x64则表示:只可以安装在64位操作系统上。
rpm rpm包扩展名。这个rpm扩展名是给管理员看,表明是什么文件。
注意:有些命令只能跟包名,有些命令必须跟包全名。如果写错了,这个命令将不能正确执行。
RPM包依赖性:
树形依赖: a>b>c
最典型。
安装时候:先安装c,再安装b,再安装a。卸载的时候,先卸载 a,再卸载b,再卸载c。
环形依赖:a>b>c>a
这时候:将abc用一条命令全部安装即可解决环形依赖。
模块依赖: 模块以来查询网站:www.rpmfind.net
注意: 只要以:.so.2:点so点数字结尾的,都是库依赖。这种库依赖包,不是单独独立的包,是某一个软件包中的一个软件。所以只要把这个库依赖包的软件包安装后,这个库依赖就会自动安装。
RPM包管理-yum在线管理
这个就是为了解决依赖性的。
可以做一个包含所有rpm包的网站作为在线服务器源。只要运行 -yum 就会自动从服务器下载依赖的库等。
有个问题:除了拿网络作为服务器源外,还可以拿本地光盘作为 yum源。如果是readHead系列收费,他认为yum是他的售后服务 。
centos 是免费的,yum也是免费的。
包全名与包名:
包全名:操作的包是没有安装的软件包时,使用包全名。而且要注意路径。
一般:安装和升级的时候,使用包全名。操作的是未安装包,所以使用全名。
包名:操作已经安装的软件包时,使用包名。是搜索 /var/lib/rpm/中的数据库。
/var/lib/rpm/ 都是二进制文件。如:查询、卸载。所以只写包名即可。
RPM安装:--可以手工指定安装位置,但是会带来比较麻烦的问题。比如:服务命令就会找不到rpm包安装的功能或服务。因为很多服务搜索的位置都是默认的,如果这时候手工指定,未使用默认,会带来管理上的不方便。
rpm -ivh 包全名 --- 一般都会使用 -ivh
选项: -i(install) 安装
-v(verbose) 显示详细信息
-h(hash) 显示进度
--nodeps 不检测依赖性(安装时,是不行的。)可以在实验的时候安装。
RPM包升级
rpm -Uvh 包全名
选项: -U (upgrade ) 升级。
RPM 卸载:
rpm -e 包名
选项: -e(erase) 卸载
--nodeps 不检查依赖性。
注意: -yum安装的,都可以通过rpm的命令查询。
查询是否安装:
[root@localhost ~]# rpm -q 包名
查询包是否安装
选项: -q 查询(query)
[root@localhost ~]# rpm -qa
查询所有已经安装的RPM包
选项: -a 所有(all)
查询软件包详细信息:
[root@localhost ~]# rpm -qi 包名
选项: -i 查询软件信息(information)
-p 查询未安装包信息(package)
查询未安装包信息:rpm -qip 包全名 --- 用到的不多。
注意:安装、升级,后跟包全名。
查询包中文 文件安装位置:
[root@localhost ~]# rpm -ql 包名
选项: -l 列表(list)
-p 查询未安装包信息(package)
注意:包中的安装位置是在组件这个包的时候就决定的。 如果查询安装位置时,即使没有安装也会查看到这个包打算把文件装哪里的。
查询系统文件属于哪个RPM包
[root@localhost ~]# rpm -qf 系统文件名
选项: -f 查询系统文件属于哪个软件包(File)
注意:这个file必须是包出来的,不是手工创建的。比如:手工创建的,或系统自动生成的一些临时文件,日志文件,这些都不是包出来的,所以无法查询所在哪个RPM包。
查询软件包的依赖性
[root@localhost ~]# rpm -qR 包名
选项: -R 查询软件包的依赖性(requires)
-p 查询未安装包信息(package)
RPM包校验
[root@localhost ~]# rpm -V 已经安装的包名
选项:
-V 校验制定RPM包中的文件(verify)
校验:装完RPM包把特征记录下来 ,需要的时候,把现在的文件与先前记录的文件进行比较,判断是否有变化,而做了修改。 判断文件是否被更改过。
验证内容中的8个信息的具体内容如下:
S 文件大小是否改变
M 文件的类型或文件的权限(rwx)是否被改变
5 文件MD5校验和是否改变(可以看成文件内容是否改变)
D 设备的中,从代码是否改变
L 文件路径是否改变
U 文件的属主(所有者)是否改变
G 文件的属组是否改变
T 文件的修改时间是否改变
其中的c是文件类型:
c 配置文件(config file)
d 普通文档(documentation)
g “鬼”文件(ghost file),很少见,就是该文件不应该被这个RPM包 包含
如果在某个包中出现了,则这个文件需要认真对待一下了。
l 授权文件(license file)
r 描述文件(read me)
RPM包中 文件提取: 制定的文件---主要是误操作,修复。
[root@localhost ~]# rpm2cpio 包全名 | \ cpio -idv.文件绝对路径
任凭mcpio 将RPM包转换为 cpio 格式的命令
cpio 是一个标准工具,他用于创建软件档案文件和从档案文件中提取文件。
[root@localhost ~]# cpio 选项<[文件|设备] --- <输入重定向
选项: -i copy-in模式,还原
-d 还原时自动新建目录
-v 显示还原过程
情景:当误操作了包中的某个文件时。查找这个文件是哪个包的,然后从新提取包中的文件,替换即可。
提取包中的某个文件。例如:
RPM包管理 -yum在线管理:都是RPM包管理,没有yum包。
最主要的好处:解决依赖性。
IP地址配置和网络yum源
setup配置IP地址:
这样设置将永久生效。
网络yum源 只要是.repo结尾的都是合法的yum源
本地yum源位置及介绍: 这个yum源都是配置好的,不需要更改。
[root@localhost ~]# vi /etc/yum.repos.d/CentOS-Base.repo
[base] 容器名称,一定要放在[]中
name 容器说明,可以自己随便写
mirrorlist 镜像站点,这个可以注释掉
baseurl 我们的yum源服务器的地址。默认是CentOS官方的yum源服务器,是可以使用的,如果觉得慢可以改成喜欢的yum源地址。
enabled 此容器是否生效,如果不写或携程enable=1 都是生效,写成enable=0就是不生效
gpgcheck 如果是1是指RPM的数字证书生效,如果是0则不生效
gpgkey 数字证书的公钥文件保存位置,不用修改。
yum命令:
查询:
[root@localhost yum.repos.d]# yum list
查询所有可用软件包列表 --- 这个命令是到远程服务上查询的。所以在本机任何位置执行都可以,前提是Linux可以链接互联网。
[root@localhost yum.repos.d]# yum search 关键字
搜索服务器上所有和关键字相关的包 --- 这里的关键字,是报名
注意:包名与包全名只在 -rpm命令管理时要求。
安装:
[root@localhost yum.repos.d]# yum -y install 包名
选项: install 安装
-y 自动回答yes
备注: yum -y install gcc --- gcc是C语言的编辑器,源码包安装的时候必须要有gcc的存在,源码包才可以正常安装
升级:
[root@localhost yum.repos.d]# yum -y update 包名 ---慎重使用。
如果后面不加 包名:则表示:升级所有的软件包,包括Linux的内核。
注意:Linux内核升级后需要在本地做一定配置才可以使用的。如果远程执行了升级,则服务器将无法开机。会导致崩溃
选项: update 升级
-y 自动回答yes
卸载:
[root@localhost yum.repos.d]# yum -y remove 包名
选项: remove 卸载
-y 自动回答yes
注意: 当使用 yum 卸载的时候可能出现问题。原因:因为yum卸载的时候会把相互依赖的包也会卸载,可能会导致系统依赖的包也会卸载,从而导致一些问题的发生。系统崩溃,或一些重要命令不能使用
服务器安装原则声明:安装的时候最小化安装,不安装多余软件,使用什么软件,安装什么软件,手工装,尽量不卸载。尤其是 yum 卸载,尽量不要多用。
YUM软件组管理命令:
[root@localhost ~]# yum grouplist
列出所有可用的软件组列表
[root@localhost ~]# yum groupinstall 软件组名
安装指定软件组,组名可以有grouplist查询出来
[root@localhost ~]#yum groupremove 软件组名
卸载制定软件组
注意:如果组名称中有空格,应用“”括起来。英文在系统中使用命令可以查看
光盘yum源搭建: 对服务器来讲:主要考虑:稳定、安全。可能较老的软件包更为使用广泛。在平常工作中,还是经常用光盘作为yum源。
首先创建挂载点: mkdri /mnt/cdrom
挂载光盘:
[root@localhost ~]# mount /dev/sr0 /mnt/cdrom
查看挂载:
[root@localhost ~]# mount
打开:
[root@localhost ~]# vim CentOS-Media.repo
好处: 加载快,访问方便。没有网络也可以使用。
缺点:软件的版本不能有更新,更多的版本。光盘中的是固定的。
每次用yum时候,光盘必须正确挂载。
注意:Linux中有些配置文件是严格要求格式的,比如:#必须在行首,行中间位置是无法识别注释的。
如果有修改过后报错,检查配置文件格式。
yum list | more
源码包和RPM包的区别:
RPM包安装位置;绝大多数RPM包默认安装的位置。
/etc/ 配置文件安装目录
/usr/bin/ 可执行的命令安装目录
/usr/lib/ 程序所使用的函数库保存位置
/usr/share/doc/ 基本的软件使用手册保存位置
/usr/share/man/ 帮助文件保存位置
源码包安装位置:
安装在指定位置当,一般是
/usr/local/软件名/
安装位置不同带来的影响:影响服务:启动,关闭,重启动
RPM包安装的服务可以使用系统服务管理命令(service)来管理,例如RPM包安装的apache的启动方法是:
/etc/rc.d/init.d/httpd start
service httpd start
在Linux中,要启动一个执行文件,应该是:使用一个绝对路径。
而源码包安装的服务则不能被服务管理命令管理,因为没有安装到默认路径中。所以只能用绝对路径进行服务的管理,例如: /usr/local/apache2/bin/apachectl start
源码包,安装准备:
源码包最大的问题:一旦报错很难解决
安装C语言编译器
下载源码包:
http://mirror.bit.edu.cn/apache/httpd
备注: yum -y install gcc --- gcc是C语言的编辑器,源码包安装的时候必须要有gcc的存在,源码包才可以正常安装
安装注意事项:
1、源代码保存位置:/usr/local/src/
2、软件安装位置:/usr/local/
3、如何确定安装过程报错:
a、安装过程停止; 只要停止就看接下来的报错信息。
b、并出现error、warning或no的提示
备注:当安装一个源码包的时候,都是进入到在解压缩后的目录中进行操作的,其中INSTALL为:安装说明。README:使用说明。
源码包安装中---./configure 软件配置与检查:主要进行3个功能。
使用命令: ./configure --help
1、定义需要的功能选项
2、检测系统环境是否符合安装要求
3、把定义好的功能选项和检测系统环境的信息都写入Makefile 文件,用于后续的编辑。
其中: make 编译
make install 编译安装
这2个命令都依赖 Makefile 文件。
执行完这个命令,make make install 才可以使用。
注意:在执行了 ./configure 和 make 命令后并没有在指定的文件中生成对应的目录。如果想在此时卸载,执行:make clean 就可以实现清空软件包,不会影响后续编译。但是,make install之后才会向目录当中写入数据。
源码包卸载:
必须要卸载命令,直接删除安装目录即可,不会一流任何垃圾文件。
脚本安装包:
1、脚本安装包 并不是独立的软件包类型,常见安装的是源码包
2、是认为把安装过程携程了自动安装的脚本,只要执行脚本,定义假单的参数,就可以成功安装。
3、非常类似与Windows下软件的安装方式。
备注:在Linux中脚本安装包,主要是一些硬件的驱动。因为硬件驱动在Linux中安装比较困难,所以一些厂商会对硬件驱动开发脚本安装包。
Webmin的作用:
Webmin 是一个基于Web的Linux系统管理界面。可以通过图形化的方式设置用户账号、Apache、DNS、文件共享等服务。
1、下载软件:
http://sourceforge.net/projects/webadmin/files/webmin/
2、解压缩,并进入解压缩目录。
3、执行安装脚本
其中安装脚本是:setup.sh
注意:如果在次操作中误输入了,需要按 Ctrl+退格键。