Linux入门之软件的安装

Linux包管理与Nginx编译安装详解
本文介绍了Linux系统中使用包管理器(dpkg和rpm,以及yum和apt)进行软件安装和依赖管理的方法,并详细阐述了如何编译安装Nginx,包括下载源码、配置、解决依赖及编译安装的步骤。文章强调了包管理器在自动依赖解决方面的便利性,以及编译安装在特定场景下的必要性。


前言

文章的内容来源拉钩教育上的课程学习,通过写博客的方式,更好的提高对该知识的掌握。


  • 在Linux上安装程序大概有两种思路:
    1.直接编译源代码
    2.使用包管理器
    受开源运动影响,Linux上有很多软件可以拿到源代码,这也是Linux能够取得一个重要原因,接下来我们先尝试用包管理器安装应用,然后再用一个实战的例子,如何编译安装nginx.

一、包管理器使用

  • Linux下的应用程序多以软件包的形式发布,用户拿到对应的包之后,使用包管理进行安装。说到包安装,就要提到dpkg和rpm。

    我们先说说包。Linux两大主流的包就是rmp和dpkg。 dpkg(Debian package),是Linux一个主流的社区分支开发出来的。社区就是开源社区,有很多世界顶级的程序员会在这社区贡献代码,如GitHub。一般衍生于debian的Linux版本都支持dpkg,比如Ubuntu。

    • rpm(redhatpackage manager)。

      无论是dpkg还是rmp都抽象了自己的包格式,以.dpkg或者.rpm结尾文件。

    • dpkg和rpm也提供了类似的能力:

      ·查询是否已经安装了某个软件包
      ·查询目前安装了什么软件包
      ·给定一个软件包,进行安装
      ·删除一个安装好的软件包。

二、自动依赖管理

  • Linux是一个开源生态,因此工具非常多。工具在给定用户使用之前,需要打包成dpkg或者rpm包。有的时候一个包需要安装十几个依赖的包,过程非常艰辛!因此现在多数情况都在使用yum和apt。
  • yum
    yum的全名是Yellodg Updator,Modified.基于Yellowdog Updator 这款软件修改而来的一个工具。
    yum是python开发的,提供rpm包,因此只有redhat系的Linux,如Ferdoracentos支持yum。yum的主要能力就是帮你解决下载和依赖两个问题。下载之所以是问题,是因为Linux生态非常庞大,有时候用户不知道去下载哪一款工具。
    比如用户想安装vim,只需要输入sudo yum install vim 就可以安装。另一方面,yum帮助用户解决很多依赖,比如用户安装一个软件依赖了10个其它的软件,yum会把11个软件一次性的装好。
  • apt
    apt 全名是Advanced Packaging Tools,是一个Debian及其衍生Linux系统的包管理器。

三、编译安装Nginx

  • Nginx(engine X),是一个家喻户晓的web服务器。他的发明者是俄国的伊戈尔·赛索耶夫。赛索耶夫 2002 年开始写Nginx,主要目的是解决同一个互联网节点同时进入大量并发请求的问题。注意,大量并发请求不是大量 QPS 的意思,QPS是吞吐量大,需要快速响应,而高并发时则需要合理安排任务调度。

第一步下载源码

wget http://nginx.org/download/nginx-1.19.2.tar.gz

第二步解压

tar -xzvf  nginx-1.19.2.tar.gz
  • tar是用来打包和解压用的。之所以叫做tar是有一些历史原因:t 代表 tape(磁带);ar是archive(档案)。因为早期的存储介质很小,人们习惯把文件打包然后存储到磁带上,那时候unix用的命令就是tar。因为Linux是个开源生态,所以沿袭下来就继续使用tar。

    ·-x 代表extract (提取)
    ·-z代表gzip,也就是gz类型的文件。
    ·-v代表verbose(显示细节)如果不输入-v ,就不会打印解压过程
    ·-f 代表file 这里是指要操作的文件,而不是磁带。所以tar 解压通常带有x和f
    ·-c 就是create打包意思

第三步配置和解决依赖

#进入安装包下
cd nginx-1.19.2
#执行安装配置
 ./configure
#缺少pcre-devel 进行安装
sudo yum -y install pcre-devel

#缺少zlib依赖 进行安装
sudo yum install -y zlib zlib-devel 

#执行配置文件
./configure

在这里插入图片描述第四步:编译和安装

  • 通常配置完之后,我们输入make && sudo make install进行编译和安装。make是Linux下面一个强大的构建工具。
  • autoconf也就是./configure会在当前目录下生成一个MakeFile文件。make会根据makeFile文件编译整个项目。
  • 编译完成后,能够形成和当前操作系统以及CPU指令集兼容的二进制可执行文件。然后用make install 安装 .&& 符号代表执行完make 再去执行 make install。
#编译和安装
make && sudo make install

在这里插入图片描述如果让nginx全局执行,可以设置一个软链接到/usr/local/bin

ln -sf /usr/local/nginx/sbin/nginx /usr/local/sbin/nginx

为什么会有编译安装?

  • 使用c/c++写的程序存在一个交叉编译的问题。就是写一次程序,在很多个平台执行。而不同指令的CPU指令,还有操作系统的可执行文件格式是不同的,如果某给包没有在平台注册,也没有提供某个Linux平台的软件包,我们就需要退回到编译安装,通过源代码直接安装在某个平台安装。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值