Linux 软件包管理
? 简介
本文主要介绍 Linux 软件包的管理,包括如下内容:
目录
可以看到,示例文件中并不是以 # 号注释,而是使用"(双引号)
5) 校验
校验的作用:解决比如黑客侵入系统,获取其他人将软件文件修改,删除,导致软件运行不了。这时就需要使用到校验功能。
语法:# rpm -V 软件名称
示例:
# rpm -V sudo #首先校验 sudo 软件包(无返回内容)
说明:在无任何改动的情况下,是不没有返回内容的(这是正常的)
# vi /etc/pam.d/sudo #模拟将 sudo 的配置文件进行修改
# rpm -V sudo #再次校验 sudo 软件包
S.5....T. c /etc/pam.d/sudo #返回内容
n 以上值分别代表的改变项:
1. 5 文件的 md5 校验值
2. S 文件的大小
3. L 链接文件
4. T 文件的创建或修改时间
5. D 设备文件
6. U 文件的用户
7. G 文件的用户组
8. M 文件的权限
说明:为什么 RPM 软件包可以校验?是因为 rpm 软件包安装到系统后,会自动生成一个 rpm 库,校验时会与 rpm 库进行比较,得出校验的值。
6) 软件包文件提取
如果不小心把系统中的配置文件或命令删除掉了,可以通过软件包文件提取的方式,恢复丢失的文件。
示例:将 sudo 中的 sudo-i 配置文件删除后,再从软件包中恢复。
# rpm -ql sudo | grep etc #查找 etc 下的配置文件
/etc/pam.d/sudo-i #以 sudo-i 为例
# rm -f /etc/pam.d/sudo-i #删除 sudo-i
# rpm -q sudo #确定 sudo 属于哪个软件包
sudo-1.8.23-3.el7.x86_64
[root@localhost /]# mkdir backup #创建解压目录
[root@localhost backup]# rpm2cpio /mnt/cdrom/Packages/sudo-1.8.23-3.el7.x86_64.rpm | cpio -idv ./etc/pam.d/sudo-i #解压到当前目录(/backup/etc/pam.d)
[root@localhost backup]# cp etc/pam.d/sudo-i /etc/pam.d/sudo-i #拷贝恢复文件
[root@localhost /]# rm -rf backup #删除临时目录
http://www.proftpd.org/
2. 第二步:下载后上传至系统 /home/abream/learn 目录下
/home/abream/learn/proftpd-1.3.6c.tar.gz
分别表示:proftpd 软件名称;1.3.6c 版本号;tar.gz 压缩格式
3. 第三步:解压缩到当前目录
[root@localhost learn]# tar -xzvf proftpd-1.3.6c.tar.gz
4. 第四步:进入到解压目录(proftpd-1.3.6c)
[root@localhost proftpd-1.3.6c]# ls
标准的源代码包中都会有一个 configure 的可执行脚本。
5. 第五步:配置
与 rpm 二进制包不一样,源代码包没有专门的卸载命令,所以安装前建议指定安装目录。通常情况下,源代码包建议安装在 /usr/local 目录下,然后再加一个以软件名命名的目录,例如:/usr/local/proftpd
[root@localhost proftpd-1.3.6c]# ./configure --prefix=/usr/local/proftpd
以上提示错误信息:表示在系统的 $PATH (缺省路径)中,没有找到 C 的编译器,配置终止了。如果存在其他错误,注意看提示信息!如果存在缺少的软件包,安装上即可。
C 编译器广泛采用的是 gcc,下面就安装下 gcc 的编译器。而 gcc 依赖于很多库文件,所以建议采用 yum 来进行安装。
[root@localhost proftpd-1.3.6c]# yum install gcc
提示:
1) 因为源代码是 C 语言写的,所以必须有一个 C 的编译器才能安装;
2) C 编译器装 cc 或者其他的都是可以的,只是 gcc 用的比较广泛。
gcc 安装完成后,再次执行配置
[root@localhost proftpd-1.3.6c]# ./configure --prefix=/usr/local/proftpd
显示以上提示,表示配置这个步骤已经完成了。
6. 第六步:编译
[root@localhost proftpd-1.3.6c]# make
编译成功后,会在当前目录中生成对应的可执行文件,提供按安装。
7. 第七步:编译安装
[root@localhost proftpd-1.3.6c]# make install
安装完成后,可以在安装目录下查看到安装目录和文件:
提示:
1) 直到这一步才真正将源代码包安装完成;
2) 最后一步(安装),其实就是将编译好的文件,拷贝到对应的目录中。
2) 卸载示例(proftpd)
# kill `pgrep proftpd` #关闭 proftpd 的进程
# rm -rf /usr/local/proftpd #删除安装的目录即可
http://webmin.com/
2. 第二步:下载后上传至系统 /home/abream/learn 目录下
/home/abream/learn/webmin-1.941.tar.gz
3. 第三步:解压缩到当前目录
[root@localhost learn]# tar -xzvf webmin-1.941.tar.gz
4. 第四步:查看安装说明文件
[root@localhost webmin-1.941]# ls -l | grep README
-rw-rw-r--. 1 3001 wheel 3801 1月 15 08:06 README.md
[root@localhost webmin-1.941]# cat README.md
在 Linux 中,如果不是标准的源代码安装方式,那么一定有一个说明文档,比如:README(请先读我)、INSTALL(安装说明)
5. 开始安装
[root@localhost webmin-1.941]# ./setup.sh #执行安装脚本
说明:确定配置文件目录,不改直接回车,如果要改则输入指定的目录。
说明:因为 webmin 是使用 perl 语言写的,安装会检查是否 perl 语言,如果没有安装将会终止。
说明:指定 webmin 的端口,例如:web service:80,ftp:20或21,ssh:22
安装过程中,会生成卸载 webmin 的脚本,后续需要卸载直接执行该脚本即可。
注意:当完成以上设置后,后续的编译安装过程都是自动完成的。
安装完成!用户名:admin,密码:admin
6. 访问 webmin
本机访问:http://localhost.localdomain:10000/
局域网访问:http://192.168.1.150:10000/
局域网如果无法访问,需要打开防火墙:
1) 进入 /etc/sysconfig/ 目录
2) 将端口加入信任规则中,执行命令:
iptables -I INPUT -p TCP –dport 10000 -j ACCEPT
2) 卸载示例(webmin)
# /etc/webmin/uninstall.sh #执行卸载脚本
6. Debian 系 Linux 软件包管理介绍(APT 包管理)
1. 搜索软包 apt-cache search
2. 软件包信息 apt-cache show
3. 安装 apt-get install(reinstall、-f)
4. 删除 apt-get remove(autoremove、--purge)
5. 更新软件源 apt-get update
6. 更新已安装包 apt-get upgrade