在主机中安装了Linux操作系统之后,就具备了提供软件服务,网络服务等功能的基础。然而随着操作系统一起安装的软件包毕竟只有少数,实现的功能也比较有限,当需要为主机提供更多功能时,安装新的应用程序就成为必然要面对的工作。
RPM软件包管理机制最早由Red Hat公司提出,后来随着版本的升级逐渐融入了更多的优秀特性,成为众多Linux发行版中公认的软件包管理标准。
RPM包管理器通过建立统一的文件数据库,对在Linux系统中安装,卸载,升级的各种.rpm软件包进行了详细的记录,并能够自动分析软件包之间的依赖关系,保持各个应用程序在一个协调没有虚的整体环境中运行。
RPM Package Manager由Red Hat公司提出,被众多Linux发行版所采用建立统一的数据库文件详细记录软件包安装,卸载等变化信息自动分析软件包依赖关系 RPM机制封装的软件包文件拥有约定俗成的命名格式,一般使用“软件名 - 软件版本 - 发布次数.操作系统类型.硬件架构类型.rpm”的文件名形式。例如:使用rpm命令的查询功能可以检查某个软件包是否已经安装,了解软件包的用途,软件包复制到系统中的文件等各种相关信息,以便更好地管理Linux系统中的应用程序。
使用“-qp”选项时,必须以RPM包文件的路径作为参数(可以有多个),而不是软件包名称。
命令都与“-q”类似
使用命令的基本格式 rpm -qp[子选项] RPM包文件 常用选项有以下几种 -qpi -qpl -qpc -qpd使用rpm命令安装软件包时,需要指定完整的包文件名作为参数(可以有多个)
而卸载软件包时,只需要指定软件名称即可。
若要一次性安装多个RPM软件包,可以使用通配符“*”,这种方式在安装存在相互依赖关系的多个软件包时特别有用,系统会自动检查依赖性并决定安装顺序,而无需管理员去判断应该先装哪一个包。
在安装一个新的软件包时,通常使用“-ivh”的组合选项,这样便于了解软件安装的过程信息,及时跟踪安装进度。
若是使用新版本的软件包替换旧版本的软件包,只需将“-i”替换成“-U”即可。
命令使用格式 rpm [选项] RPM包文件 常用选项有 -i -U -F用于记录在Linux系统中安装,卸载,升级应用程序的相关信息,由RPM包管理系统自动完成维护,一般不需要用户干预。当RPM数据库发生损坏(误删文件,非法关机,病毒破坏等导致),且Linux系统无法自动完成修复时,当导致无法使用rpm命令正常的安装,卸载及查询软件包。
这时候可以使用rpm命令的“–rebuilddb”或“–initdb”功能对RPM数据库进行重建。
例如 [root@localhost~]#rpm --rebuilddb 或者 [root@localhost~]#rpm --initdb db的意思是数据库(database) init的意思是初始化前提:Windows被挂载的文件需要开启共享,共享功能需要设置好。
smbclient:在计算机上,可以使用 smbclient 实用程序列出到共享的连接
例如:查看共享计算机的共享文件 [root@localhost ~]# smbclient -L //192.168.100.3/ Enter SAMBA\root's password: Sharename Type Comment --------- ---- ------- ADMIN$ Disk 远程管理 C$ Disk 默认共享 D$ Disk 默认共享 E$ Disk 默认共享 F$ Disk 默认共享 G$ Disk 默认共享 IPC$ IPC 远程 IPC Users Disk ccc Disk Reconnecting with SMB1 for workgroup listing. do_connect: Connection to 192.168.100.3 failed (Error NT_STATUS_RESOURCE_NAME_NOT_FOUND) Failed to connect with SMB1 -- no workgroup available 例如:将Windows共享文件ccc挂载到Linux /etc/sss [root@localhost ~]# mount.cifs //192.168.100.3/ccc /etc/sss Password for root@//192.168.100.3/ccc: 查看是否挂载成功 我们用df -h查看是否挂载成功 [root@localhost ~]# df -h 文件系统 容量 已用 可用 已用% 挂载点 /dev/sda2 20G 3.3G 17G 17% / devtmpfs 898M 0 898M 0% /dev tmpfs 912M 0 912M 0% /dev/shm tmpfs 912M 9.0M 903M 1% /run tmpfs 912M 0 912M 0% /sys/fs/cgroup /dev/sda5 10G 37M 10G 1% /home /dev/sda1 6.0G 174M 5.9G 3% /boot tmpfs 183M 12K 183M 1% /run/user/42 tmpfs 183M 0 183M 0% /run/user/0 //192.168.100.3/ccc 444G 2.6G 441G 1% /etc/sss 解除挂载的命令 [root@localhost ~]# umount /etc/sss 查看是否解除挂载 [root@localhost ~]# df -h 文件系统 容量 已用 可用 已用% 挂载点 /dev/sda2 20G 3.3G 17G 17% / devtmpfs 898M 0 898M 0% /dev tmpfs 912M 0 912M 0% /dev/shm tmpfs 912M 9.0M 903M 1% /run tmpfs 912M 0 912M 0% /sys/fs/cgroup /dev/sda5 10G 37M 10G 1% /home /dev/sda1 6.0G 174M 5.9G 3% /boot tmpfs 183M 12K 183M 1% /run/user/42 tmpfs 183M 0 183M 0% /run/user/0Linux操作系统之所以能够在十余年的时间里发展壮大以至于风靡全球,其开放源代码的特性是很重要的原因之一,及Linux操作系统中包括内核在内的所有软件都可以获得源代码,并且可以经过定制修改后编译安装。
虽然现代的Linux发行版本大部分采用包管理机制对软件进行打包安装,可以省去软件的编译安装过程,但是还有些情况需要使用源代码编译的方式为系统安装新的应用程序。
安装较新版本的应用程序时大多数的Linux发行版都提供了相当丰富的应用程序,而这些应用程序的版本往往滞后于该软件的最新源代码版本,所以下载应用程序的最新源代码包并编译安装,可以在程序功能,安全补丁等方面得到及时更新。 当前安装的程序无法满足应用需求时对于RPM格式封装的应用程序,一般只包含了该软件所能实现的一小部分功能,而难以由用户自行修改,定制。通过对程序的源代码进行编译安装后,可以定制更灵活,更丰富的功能。许多Linux服务器程序都采用源代码编译的方式进行安装,以获得更适合于企业实际应用需求的服务。 为应用添加新的功能时当需要利用现有的程序源代码进行适当的修改,以便增加新的功能时,必须释放出该软件的源代码,修改后再重新编译安装。 使用源代码安装软件的优点获得最新的软件版本,及时修复bug根据用户需要,灵活定制软件功能 编译源代码需要有相应 的开发环境,对于自由软件来说,gcc和make是最佳的编译工具。Linux系统采用默认安装后没有安装gcc,我们可以使用rpm命令来安装gcc。所需的软件包在镜像文件中就有提供。 yum install gcc gcc-c++ -y开源软件的源代码包一般为TarBall形式,扩展名为“.tar.gz”或“.tar.bz2”,都可以使用tar命令进行解压。
在Linux系统中,通常将各种软件的源代码目录保存到“/sur/src”目录中,便于集中管理。
解包习惯上将软件包解压到/sur/src/目录中解包后源代码文件位置:/usr/src/软件名-版本号/ 将httpd-2.2.6.tar.gz文件解包到/usr/src/目录中 [root@localhost~]#tar zxvf httpd-2.2.6.tar.gz -C /usr/src/在编译应用程序之前,需要进入源代码目录,对软件的安装目录,功能选择等参数进行配置。
在Linux系统中通过源代码方式安装软件时,也可以将所有程序文件安装到同一个文件夹,当需要卸载软件时,只需将该文件夹删除即可。
配置配置工作通常使用源码目录中的configure脚本完成执行“./configure --help”可查看帮助典型的配置选项:–prefix=软件安装目录(指定软件包安装的目标文件夹) 将软件包httpd-2.2.6安装到/usr/src/local/apache [root@localhost~]#cd /usr/src/httpd-2.2.6/ [root@localhost~]#./configure --prefix=/usr/local/apache编译的过程主要是根据Makefile文件内的配置信息(若上一步的配置操作失败,将无法进行编译),将源代码文件进行编译而生成二进制的程序模块,动态链接库,可执行文件等。
配置完成后,只需要在源代码目录中执行“make”命令即可执行编译操作。