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:80ftp:2021ssh: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