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数字号

本文转自 rebelxuan 51CTO博客,原文链接:http://blog.51cto.com/nizhuan/724139



相关文章
|
3月前
|
算法 安全 Ubuntu
Linux下的软件包管理器有哪些
Linux下的软件包管理器有哪些
195 5
|
6月前
|
安全 Linux
Linux通配符及其在文件搜索和管理中的应用
Linux通配符及其在文件搜索和管理中的应用
|
4月前
|
Linux 开发工具 存储
Linux软件包管理
Linux软件包管理
60 0
|
6月前
|
Linux
入职必会-开发环境搭建37-Linux常用操作-Linux服务管理
系统启动以后一直存在且常驻内存没有界面的进程就是服务。Linux系统中的所有服务都保存在下列目录中:/usr/lib/systemd/system,进入该目录就能看到所有的服务。
入职必会-开发环境搭建37-Linux常用操作-Linux服务管理
|
5月前
|
Ubuntu Linux 数据库
在Linux中,如何进行软件包升级?
在Linux中,如何进行软件包升级?
|
5月前
|
Ubuntu Linux 数据库
在Linux中,如何更新软件包?
在Linux中,如何更新软件包?
|
5月前
|
Ubuntu Linux
在Linux中,如何查看安装了哪些软件包?
在Linux中,如何查看安装了哪些软件包?
|
5月前
|
安全 Ubuntu Linux
在Linux中,如何管理软件包的版本?
在Linux中,如何管理软件包的版本?
|
5月前
|
Ubuntu Linux 索引
在Linux中,APT和YUM软件包管理器的何区别?
在Linux中,APT和YUM软件包管理器的何区别?
|
5月前
|
Ubuntu Linux
在Linux中,在不同的Linux发行版中(如RPM-based和DEB-based)如何安装、升级、删除软件包?
在Linux中,在不同的Linux发行版中(如RPM-based和DEB-based)如何安装、升级、删除软件包?