程序安装及管理
- Linux 应用程序基础
Linux命令与应用程序的关系
1):文件位置
系统命令:一般在/bin和/sbin目录中,或为Shell内部指令
应用程序:通常在/usr/bin和/usr/sbin目录中
2):主要用途
系统命令:完成对系统的基本管理工作,例如IP配置工具
应用程序:完成相对独立的其他辅助任务,例如网页浏览器
3):适用环境
系统命令:一般只在字符操作界面中运行
应用程序:根据实际需要,有些程序可在图形界面中运行
4):运行格式
系统命令:一般包括命令字、命令选项和命令参数
应用程序:通常没有固定的执行格式
典型应用程序的目录结构
文件类型 | 保存目录 |
---|---|
普通执行程序文件 | /usr/bin |
服务器执行程序文件和管理程序文件 | usr/sbin |
应用程序配置文件 | etc |
日志文件 | /var/log |
应用程序文档文件 | /usr/share/doc |
应用程序手册页文件 | /usr/share/man |
- 常见的软件包封装类型
封装类型 | 说明 |
---|---|
rpm软件包 | 扩展名为“.rpm” |
deb软件包 | 扩展名为“.deb |
源代码软件包 | 一般为“.tar.gz”、“.tar.bz2”等格式的压缩包包含程序的原始代码 |
附带安装程序的软件包 | 在压缩包内提供install.sh、setup等安装程序或以“.bin”格式的单个执行文件提供 |
软件包封装类型包括rpm包. Deb包. 源代码包. 带安装程序的包。
源代码:程序员写好的初始代码,无法被计算机读取,需要被编译成二进制计算机语言,Linux中的C语言编译器为gcc。
3.RPM 包管理工具
RPM Package Manager
由Red Hat 公司提出,被众多Linux 发行版所采用
建立统一的数据库文件,详细记录软件包安装、卸载等变化信息,能够自动分析软件包依赖关系
RPM包含RPM数据库,RPM软件包文件和RPM命令三个部分
RPM软件包
软件素材参考:http://rpmfind.net / www.rpw.org
一般命名格式:软件名-软件版本-发布次数.操作系统类型.硬件架构类型.rpm
注意:执行“man rpm”命令可获得关于 rpm 命令的详细帮助信息
4.查询 RPM 软件包信息
1):查询已安装的rpm软件信息
语法:rpm -q[子选项] [软件名]
用法:结合不同的子选项完成不同查询
-qa:查看系统中已安装的所有RPM软件包列表
-qi:查看指定软件的详细信息(--info)
-ql:查询指定软件包所安装的目录、文件列表(--list)
-qc:仅显示指定软件包安装的配置文件
-qd:仅显示指定软件包安装的文档文件
-qf:查看指定文件或目录由那个软件包所安装(--file)
2):查询文件或目录属于哪个RPM 软件
语法:rpm - qf文件或目录名
3):查询未安装的RPM 包文件
语法:rpm - qp[子选项] RPM包文件
用法:结合不同的子选项完成不同查询
-qpi:通过.rpm包文件查看该软件的详细信息
-qpl:查看.rpm安装包内所包含的目录、文件列表
-qpc:查看.rpm安装包内包含的配置文件列表
-qpd:查看.rpm安装包内包含的文档文件列表
注意:使用r pm 命令只能查询通过 RPM方式安装的软件包信息用其他途径安装到系统中的软件包,rpm 命令将无法获取相关信息
-
安装、升级、卸载 RPM 软件包
安装或升级RPM软件
语法:rpm [选项] RPM包文件...
用法:不同选项适用于不同情况
-i:安装一个新的rpm 软件包
-U:升级某个rpm 软件,若原本未装,则进行安装
-F:更新某个rpm 软件,若原本未装,则放弃安装
-h:以“#”号显示安装的进度
-v:显示安装过程中的详细信息卸载指定的RPM软件
语法:rpm -e 软件名
--nodeps:删除软件包,即使有依赖关系的软件包任然安装在系统上
--test:不执行任何动作,只打印输出 - 维护RPM数据库
linux中保留了当前安装软件的数据库,该数据库位于/var/lin/rpm/目录中。使用file /var/lib/rpm/*命令查看目录内容,可以看到都是二进制形式的散列数据库文件。
查看数字签名
6.解决软件包依赖关系
安装有依赖关系的多个软件时:被依赖的软件包需要先安装;可同时指定多个.rpm 包文件进行安装
卸载有依赖关系的多个软件时:依赖其他程序的软件包需要先卸载;可同时指定多个软件名进行卸载
忽略依赖关系:结合“--nodeps”选项,但可能导致软件异常
举个栗子:演示vim-common和vim-enhanced软件包的卸载、安装过程,参考步骤如下:
1)首先正常卸载vim-common,应提示被vim-enhanced所依赖而失败
2)因此正常卸载顺序:先卸载vim-enhanced,然后再卸载vim-common
3)然后从光盘中重新安装这两个软件包,首先安装vim-enhanced,应提示需要先安装vim-common
4)因此正常安装顺序:先安装vim-common,然后再安装vim-enhanced,演示时也可以在一条rpm命令中同时指定这两个文件
—— 提醒注意:如果需要同时安装相互依赖的数十个.rpm软件包,可以结合Shell通配符“*”同时指定这些文件作为参数
执行rpm命令可以完成对rpm软件包的查询. 安装. 升级. 卸载等管理操作。
扩展:RPM相关注意事项
RPM软件包的先决条件可以运用命令行选项—requires和—provides直接查看
安装vsftpd的先决条件:命令rpm -q -requires vsftpd
显示软件包显性提供内容:命令rpm -q -provides vsftpd
显示vsftpd的安装脚本:命令rpm -q --scripts vsftpd
按时间顺序显示系统上安装的RPM包:命令rpm -qa –last
解决RPM的些常见问题(访问数据库)
Killall-9 rpm 命令杀死所有当前挂起的rpm进程
将RPM数据库目录(/var/lib/rpm/)中所有以 _db. 开头的文件删除
7.源代码编译概述
1):优点
获得最新的软件版本,及时修复bug;根据用户需要,灵活定制软件功能
2):应用场合举例
安装较新版本的应用程序时;自由软件的最新版本大都以源码的形式最先发布
当前安装的程序无法满足需要时;编译安装可由用户自行修改、定制功能
需要为应用程序添加新的功能时;用户可以重新配置、自由修改源代码,加入新的功能
8.编译安装源代码包
Tarball封包:.tar.gz 和.tar.bz2 格式居多;软件素材参考:http://sourceforge.net
完整性校验
md5sum校验工具;计算MD5校验和,并与官方提供的值相比较,判断是否一致
[root@localhost ~]# md5sum axel-1.0a.tar.gz
2d94c0b36b374834567f1fcec5f89119 (MD5校验和) axel-1.0a.tar.gz
对于下载回来的软件包文件,如果MD5校验和与官方提供的不一致,则说明该软件包在网络传输过程中可能被非法改动过
对于校验和不一致的软件包,应尽量不要使用,以免带来病毒、***等不安全因素
编译安装的基本过程
环境:需安装支持C/C++程序语言的编译器,如:gcc-4.4.7-4.el6、gcc-c++-4.4.7-4.el6 ;make-3.81-20.el6.……
过程:
步骤1. 解包:习惯上将软件包释放到/usr/src/ 目录;解包后的源代码文件位置: /usr/src/软件名-版本号/
步骤2. 配置:使用源码目录中的configure 脚本;执行“./configure --help” 可以查看帮助;典型的配置选项: --prefix=软件安装目录
在linux系统中通过源代码方式安装软件时,也可以将所有程序文件安装到同一个文件夹,如:(/configure—prefix=/usr/local/apache)中。
步骤3. 编译:执行make 命令
步骤4. 安装:执行make install 命令
在linux中编译源代码需要使用gcc. Make编译环境;从源代码安装应用程序的基本过程包括解包. 配置. 编译. 安装这四个步骤。
账号和权限管理
1.用户账号和组账号概述
用户帐号:
超级用户,即root用户:类似于Windows系统中的Administrator用户,非执行管理任务时不建议使用root用户登录系统
普通用户:帐号一般只在用户自己的宿主目录中有完全权限
程序用户:用于维持系统或某个程序的正常运行,一般不允许登录到系统。例如:bin、daemon、ftp、mail等
组帐号:
基本组(私有组):每一个账号至少属于一个组。
附加组(公共组):一个账号属于一个基本组后,再加入了另一个组。
UID和GID
UID(User IDentity,用户标识号)
GID(Group IDentify,组标识号)
注意:root用户的UID的固定值为0、root组帐号的GID号为固定值0 ;1~499的UID、GID默认保留给程序用户使用,普通用户/组使用的UID、GID号在500~60000之间
2.用户账号文件 /etc/passwd
保存用户名称、宿主目录、登录Shell等基本信息;每一行对应一个用户的帐号记录;所有用户都可以访问passwd文件中的内容,但只有root用户才能更改
Password文件配置七个字段的含义:账户名称;用户密码或密码占位符;用户账号的uid号;基本组账号的gid号;用户说明;宿主目录;登陆shell。
3.用户账号文件 /etc/shadow
保存用户的密码、账号有效期等信息;每一行对应一个用户的密码记录;文件的每一行内容包含九个用冒号“:”分隔的配置字段
shadow文件配置九个字段的含义:账户名称;md5值. 若为“*/!!” 表明此用户不能登陆,若为空则不需要密码;上次修改密码时间;密码最短有效天数,默认为0;密码最长有效天数,默认为99999;提前多少天警告用户口令即将过期,默认为7;密码过期多少天后禁用该账户;账号失效时间,默认为空,表示永久使用;保留字段。
1):useradd命令:添加用户账号
在rhel 6 中,使用useradd命令主要完成在/etc/passwd和/etc/shadow文件末尾添加该用户的账号记录;若未指定用户宿主目录,则在/home目录下创建与账号同名的宿主目录;若未指定用户所属的组,则自动创建与用户账号同名的基本组,保存在/etc/group. /etc/gshadow中。
语法:useradd [选项]... 用户名
常用命令选项
-u:指定UID 标记号
-d:指定宿主目录,缺省为/home/用户名
-e:指定帐号失效时间
-g:指定用户的基本组名(或UID号)
-G:指定用户的附加组名(或GID号)
-M:不为用户建立并初始化宿主目录
-s:指定用户的登录Shell
2):用户账号的初始配置文件
文件来源:新建用户帐号时,从/etc/skel目录中复制而来
主要的用户初始配置文件
~/.bash_profile:用户每次登录时执行
~/.bashrc:每次进入新的Bash环境时执行
~/.bash_logout:用户每次退出登录时执行
3):passwd命令:为用户账号设置密码
语法:passwd [选项]... 用户名
常用命令选项:-d:清空用户的密码,使之无需密码即可登录;-l:锁定用户帐号;-S:查看用户帐号的状态(是否被锁定);-u:解锁用户帐号
注意:通过password命令锁定的用户账号,将无法在登录系统(shadow文件中的对应密码字符串前将添加“!!”字符),只能由管理员来解除锁定。
4):usermod命令:修改用户账户属性
语法:usermod [选项]... 用户名
常用命令选项
-l:更改用户帐号的登录名称
-L:锁定用户账户
-U:解锁用户账户
以下选项与useradd命令中的含义相同(把指定改为修改即可): -u、-d、-e、-g、-G、-s
5):userdel命令:删除用户账号
语法:userdel [-r] 用户名
添加-r 选项时,表示连用户的宿主目录一并删除
- 组账号文件
/etc/group:保存组帐号基本信息;/etc/gshadow:保存组帐号的密码信息
1):groupadd命令:添加组账号
语法:groupadd [-g GID] 组账号名
2):gpasswd命令:添加. 设置. 删除组成员
语法:gpasswd [选项]... 组帐号名
常用命令选项:-a:向组内添加一个用户;-d:从组内删除一个用户成员;-M:定义组成员列表,以逗号分隔
3):groupdel命令:删除组账号
语法:groupdel组帐号名 (删除组帐号后,从/etc/group文件中将查不到相应的记录)
5.查询账号信息
id命令:用途:查询用户身份标识;语法:id [用户名]
groups命令:用途:查询用户所属的组;语法:groups [用户名]
finger命令:用途:查询用户帐号的详细信息;语法:finger [用户名]
users、w、who命令:用途:查询已登录到主机的用户信息
6.文件/目录的权限和归属
访问权限
读取r:允许查看文件内容、显示目录列表
写入w:允许修改文件内容,允许在目录中新建、移动、删除文件或子目录
可执行x:允许运行程序、切换目录
归属(所有权)
属主:拥有该文件或目录的用户帐号
属组:拥有该文件或目录的组帐号
7.设置目录和文件的权限chmod
语法1:chmod [ugoa] [+-=] [rwx] 文件或目录...(+、-、= 分别表示增加、去除、设置权限)(u、g、o、a 分别表示属主、属组、其他用户、所有用户(ugo的总和))(r,w,x权限字符可分别表示为8进制字符4,2,1,表示一个权限组合时需要将数字进行累加;如rwx=7,rw-r-r=644)
语法22:chmod nnn 文件或目录...(3位八进制数)
常用命令选项:-R:递归修改指定目录下所有子项的权限
8.设置目录和文件的归属chown
语法:chown 属主 文件或目录
Chown :属组 文件或目录
Chown 属主:属组 文件或目录
常用命令选项:-R:递归修改指定目录下所有文件、子目录的归属