首页 >> 大全

软件安装源码和二进制包

2023-11-25 大全 30 作者:考证青年

一、linux中软件安装包分类

1、软件包分类

 源码包

 二进制包

2、源码包

2.1 源码包的概述

什么是源码包?其实就开发完是什么样子就是什么样子,大多数源码包都是c或汇编语言写的。

举例:

 **我们也可以自己写一个c语言的helloworld程序,然后自己编译,自己执行一下,玩玩儿,注意:c语言的程序后缀是.c**

#includeint main (void){printf ("hello world\n"; }

c语言需要c的编译器,就像java语言的jdk,所以要在linux上运行c语言的程序,先要安装工具gcc(这个工具是多语言的集成编译器,里边包含了c语言的编译器),c++语言编写的程序的编译器gcc-c++

yum insall -y gcc gcc-c++
gcc -c hello.c   #-c 生成“.o”头文件。这里会生成 hello.o 头文件,但是不会生成执行文件
gcc -o hello hello.o  #-o 生成执行文件,并制定执行文件名。这里生成的 hello 就是可执行文件
./hello  #执行 hello 文件

2.2 源码包特点

源码包的优点:

​  开源,如果有足够的能力,可以修改源代码

​  软件是本机编译,安装,所以更加适合自己的系统,更加稳定也效率更高,普遍认为源码包安装比二进制包安装效率高5%左右

 卸载方便,删除安装目录,伦理上认为没的什么残留

源码包有缺点:

 安装过程步骤较多,尤其安装较大的软件集合时,容易出现拼写错误

 编译过程时间较长,安装比二进制安装时间长

 因为是编译安装,安装过程中一旦报错新手很难解决,因为我们安装这些软件绝大多数都不是我们自己开发的

3、二进制包

3.1 二进制包分类

 在 和 中,二进制软件包叫 DPKG 包。

 在Red Hat系列的系统中,讲RPM包。

​  我们学习的是 7.6,所以我们这里学习的是 RPM 包管理系统

RPM 包的优点:

 包管理系统简单,只通过几个命令就可以实现包的安装、升级、查询和卸载

 安装速度比源码包安装快的多

RPM 包的缺点:

 软件包已经经过编译,看不到源代码

 依赖性。

RPM简单易用,但是它的依赖关系是最头疼的!常见的依赖关系:

1)树形依赖 a---->b---->c

2)环形依赖 a---->b---->c---->a

3)函数库依赖

安装某个软件,需要某个具体的文件,这个文件没有单独成包,是包含在某一个别的软件包中的。

二 、rpm二进制包的安装

1、rpm 包命名规则

​ /mnt//zsh-5.0.2-28.el7..rpm

​ zsh -5. 0. 2- 28. el7. .rpm

软件名 主版本号次版本号修订(第几次发布版本)操作系统版本/软件发行商 软件包是64位包

修订指是的第几次修改bug。

发布指的是:第几次发布。 发布时,可能只是对软件安装的默认参数做了修改,而没有其它改动。

2、rpm 包手工安装命令

2.1,RPM 包具体的安装命令

​    1)安装命令

rpm –ivh 包全名(带绝对路径)

选项:

​       -i 安装()

​        -v 显示更详细的信息()

​        -h 显示安装进度(hash)

​         -- 不检测依赖性安装,在实际的工作中不准用。不管依赖性,想强行安装。注意:这样不检测依赖性安装的软件基本是不能使用的,所以不建议这样做,实验中可以玩玩儿,卸载软件的时候可以用一下。

​         --替换文件安装。

​         -- 替换软件包安装

​         --force 强制安装。不管是否已经安装,都重新安装。就是– 和– 的综合

​          作用:找回丢失的重要系统文件,一会儿例子中演示。

 --test 测试安装。**不会实际安装,只是检测一下依赖性。

 -- 指定安装路径,这个选项基本不用。如果指定了安装路径, 软件没有安装到系统默认路径中的话, 系统会找不到这些**

安装的软件,rpm包的安装的卸载命令就不能卸载掉软件,卸载就需要你一个文件一个文件的删除。所以 rpm 包我们一般都采用默认路径安装。

2)依赖的解决办法

A、针对a---->b---->c 这种依赖,先安装c,再安装b,最后安装a

B、针对a---->b---->c---->a 这种依赖

1、强制安装 ----暴力型

​ 使用rpm -i –force -- 强制安装。忽略依赖关系。这种方法你可以先装A包,再装B包,再装C包。这样还是有点隐患的, 感觉不是很踏实(虽然其实目前没发现什么不好)**,**安装后使用成功的前提是:你要搞清楚依赖关系,并且把这些包都装好。好处是:不用管它们的具体依赖关系先后顺序。

2、还可以一次性全装上— 一网打尽型

​          可以把依赖的几个包拷出来放在同一个文件夹里 然后 rpm -ivh *.rpm 这样也可以 前提也是一个都不能少。

C、遇到函数库依赖,需要知道所缺文件在哪个软件包中,这需要在网站上查询一下在安装。搞定!

上面A解决办法都是说的轻松但做起来,要命!太繁琐!B必须事先知道安装的软件所需要的所有依赖,但是不同的系统,不同的安装模式下的系统,这个依赖都是不同的,是一个不确定的东西,实践起来,也不好使!

D、 使用yum技术安装 --使用服务器方式

​ yum是一个服务器资源技术。通过在线下载服务器资源的方式,也可以用光盘做为本地的软件包的来源。 缺点:太繁琐。要设置一堆的东西。优点:设置以后,很方便,需要的大多数资源都可以从服务器/本地yum源上找到。这点感觉很像maven!

例: 用为例子,安装一下,演示一下上面的讲的知识点!,实际开发中是用yum的

#挂载光盘到/cdrom,临时的
mkdir /cdrom
mount /dev/sr0 /cdrom
mount: /dev/sr0 写保护,将以只读方式挂载
cd /cdrom
cd Packages/
ls | grep "^httpd"    #查一下httpd服务需的软件包,这里有4个,第一个为主包,一般来说安装了主包,都可运行httpd-2.4.6-88.el7.centos.x86_64.rpmhttpd-devel-2.4.6-88.el7.centos.x86_64.rpmhttpd-manual-2.4.6-88.el7.centos.noarch.rpmhttpd-tools-2.4.6-88.el7.centos.x86_64.rpmrpm -ivh httpd-2.4.6-88.el7.centos.x86_64.rpm  #安装主包

安装主包时:提醒要三个依赖库和一个依赖包,一个依包在我们的光盘里有,ls |grep “xxx”查之,而库函数依赖要到一个网站中查,表示64位或32位系统都可用,一般来说在光盘里也有相应的包,安装之,没有下载上传安装之

函数库依赖包解决后,再回到刚开始再次安装主包,这会儿,会显示只剩三个依赖包安装,安装呀!重复上面的操作,哎,要亲命哦,我用这种 方式就没安装成功过软件,当然了,如果你有足够定力的话,是可以成功的。

安装完后,启动安装的软件(服务),以 服务为例:

start httpd 启动

stop httpd 关闭

源码安装和二进制安装__源码进制包安装软件怎么安装

httpd 重启

httpd 查看状态

httpd. #开机启动

httpd. #开机不启动

的网页存放位置:/var/www/html

cd /var/www/html
vi index.html<html><head><title>xiongtitle>head><body>hello httpd!body>html>

的配置文件位置:/etc/httpd/conf/httpd.conf

上是rpm安装方式的这些文件的位置,源码安装的位置讲到的时候在说

rpm包安装都是安装到默认安装位置,这些位置大多数在这些地方:

–force 强制安装来解决重要配置文件丢失的问题:

为了测试,我到/etc/httpd/conf下,删除httpd.conf文件(事先备份一个),再重启 httpd会发现问题的

cd /etc/httpd/conf
mv httpd.conf httpd.conf.bak
systemctl restart httpdjob for httpd.service failed because the control process exited with error code. See "systemctl status httpd.service" and "journalctl -xe" for details.
rpm -ivh --force /cdrom/Packages/httpd-2.4xxxxxxxx.rpm    

本人通过测试,这是要在本地yum源安装的时候才有效果,但如果是,通过阿里云或其它网络yum源安装的httpd的话,则要移除yum httpd,再得新安装之yum httpd

2.3RPM包升级命令

# rpm –Uvh 包全名

​       选项:

​       -U(大写) 升级安装,如果没有安装过,系统直接安装。如果安装过的版本较旧,则升级到新版本()

# rpm –Fvh 包全名

​ 选项:

​       -F(大写)升级安装, 如果没有安装过, 则不会安装。 必须安装有较旧版本, 才能升级 ()

2.4卸载命令(卸载软件,不推荐使用yum命令的卸载)

# rpm -e 包名(只需要跟上软件的名称就ok)

​ 选项:

​ -- 不检查依赖性

​ -e 卸载

查询

1)查询软件包是否安装(只能查询出rpm包安装的软件,源码安装的软件是查不了的)

rpm –q 包名

选项:

q: 查询(query)

2)查询系统中的所有安装软件包

 rpm -qa

选项:

​ -a:所有(all)

​ 当然,可以用管道符来查看所需的内容,比如:

   rpm -qa | grep httpd

3)查询软件包的详细信息

   rpm –qi 包名

选项:

-i: 查询软件信息()

也可以查询还没有安装的软件包的详细信息

 rpm –qip 包全名

选项:

​ -p: 查询没有安装的软件包()

4)查询软件包中的文件列表

可以查询已经安装的软件包中的文件列表和安装的完整目录

  rpm –ql 包名

选项:

-l: 列出软件包中所有的文件列表和软件所安装的目录(list)

可以查询还没有安装

数字证书

​ 刚刚的校验方法只能对已经安装的 RPM 包中的文件进行校验, 但是如果 RPM 包本身就被动过手脚,

那么校验就不能解决问题了。我们就必须使用数字证书验证了。 数字证书说白了就是一个电子签名,有签名

表示它是官方开发的rpm软件包,是安全的,不是别人动过手脚的软件包,没的,就有可能是别人动

过手脚的软件包,至少不是官方发布的。

数字证书的使用,重要在新的服务器器上一定做这几步操作:

 首先必须找到原厂的公钥文件,然后进行安装

 再安装 RPM 包时, 会去提取 RPM 包中的证书信息, 然后和本机安装的原厂证书进行验证

 如果验证通过,则允许安装;如果验证不通过,则不允许安装并警告.

1)数字证书(原厂的公钥文件)位置

数字证书在安装光盘中就有,安装系统后,我们应该导入这个证书:RPM-GPG-KEY--7

另外在linux系统中也有,位置在:/etc/pki/rpm-gpg/RPM-GPG-KEY--7

2)数字证书导入 ,上面两个位置的,导入那个都是一样的

# rpm – /mnt/RPM-GPG-KEY--7

选项:

– 导入数字证书

rpm在线安装

rpm 包在线安装( yum 安装)

3.1yum 源的配置文件解析

yum 源配置文件保存在/etc/yum.repos.d/目录中,文件的扩展名一定是“.repo”。也就是说,yum 源配置文件只要扩展名是“.repo”就会生效。

#ls  /etc/yum.repos.d/

-Base.repo -.repo -Media.repo -Vault.repo

-CR.repo -.repo -.repo

这个目录中有 7 个 yum 源配置文件,默认情况下 -Base.repo 文件生效,这个文件中又有多个具体的yum源。

​    在 -Base.repo 文件中有 4 个 yum 源,这里只列出了 base,其他和 base类似。我们解释一下 base 这个源。

 [base]:源的名称,一定要放在[]中,在一个配置文件中,这个名字不能重复。

 name:源说明,可以自己随便写。

 : yum 源服务器的镜像站点地址。

 : yum 源服务器的地址。

源码安装和二进制安装__源码进制包安装软件怎么安装

和两个配置,只能使用一个,用那个都可以,默认的地址都在国外,这里可以使用国内的镜像163,都行

 :此容器是否生效,如果不写或写成 =1 则表示此容器生效,写成 =0则表示此容器不生效。

 :如果为 1 则表示 RPM 的数字证书生效;如果为 0 则表示 RPM 的数字证书不生效。

 :数字证书的公钥文件保存位置。不用修改。为1才有用,为0就可以不需要。

=file:///etc/pki/rpm-gpg/RPM-GPG-KEY--7

3.2搭建本地光盘 yum 源,前面已经讲过了,这里不重复

3.3 yum 命令

#yum list  

查询所有可用软件包列表

 查询 yum 源服务器中是否包含某个软件包。

#yum list 包名(这个的包名必须写完整)

#查询单个软件包

 搜索 yum 源服务器上所有和关键字相关的软件包。

yum 关键字(不是完整的包名,是关键字)

#搜索服务器上所有和关键字相关的软件包

yum 搜索可以用于确定某个命令在哪个相关包当中。比如可以确定“”命令需要安装“net-tools”包。

 查询指定软件包的信息。

yum info samba

查询 samba 软件包的信息

还没有安装

Name : samba 包名

Arch : i686 适合的硬件平台

: 3.5.10 版本

: 125.el6 发布版本

Size : 4.9 M 大小

Repo : c6-media 在光盘上

三,源码包安装

1. 注意事项

1.1 应该选择哪种软件包?

 如果软件包是给大量客户提供访问,建议使用源码包安装,如LAMP环境搭建,因为源码包效率更高。其实现在的集群环境下,大多数RPM包也不慢了,大部分软件包的安装也都是二级制RPM包安装了。

 如果软件包是给Linux底层使用,或只给少量客户访问,建议使用rpm包安装,因为rpm包简单。

1.2 源码包是从哪里来的?

​    rpm包是光盘中直接包含的,所以不需要用户单独下载。而源码包是通过官方网站下载的(tar .gz或tar.bz2格式)。

1.3 源码包:大多数情况下须指定安装位置(源码包没有安装数据库,没有删除命令,最好指定安装到一个目录里,删除目录就是删除软件) ,极少数源码安装指定了位置会报错。

2.安装过程 (核心的过程就是三板斧,编译前的准备,编译,安装)

我们来解释一下源码包安装的具体步骤。 一般情况下源码包里都会有大写一样的名字说明文件,里边详细有安装的步骤。

​       这一步主要有三个作用:

​       ① 在安装之前需要检测系统环境是否符合安装要求。

​       ② 定义需要的功能选项。“./”支持的功能选项较多,可以执行“./ --help”命令查询其支持的功能。一般都会通过 “./ --=安装路径” 来指定安装路径。

​       ③ 把系统环境的检测结果和定义好的功能选项写入 文件, 后续的编译和安装需要依赖这个文件的内容。

​    需要注意的是, 不是系统命令,而是源码包软件自带的一个脚本程序,所以必须采用“./”方式执行(“./”代表在当前目录下)。

​ make 会调用 gcc 编译器,并读取 文件中的信息进行系统软件编译。编译的目的就是把源码程序转变为能被 Linux 识别的可执行文件,这些可执行文件保存在当前目录下。编译过程较为耗时,需要有足够的耐心。

​ 如果在“./”或“make”编译中报错,那么我们在重新执行命令前一定要记得执行 make clean 命令,它会清空 文件或编译产生的“.o”头文件。

​     &emsp**;这才是真正的安装过程,一般会写清楚程序的安装位置。如果忘记指定安装目录,则可以把这个命令的执行过程保存下来,以备将来删除使用。**

3. 删除

源码包没有删除命令,如果需要删除,直接删除安装目录即可。所以编译时,最好用–=安装路径,指定安装的地方,这样删除效果相当好,要不然的话,安装的到处都是文件。

4. 源码安装出先找不到库文件或软件包的错误后的一般解决办法总结:

# yum 找不到的包或库文件

# yum prce #全部名字查不到,可以查找部分关键字

#还可以在网上取查,遇到库文件的时候

no

error

安装Apach来举例演示:

一,下载

二,上传

三,安装

​ 1.cd /usr/local

2.tar -zxvf xxxx.tar.gz

3.cd /user/local /xxxx //进入解压后的目录,该目录下有一个,可以cat 看看安装步子

4…/ --=/usr/local/

 //出现如下错误,说是找不到APR包,我们可以YUM SEARCH APR,查询一些该包是什么样的

//安装该包时,又说安装了,无须处理,什么也没做,这是因为安装时索引包没安装,它在开发包中

//安装好了,再次执行预编译,如果再次出现没找到XXXX包,参考上面,再做呀。

//如果是库文件(LIB字样)找不到,再可以到 中查,再回系统中

​ yum 软件包名

   yum  install 软件包名

​ //上图是没有安装C语言编译器,要安装gcc gcc-c++

  yum install -y gcc gcc-c++

​ 5.编译

​    make //比较耗时,一分钟左右,如果是一两兆的话,要花几十分钟编译,这也是源码安装的不好之处。

​ 6.安装

         make install

7.启动

​    cd /usr/local/

./ start

源码安装后的配置文件的位置:

配置文件: /usr/local//conf/httpd.conf

网页文件: /usr/local///

日志位置: /usr/local//logs/

关于我们

最火推荐

小编推荐

联系我们


版权声明:本站内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 88@qq.com 举报,一经查实,本站将立刻删除。备案号:桂ICP备2021009421号
Powered By Z-BlogPHP.
复制成功
微信号:
我知道了