安装包导入linux,链接文件和Linux中编译安装软件包简介

一.链接文件的相关介绍:

链接文件分为硬链接文件和软链接文件

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源安装软件了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值