Linux 软件包管理

软件包管理:

二进制软件包 RPM包  -- rpm、yum
源代码包 .tar.gz .tar.bz2
1、标准安装
2、脚本安装
sudo-1.7.2pl-5.el5.i386.rpm
软件名-版本号-发行号-CPU-后缀名
           version release
硬件平台:x86、ppc(powerpc)、alpha
cat /proc/cpuinfo     cpu family      : 6
RedHat系Linux默认几乎所有的系统文件都是通过光盘RPM安装
卸载软件包:

rpm -e 软件名
安装软件包:

rpm -ivh 软件包名  (-i就可以了)

-i——安装

-v——详细信息

-h——以#显示安装进度

创建挂载点(空目录)
mkdir /mnt/cdrom       mnt-mount
mount /dev/cdrom /mnt/cdrom
            设备名          挂载点
umount /mnt/cdrom  或者 eject(卸载光盘并弹出)

查找软件包:  (从光盘镜像里)

ls /mnt/cdrom/CentOS | grep sudo

ls /mnt/cdrom/CentOS | grep mysql

软件包查询:  (查找软件有没有安装)

rpm -q sudo   (查询sudo有没有安装,如果有显示安装包名称)
rpm -qa | grep mysql  (-qa显示所有安装包,检索只有mysql的)

软件包升级:

rpm -U 软件包  (U=update)

软件包存放位置:光盘/linux发行版名称
yum包管理,老师推荐的,自动安装依赖关系的包

安装:

yum install 软件名  (-y自动安装,自动上网连接服务器下载yum包安装)

升级:

yum update 软件名

yum check-update sudo  (查看互联网最新的sudo安装包)

卸载:

yum remove 软件名

如:yum remove glibc-devel  (自动检测依赖关系自动卸载)

yum源配置:去哪找rpm包的地方

CentOS-Base.repo-指定linux互联网的yum源,默认
CentOS-Media.repo-设置光盘为yum源

改光盘为yum源:

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

①baseurl  file:///mnt/cdrom

②enabled = 1  (启用)

移动或者改名CentOS-Base.repo

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

推荐:安装、升级、卸载使用yum ;校验、查询、文件提取使用rpm
rpm查询:
-a——all查询所有已安装的软件包
-f——file查询文件所属的软件包
-p——package查询软件包
-i——information显示软件包信息
-l——list显示软件包中所有文件
-d——document显示文档文件
-c——configure显示配置文件

每个RPM安装到系统建立信息到RPM数据库
查询文件隶属RPM包:

rpm -qf 文件名

rpm -qf /etc/inittab

查询软件包信息:

rpm -qi 软件名 (已安装软件)

rpm -qi sudo
rpm -qip 软件包名  (未安装软件也可查询)

rpm -qip /mnt/cdrom/CentOS/zenity-2.16.0.2.e15.i386.rpm

查询软件包安装文件:

rpm -ql 软件名

rpm -ql sudo  (列出sudo所有文件)
rpm -qlp 软件包名

rpm -qlp 软件包路径  (查看软件包安装之前将要安装的文件)

查看软件包帮助:

rpm -qd 软件名
rpm -qdp 软件包名  (查看软件包帮助文档存放目录)

查看软件包配置文件:

rpm -qc 软件名

rpm -qc httpd

rpm -qc httpd | grep httpd.conf

rpm -qcp 软件包名  (查看软件包配置文件存放目录)
安装目录:
etc -- 配置文件
bin -- 命令
sbin -- root可以执行命令
libexec/lib -- 模块文件或库文件
doc -- 文档
man -- 帮助
var -- 临时信息文件
示例文件的名称:example  sample

案例:.vimrc注释#出问题
[root@localhost cdrom]# rpm -qa | grep vim
vim-minimal-7.0.109-6.el5
vim-common-7.0.109-6.el5
vim-enhanced-7.0.109-6.el5
[root@localhost cdrom]# rpm -ql vim-minimal | grep vimrc
[root@localhost cdrom]# rpm -ql vim-common | grep vimrc
/etc/vimrc
/usr/share/vim/vim70/gvimrc_example.vim
/usr/share/vim/vim70/vimrc_example.vim
[root@localhost cdrom]# vi /usr/share/vim/vim70/vimrc_example.vim
校验软件:

rpm -V 软件名称  (如果软件文件有任何变动的话会有详细信息列表)

校验文件:

rpm -Vf 文件

missing -- 文件丢失
M -- 权限改变 mode
U -- 所有者改变 user
G -- 所属组改变 group
5 -- 文件被改动 md5校验值    md5sum    winmd5
T -- 修改时间更新 time
S -- 文件大小变化 size
L -- 链接文件更新 link
D -- 设备文件变化 device
RPM包文件提取
rpm -qf /bin/chmod  判断这个命令属于哪个包
coreutils-5.97-23.el5_4.2
提取文件:

rpm2cpio /mnt/cdrom/CentOS/coreutils-5.97-23.el5_4.2.i386.rpm | cpio -idv ./bin/chmod

rpm2cpio RPM包路径 | cpio -idv 加点提取到当前目录,这里填要提取到的目录
-i 导出 -d 保留目录结构 -v 详细信息
思路:①先确定这个命令所在的rpm包;②再提取这个包到指定目录,完成提取
案例: /etc/inittab误删除恢复
1、进入光盘修复模式  linux rescue
2、修复步骤
a. 恢复硬盘linux目录结构   chroot /mnt/sysimage
b. 查看丢失文件所在RPM包   rpm -qf /etc/inittab
c. 挂载光盘   mount /dev/hdc /mnt/cdrom

/dev/cdrom 软链接,在光盘修复模式中失效,其真实地址为  /dev/htc
ls -l /dev/cdrom
d. 提取恢复文件  rpm2cpio /mnt/cdrom/CentOS/initscripts.... | cpio -idv ./etc/inittab
e. exit 退出chroot状态
    exit 退出光盘修复模式

源代码包安装:  (标准安装,所有linux/unix通用)
proftpd-1.3.3d.tar.gz——源代码包示例
1、无关硬件平台
2、定制灵活
缺点:安装慢
①需要先确定编译工具gcc、make已经安装(gcc-c++)

rpm -q make

rpm -q gcc
②Windows软件传到Linux:SSH.Secure.Shell.Client   Quick Connect
启动ftp服务:service vsftpd start

windows命令行模式下:

ftp> bin  切换到二进制传输模式
ftp> put 
1.解压解包

tar -zxf 源码包路径,再进入源代码包目录
2.配置

./configure --prefix=/usr/local/proftpd
--prefix=指定安装目录  /usr/local/软件名
搜集系统软硬件信息,生成makefile
3.编译

make
源代码编译成可执行文件
4.安装

make install
拷贝、设置权限
rpm/yum只能查询或管理通过RPM包安装的软件
卸载源代码包:
1、关闭服务
2、直接删除安装目录   rm -rf /usr/local/proftpd
非标准的源代码包:

示例:webmin

①解压解包

②它没有configure这个文件,查看源代码包目录下 README、INSTALL,找安装说明

③找到了setu.sh这个安装脚本,运行./setup.sh
webmin  端口号10000
/etc/rc.d/init.d/webmin
/etc/webmin/uninstall.sh

源码包安装是否成功检测:

①指定安装目录有没有文件生成

如:proftpd的目录 /usr/local/proftpd

②运行命令,一般放在bin或者sbin里,root为sbin

如:执行 /usr/local/proftpd/sbin/proftpd

③检索proftpd示例的进程

ps -le | grep proftpd

④终止进程

kill PID数字号

你可能感兴趣的:(包,源代码,version,软件,release)