`
ygsilence
  • 浏览: 336725 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

linux安装RPM包或者安装源码包(转)

阅读更多

地址:http://www.92csz.com/study/linux/11.htm

 

windows下安装一个软件很轻松,只要双击.exe的文件,安装提示连续下一步即可,然而linux系统下安装一个软件似乎并不那么轻松了,因为我们不是在图形界面下所以你要学会如何在linux下安装一个软件

在前面的内容中多次提到的yum,这个yumRedhat所特有的安装RPM程序包的工具,使用起来相当方便因为使用RPM安装某一个程序包有可能会因为该程序包依赖另一个程序包而无法安装而使用yum工具就可以连同依赖的程序包一起安装当然CentOS同样可以使用yum工具,而且在CentOS中你可以免费使用yum,但Redhat中只有当你付费后才能使用yum,默认是无法使用yum在介绍yum之前先说一说RPM相关的东西

RPM工具

RPM”Redhat Package Manager”的缩写,根据名字也能猜到这是Redhat公司开发出来的。RPM 是以一种数据库记录的方式来将你所需要的套件安装到你的Linux 主机的一套管理程序也就是说,你的linux系统中存在着一个关于RPM的数据库,它记录了安装的包以及包与包之间依赖相关性。RPM包是预先在linux机器上编译好并打包好的文件,安装起来非常快捷但是也有一些缺点,比如安装的环境必须与编译时的环境一致或者相当;包与包之间存在着相互依赖的情况;卸载包时需要先把依赖的包卸载掉,如果依赖的包是系统所必须的,那就不能卸载这个包,否则会造成系统崩溃

如果你的光驱中还有系统安装盘的话,你可以通过”mount /dev/cdrom /mnt”命令把光驱挂载到/mnt目录下,那么你会在/mnt/CentOS目录下看到很多.rpm的文件,这就是RPM包了

[image]

每一个rpm包的名称都由”-“”.”分成了若干部分就拿 a2ps-4.13b-57.2.el5.i386.rpm 这个包来解释一下,a2ps 为包名;4.13b则为版本信息;57.2.el5为发布版本号;i386为运行平台其中运行平台常见的有i386, i586, i686, x86_64 ,需要你注意的是cpu目前是分32位和64位的,i386,i586i686都为32位平台,x86_64则代表为64位的平台另外有些rpm包并没有写具体的平台而是noarch,这代表这个rpm包没有硬件平台限制例如 alacarte-0.10.0-1.fc6.noarch.rpm 。下面介绍一下rpm常用的命令

1)安装一个rpm

[image]

-i :安装的意思

-v :可视化

-h :显示安装进度

另外在安装一个rpm包时常用的附带参数有:

--force 强制安装,即使覆盖属于其他包的文件也要安装

--nodeps 当要安装的rpm包依赖其他包时,即使其他包没有安装,也要安装这个包

2)升级一个rpm

rpm -Uvh filename -U :即升级的意思

3)卸载一个rpm

rpm -e filename 这里的filename是通过rpm的查询功能所查询到的,稍后会作介绍

[image]

卸载时后边跟的filename和安装时的是有区别的上面命令提到的 “|”linux系统中用的非常多也非常有用,它是一个管道符,用来把前面运行的结果传递给后面的命令以后会做详细介绍,而后出现的grep命令则是用来过滤某个关键词的工具,在后续章节中会做详细介绍

4)查询一个包是否安装

rpm -q rpm包名(这里的包名,是不带有平台信息以及后缀名的)

[image]

如果加上了平台信息以及后缀名反而不能查出来你还可以查询当前系统中所安装的所有rpm

[image]

因为太多,所以笔者列出前十个

5)得到一个rpm包的相关信息

rpm -qi 包名 (同样不需要加平台信息与后缀名)

[image]

6)列出一个rpm包安装的文件

rpm -ql 包名

[image]

通过上面的命令可以看出vim是通过安装vim-enhanced-7.0.109-6.el5这个rpm包得来的那么反过来如何通过一个文件去查找是由安装哪个rpm包得来的?

7)列出某一个文件属于哪个rpm

rpm -qf 文件的绝对路径

[image]

前面讲过如何查找一个文件(可执行命令)的绝对路径

[image]

所以你也可以把这两条命令连起来写

[image]

看到了吗,which vim 这条命令是由两个反引号引起来的,这代表引用反引号里面的命令所产生的结果关于rpm工具的使用还有很多内容,笔者就不一一列举了,只要你掌握上面这些内容,完全够你平时工作用的了

yum工具

介绍完rpm工具后,还需要你掌握最常用的yum工具,这个工具比rpm工具好用多了,当然前提是你使用的linux系统是支持yum。yum最大的优势在于可以联网去下载所需要的rpm包,然后自动安装,在这个工程中如果要安装的rpm包有依赖关系,yum会帮你解决掉这些依赖关系依次安装所有rpm下面笔者介绍常用的yum 命令

1 列出所有可用的rpm “yum list “

[image]

限于篇幅,笔者只列举出来前7个包信息从上例中可以看到有”mirrors.163.com”信息出现,这是在告诉用户,它是从mirrors.163.com这里下载到的rpm包资源如果你使用的是CentOS则你可以从/etc/yum.repos.d/CentOS-Base.repo这个文件下看到相关的配置信息从上面的例子中你还可以看到最左侧是rpm包名字,中间是版本信息,最右侧是安装信息,如果安装了就显示installed,未安装则显示base或者extras,如果是该rpm包已安装但需要升级则显示updates。

2)搜索一个rpm “yum search [相关关键词]”

[image]

除了这样搜索外,笔者常用的是利用grep来过滤

[image]

相信你也会喜欢用后者吧,这样看起来简明的多

3)安装一个rpm “yum install [-y] [rpm包名]”

如果不加-y选项,则会以与用户交互的方式安装,首先是列出需要安装的rpm包信息,然后会问用户是否需要安装,输入y则安装,输入n则不安装而笔者嫌这样太麻烦,所以直接加上-y选项,这样就省略掉了问用户是否安装的那一步[image]

4)卸载一个rpm “yum remove [-y] [rpm包名]”

[image]

卸载和安装一样,你也可以直接加上-y选项来省略掉和用户交互的步骤在这里笔者要提醒你一下,卸载某个rpm包一定要看清楚了,不要连其他重要的rpm包一起卸载了,以免影响正常的业务

4)升级一个rpm “yum update [-y] [rpm]”

[image]

以上介绍了如何使用yum搜索安装卸载以及升级一个rpm包,如果你掌握了这些那么你就已经可以解决日常工作中遇到的与rpm包相关问题了当然yum工具还有好多其他好用的命令,笔者不在列举出来,如果你感兴趣就去man一下吧除此之外,笔者还会教你一些关于yum的小应用

使用本地的光盘来制作一个yum

有时候你的linux系统不能联网,当然就不能很便捷的使用联网的yum源了,这时候就需要你自己会利用linux系统光盘制作一个yum具体步骤如下:

a.挂载光盘

[root@fortest Server]# mount -t iso9660 -o loop /dev/cdrom /mnt

b.删除/etc/yum.repos.d目录所有的repo文件

[root@fortest Server]# rm -rf /etc/yum.repos.d/*

c.创建新文件dvd.repo

[root@fortest Server]# vim /etc/yum.repos.d/dvd.repo

加入以下内容:

[dvd]

name=install dvd

baseurl=file:///mnt

enabled=1

gpgcheck=0

d.刷新repos,生成缓存

[root@fortest Server]#yum makecache

然后就可以使用yum命令安装你所需要的软件包了

利用yum工具下载一个rpm

有时,我们需要下载一个rpm包,只是下载下来,拷贝给其他机器使用,前面也介绍过yum安装rpm包的时候,首先得下载这个rpm包然后再去安装,所以使用yum完全可以做到只下载而不安装

a. 首选要安装 yum-downloadonly

# yum install -y yum-downloadonly.noarch

b. 下载一个rpm包而不安装

# yum install test.rpm -y --downloadonly //这样虽然下载了,但是并没有保存到我们想要的目录下,那么如何指定目录呢?

c. 下载到指定目录

# yum install test.rpm -y --downloadonly --downloaddir=/usr/local/src

[image]

安装源码包

其实,在linux下面安装一个源码包是最常用的,笔者在日常的管理工作中,大部分软件都是通过源码安装的安装一个源码包,是需要我们自己把源代码编译成二进制的可执行文件如果你读得懂这些源代码,那么你就可以去修改这些源代码自定义功能,然后再去编译成你想要的使用源码包的好处除了可以自定义修改源代码外还可以定制相关的功能,因为源码包在编译的时候是可以附加额外的选项的

源码包的编译用到了linux系统里的编译器,常见的源码包一般都是用C语言开发的,这也是因为C语言为linux上最标准的程序语言。Linux上的C语言编译器叫做gcc,利用它就可以把C语言变成可执行的二进制文件所以如果你的机器上没有安装gcc就没有办法去编译源码你可以使用 yum install -y gcc 来完成安装

安装一个源码包,通常需要三个步骤:

1. ./config 在这一步可以定制功能,加上相应的选项即可,具有有什么选项可以通过”./config --help ”命令来查看在这一步会自动检测你的linux系统与相关的套件是否有编译该源码包时需要的库,因为一旦缺少某个库就不能完成编译只有检测通过后才会生成一个Makefile文件

2. make 使用这个命令会根据Makefile文件中预设的参数进行编译,这一步其实就是gcc在工作了

3. make install 安装步骤,生成相关的软件存放目录和配置文件的过程

上面介绍的3步并不是所有的源码包软件都一样的,笔者以前也曾经遇到过,安装步骤并不是这样,也就是说源码包的安装并非具有一定的标准安装步骤这就需要你拿到源码包解压后,然后进入到目录找相关的帮助文档,通常会以INSTALL或者README为文件名所以,你一定要去看一下下面笔者会编译安装一个源码包来帮你更深刻的去理解如何安装源码包

1. 下载一个源码包

[image]

这里要提一下,建议以后你把所有下载的源码包放到/usr/local/src/目录下,这个并不是必须的,只是一个约定方便你和你的同事将来更好的去运维这台服务器。wget即为下载的命令,后边跟源码包的下载地址该地址为笔者从网上找的一个apache的下载地址

2. 解压源码包

[image]

一般的源码包都是一个压缩包,如何解压一个.tar.gz的包上一章讲过的

3. 配置相关的选项,并生成Makefile

[image]

使用./config --help 可以查看可用的选项一般常用的有”--prefix=PREFIX “ 这个选项的意思是定义软件包安装到哪里到这里,笔者再提一个小小的约定,通常源码包都是安装在/usr/local/目录下的比如,我们把apache安装在/usr/local/apache2下,那么这里就应该这样写” --prefix=/usr/local/apache2”。其他还有好多选项,如果你有耐心你可以挨个去看一看都有什么作用

[image]

笔者在这里只定义了apache的安装目录,其他都是默认回车后,开始执行check操作

[image]

check结束后生成了Makefile文件

[image]

除了查看有没有生成Makefile文件来判定有没有完成./config 的操作外,还可以通过这个命令”echo $?”来判定,如果是0,则表示上一步操作成功完成,否则就是没有成功

[image]

4. 进行编译

[image]

这一步操作,就是把源代码编译成二进制的可执行文件,这一步也是最漫长的一步,编译时间的长短取决于源代码的多少和机器配置

5. 安装

[image]

在安装前,先确认上一步操作是否成功完成

[image]

make install 会创建相应的目录以及文件当完成安装后,会在/usr/local目录下多了一个apache2目录,这就是apache所安装的目录了

[image]

其实在日常的源码安装工作中,并不是每个都像笔者这样顺利完成安装的,遇到错误不能完成安装的情况是很多的通常都是因为缺少某一个库文件导致的这就需要你仔细琢磨报错信息或者查看当前目录下的config.log去得到相关的信息另外,如果自己不能解决那就去网上google一下吧,通常你会得到你想要的答案

分享到:
评论

相关推荐

    linux安装rpm包

    例如,对于apr-1.6.5.tar.gz和apr-util-1.6.1.tar.gz这样的源码包,首先使用`scp`命令将它们传输到Linux服务器的根目录,然后使用`tar`命令解压。配置阶段,通过运行`./configure`命令,指定安装路径和其他依赖项。...

    linux安装gcc编译环境所需rpm包

    标题提到的“linux安装gcc编译环境所需rpm包”,意味着我们需要在没有yum(适用于基于RPM的系统,如CentOS、Fedora)的情况下,使用RPM包来安装GCC。SUSE 12使用的是zypper,虽然它支持RPM包,但默认使用的是 YaST...

    linuxqq rpm包以及源码包

    总的来说,"linuxqq rpm包"为用户提供了方便的二进制安装方式,而".src.rpm包"则为开发者和高级用户提供源代码编译的灵活性。理解这两种包的性质和用途,可以帮助Linux用户更好地管理和使用QQ软件。

    Linux软件安装rpm包的管理.pdf

    Linux软件安装rpm包的管理主要涵盖安装方式的介绍、rpm包管理、yum工具的使用以及源码包软件的安装这几个方面。在Linux系统中,软件安装方法主要有三种,分别是通过deb包安装、rpm包安装以及源码包安装。具体知识点...

    用openssh9.8源码包,制作rpm包

    要使用OpenSSH 9.8的源码包制作RPM包,你需要遵循一系列步骤,包括安装必要的工具、准备源码、编写RPM规范文件(spec file),然后构建RPM包。以下是一个基本的指南: 1. 安装必要的工具 首先,确保你的系统上安装...

    Linux下RPM打包制作过程

    Linux下的RPM打包制作流程是将软件源代码转化为可供Linux系统安装的RPM包的过程,这一过程涉及到多个步骤和配置文件。RPM(Red Hat Package Manager)是一种广泛应用于Linux发行版的软件包管理器,它使得软件的安装...

    php 7.2.16 rpm包

    PHP 7.2.16 RPM包是一种专为Linux系统设计的软件包,它包含了PHP 7.2.16版本的所有源代码和编译好的二进制文件,用于在这些系统上快速安装和运行PHP环境。RPM(Red Hat Package Manager)是Linux发行版中最常见的...

    中标麒麟离线安装nginx所需rpm和源码包

    "中标麒麟离线安装nginx所需rpm和源码包" 指的是在中标麒麟(NeoKylin)操作系统环境下,为了在没有网络连接的情况下安装Nginx web服务器,预先准备的一系列rpm软件包和Nginx的源代码文件。这种离线安装方式适用于...

    安装部署Linux安装gcc的四种方法

    2、rpm包安装 3、yum安装 (RedHat、CentOS) 4、apt-get安装 (debian,ubuntu) 以安装gcc为例,登陆https://gcc.gnu.org/,下载自己想要的版本的gcc安装包 上传gcc-4.1.2.tar.gz到Linux服务器任意目录,解压 ...

    安装RPM包、源码包

    在Linux系统中,软件安装通常涉及两种主要类型:二进制包和源代码包。二进制包,如RPM(Red Hat Package Manager)和DEB(Debian Package),是预编译好的软件,可以直接在系统中安装。RPM包在Linux发行版如CentOS、...

    RPM Builder 将tar.gz 转成RPM

    在Linux和类Unix系统中,RPM(Red Hat Package Manager)是一种广泛使用的软件包管理器,它能够方便地安装、升级、查询和卸载软件。RPM Builder 是一个工具,可以帮助用户将源代码的tar.gz文件转换为RPM格式的软件包...

    tcpkill命令安装包(dsniff rpm包)

    在安装tcpkill之前,首先需要确保系统已经安装了EPEL (Extra Packages for Enterprise Linux) 存储库,因为dsniff包通常不在默认的RPM仓库中。EPEL是一个由Fedora项目维护的仓库,提供了许多针对RHEL和CentOS的额外...

    Linux下WOL的rpm包及使用说明

    在本场景中,我们讨论的是在Linux环境下使用WOL的rpm包进行配置和操作。 首先,了解WOL的基本原理是必要的。WOL依赖于硬件支持,大多数现代主板和网卡都具备这一功能。在BIOS设置中,用户需要确保“Wake on LAN”或...

    redhat linux手动RPM安装gcc,g++

    下面我们将详细讲解如何在Red Hat Linux上手动通过RPM包安装这两个组件。 首先,你需要获取适合你系统版本的GCC和g++的RPM包。通常,这些包可以在Red Hat的官方网站或者第三方软件仓库如EPEL(Extra Packages for ...

    linux rpm包命令

    除了上述命令之外,文件中的“配置”部分提到了构建源码包为RPM包的过程。通常这个过程包括以下步骤: 1. **下载源码包**:首先从官方网站或其他可靠来源下载源码包。 2. **解压源码包**:使用tar命令解压源码包。 ...

    php7.3.4rpm包和依赖包

    RPM(Red Hat Package Manager)是Linux发行版如CentOS、Fedora等中常用的一种软件包管理器,用于安装、升级、查询和删除软件包。 标题中的"php7.3.4rpm包"指的是PHP 7.3.4的RPM软件包,这种格式的包便于在基于RPM...

    国产麒麟系统KylinOS 安装MySQL 8.0-RPM包安装操作手册

    国产麒麟系统KylinOS 安装MySQL 8.0-RPM包安装操作手册 在国产麒麟系统KylinOS环境下安装MySQL 8.0-RPM包需要按照以下步骤进行操作。 检查是否有mysql残留 在安装MySQL之前,需要检查服务器是否已经安装了mysql。...

    linux DNS 软件包rpm

    Linux DNS软件包RPM是用于在Linux操作系统上安装和管理DNS(Domain Name System)服务的软件集合。DNS是互联网的一项核心服务,它负责将人类可读的域名转换为计算机可识别的IP地址,使得网络通信得以顺利进行。RPM...

    linux下安装Nginx所需依赖包

    或者,如果你选择从源代码编译安装,还需要下载Nginx源码,配置并编译: ```bash wget http://nginx.org/download/nginx-1.18.0.tar.gz tar -zxvf nginx-1.18.0.tar.gz cd nginx-1.18.0 ./configure --prefix=/usr/...

    rhl rpm打包原理详解

    - 分享RPM包,可以通过镜像服务器、私有仓库或者直接分发文件。 通过学习以上步骤和概念,你可以理解并实践RPM打包,从而轻松制作自己的RPM软件包,提高软件部署效率。记住,熟练掌握RPM打包对于在RHEL家族的Linux...

Global site tag (gtag.js) - Google Analytics