一.链接文件的相关介绍:
链接文件分为硬链接文件和软链接文件 1.硬链接文件:所谓硬链接就是指同一分区不同目录中的文件指向的是同一个inode 创建硬链接的格式: ln [options] sourcefile destinationfile 如: ln init init2 注意:(1)硬链接不能跨分区存在,也不能对目录创建硬链接 (2)硬链接引用的是inode号,硬链接文件的inode号是一样的 (3)如果要删除硬链接,只是将硬链接的次数删除了,inode号不变,源文件不会删除 2.软链接文件:是一种特殊类型的文件,有箭头指向,是一个独立的文件,自身没有任何属性 它的大小只是引用路径的字符个数。 创建软链接文件格式:ln -s sourcefile destinationfile 注意:(1)软链接文件有自己的独立的inode号 (2)软链接可以跨分区存在,也可以对目录创建软链接 (3)软链接文件引用的是路径,不是inode号 (4)软链接文件的访问权限取决于源文件的权限,删除软链接文件,源文件不会被删除, 但是删除了源文件,软链接将不可使用,系统会使用红色闪动方式告诉你那是一个损坏的软链接文件。 (5)如果软链接的源文件被删除了,凑巧在源文件所在目录下又被创建了一个和源文件同名的文 件,那么被损坏的软链接就会转为正常,因为软链接引用的是路径,不是inode,只要路径在,就可用。 二.Linux软件包的安装 linux中的许多外围软件都是遵循GPL协定的,是开源的代码包,而将这些源代码包编译成二进制,并组织到一台计算机上 让它们运行起来,形成一个功能完善的操作系统,对大多数用户来说是很困难的。所以有很多发行商,在特定的平台上将这些 源码包编译成二进制形式,并提供相应的配置文件,帮助手册等,将它们打包成光盘,成为发行版。 Debian 是有名的linux发行商之一,这些发行商将这些源码包编译成二进制格式之后,提供一种管理工具,这种工具可以实现将 这些制作好的二进制格式的软件包以某种形式封装起来,这种封装起来的结构能实现对特定软件包的安装、卸载、查询、校验 升级等各种管理功能,这个管理工具就称为软件包管理器。 作为Linux发行商的Redhat提供的软件包管理工具rpm (Redhat Package Manager),有了这样一个软件包管理器,我们就可以 方便的使用一个命令来实现一个软件包的安装、卸载、查询、校验、升级,使软件包的安装在某种程度上变得很方便和简单,而一 个单独的rpm软件包的运行可能是独立的,也可能是和别的软件包有着依赖关系。这种依赖关系使得安装一个rpm包要同时安装其他 被rpm包所依赖的软件包,很费时费力,有时候甚至是循环依赖。rpm的依赖关系很让人头疼,阻碍了软件包管理的便捷性和发展。 后来陆续出现了一些前段工具,它们可以自动解决依赖关系,如yum 软件包的组成:二进制文件、配置文件、库文件、文档(包括man手册、info文档等等) 软件包的安装方式: 1.手动编译安装源代码,编译很困难,管理起来也很困难,对普通用户来说更是不太可能 2.使用专门的软件管理工具,二进制格式的软件包rpm,解压直接使用,但是制作和编译很困难 那么如何使用rpm来管理软件包,下面就开始介绍: 1.安装: rpm -i /path/rpm_package 直接安装 rpm -ivh /path/rpm_package 显示详细安装信息 rpm -ivh --nodeps(此选项是忽略依赖关系) /path/rpm_package 忽略依赖关系来安装软件包 2.卸载: rpm -e --nodeps rpm_packagename 忽略依赖关系强行卸载 3.升级: rpm -Uvh /path/rpm_package -U选项表示如果要升级的软件包老版本没有安装,就将其装上,如果老版本已经装上了,就升级 rpm -Fvh /path/rpm_package -F选项表示在升级前老版本的软件包必须已经安装了,否则无法升级 4.查询: rpm -q rpm_packagename 查询指定的软件包是否安装 rpm -qa 查询系统上所有安装的软件包 , -qa keyword(*,?) 如:rpm -qa *bash* 查询所有bash类的软件包 -qi rpm_packagename 显示软件包的摘要信息 -ql rpm_packagename 列出软件包生成列表信息 -qc rpm_packagename 只显示软件包安装后的配置文件 -qd rpm_packagename 显示软件包安装后的生成文档 -q --scripts rpm_packagename 显示软件包安装的时候执行了哪些脚本 -qf FILENAME 查询某个文件是由哪个软件包生成的 -q --changlog rpm_packagename 显示在制作过程中软件包发生了什么改变 也可以查询一个还没有安装的软件包的信息: rpm -qpi /path/rpm_package 摘要信息 -qpl /path/rpm_package 生成列表信息 -qpc /path/rpm_package 配置文件信息 -qpd /path/rpm_package 生成文档信息 5.校验: rpm -V rpm_packagename 当我们执行rpm -V rpm_packagename 后会出现一些"S......T"信息,这些信息所代表的意思: S : 文件大小发生改变 M : 权限和文件类型发生了改变 5 : 表示MD5的校验值发生了改变 D : 设备文件的主设备号和次设备号发生了改变 L : readlink的路径不匹配 U : 文件的属主发生了改变 G : 文件的属组放生了改变 T : 最近一次的修改时间发生了改变 6.软件包的验证: rpm -K packagename 如果验证通不过,说明还没有导入redhat官方的公钥,redhat官方的公钥在/etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release 路径下 导入公钥: rpm --improt /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release 此时如果再进行验证,就可以验证通过了。验证的签名有很多种,如dsa,sha1,md5,gpg等 如果不想验证信息摘要,可以这样: rpm -K --nodigest packagename 此时会忽略sha1和md5 如果不想验证签名,可以这样: rpm -K --nosignature packagename 此时会忽略dsa和gpg 三. yum :也是以一种软件包的安装工具,是rpm包的前端工具,能自动解决依赖关系,使用yum安装的软件包必须是rpm格式的。 1.yum客户端的配置文件由两部分组成:/etc/yum.conf 、 /etc/yum.repos.d/*.repo,以.repo结尾的,就是定义yum源指向的配置文件 通常只有一个。 使用格式: yum install /path/to/rpm_file 需要注意的是,此时的这个软件包(rpm_file)已经下载到本地了,它会自动解决依赖关系。前提是yum源已经配置好了,并且指定到特殊 的yum库,它会自动找到所依赖的软件包。 2.使用yum localinstall 安装软件包 格式:yum localinstall /path/to/rpm_file 当我们去安装一个第三方提供的rpm软件包,这个rpm软件包不在光盘当中,但是这个第三方rpm包会依赖于我们光盘上的某些rpm包时,我 们把我们的yum源配置好,并且指向系统光盘上的所提供的基本rpm包,使用yum localinstall 安装下载的第三方软件包时,它会自动解决 依赖关系。所以使用rpm装不了的软件包,使用yum localinstall 可以安装 注意:当我们使用yum localinstall 来安装某个软件包时,默认yum会检测这个软件包的来源合法性(检验其签名和完整性)如果没有导入 (如何导入前面有介绍)这个软件包制作者的公钥信息,就无法完成安装。 遇到这种情况有两种解决办法:(1)导入这个软件制作者的公钥信息,检测其合法性(2) 使用yum --nogegcheck localinstall ,不检测其签名 3.创建本地yum源方法: (1)事先创建一个目录,比如就是这个目录吧,/var/yum (2)将要当做yum源的软件包复制到该目录之下 (3)然后使用createrepo path 创建yum源,当然此时应该是 createrepo /var/yum 需要说明的是:此时如果你的createrepo 软件包没有安装,就无法使用createrepo 创建yum源,要安装之后才能创建本地yum源,安装createrepo 软件包很容易,可以使用系统光盘上自带的软件包安装它,安装方法如下: 如果你的系统光盘已经挂载到某个目录下,如/media/cdrom下 ,进入到这个目录下的Server目录,createrepo文件就在这个目录之下,直接使用 rpm命令就可以安装它。rpm -ivh createrepo-0.4.11-3.el5.noarch.rpm (4)切换到/var/yum/ 目录下,此时repodata目录已经存在了,repodata目录下已经有了filelists.xml.gz、other.xml.gz、primary.xml、repomd.xml 四个必备文件。 (5)切换到/etc/yum.repos.d/目录下,创建一个以.repo结尾的文件(其中rhel-debuginfo.repo是默认有的,除此之外只能有一个以.repo结尾的文件) 然后使用vim编辑器打开这个以.repo结尾的文件,在里面写如下内容: [localyum] name=localyum baseurl=file:///var/yum gpgcheck=0 enabled=1 保存后退出。 其中 [localyum] 是yum源名称,([main]不能使用,其他都可以用); name=localyum 是用来指定yum源的完整名称的; baseurl=file:///var/yum 是本地yum源指向,一定是绝对路径(是repodata 所在的那个路径),如果不是本地yum源,它支持ftp和http协议 如:baseurl=ftp://172.16.0.1/yum/VT 、baseurl=http://172.16.0.1/yum/Server ,/yum/VT和/yum/Server是yum源所在路径. gpgcheck=0 表示是检测签名的,0表示不检查,1表示检查 enabled=1 表示是否启用此yum源,1表示启用,0表示不启用 (6)然后使用yum repolist 命令,会显示所有已安装的yum源,localyum 就会出现了,表示本地yum源已经创建成功.就可以使用yum源安装软件了。本文出自 “知识体系” 博客,请务必保留此出处http://linuxg.blog.51cto.com/4410110/793547