Linux学习笔记_7-软件/软件包

Ginc
Ginc
管理员
66
文章
0
粉丝
教程干货1 191阅读模式
前言 在linux系统中我们经常涉及到软件或软件包的删除和添加,看看在linux系统中软件包的管理方式都有哪些。

1、rpm软件包

1、介绍

RPM全名RedHat Package Manager,rpm最早是由redhat开发出来,最大的特点就是把需要安装的软件提前编译,打包,并且在rpm包里面存放了用以记录软件依赖关系的相关数据。当用户安装时,优先查看这些数据,如果系统满足要求就会执行安装,否则不能安装。安装完成后,将软件包相关信息记录到rpm自己的数据库中,便于查询和卸载等。所以rpm的优点是方便安装,卸载,查询,缺点就是只能在指定的操作系统上使用,所以不同厂商的rpm包,甚至同一厂商不同版本操作系统的rpm包都不通用。

注:常见的Linux系统ubuntu系统不是基于RH的系统,而是基于debin系统,其软件包是apt格式。文章源自今夕何夕兮-https://www.ginc.site/share1262.html

2、命名

例:dhcp-server-4.4.2-19.b1.el9.x86_64.rpm

其中:文章源自今夕何夕兮-https://www.ginc.site/share1262.html

dhcp-server:软件名称,4.4.2:软件版本,-19.b1:编译次数,el9:适用系统文章源自今夕何夕兮-https://www.ginc.site/share1262.html

x86_64:适用平台,.rpm:后缀文章源自今夕何夕兮-https://www.ginc.site/share1262.html

附:rpm软件包下载网站文章源自今夕何夕兮-https://www.ginc.site/share1262.html

https://pkgs.org/

文章源自今夕何夕兮-https://www.ginc.site/share1262.html

3、使用

命令文章源自今夕何夕兮-https://www.ginc.site/share1262.html

rpm [选项] 软件包名称

命令选项文章源自今夕何夕兮-https://www.ginc.site/share1262.html

-i					安装
-v					显示详细信息
-h					显示安装进度
-e					卸载
-U					升级,如果系统中有低版本的就会升级,如果系统没有安装相应的包,则安装
-F					有条件的升级,会检测用户指定的软件包是否已安装到linux中
--nodeps			        忽略软件包之间的依赖关系
--replacefiles		        覆盖文件
--replacepkgs		        修复
--force				强制
--test				测试
-q					查询指定的软件包是否安装
-qi					查看指定的软件包的信息,包括开发商,版本,说明
-ql					查看指定软件包中所包含的文件列表
-qc					查看指定软件包的配置文件
-qa					查看本机安装的所有包
-qf					查看一个文件归属于哪个已安装的软件包

2、yum软件包

1、介绍

yum(Yellow dog Updater, Modified)是一个rpm的管理工具, yum仓库存储了大量的rpm软件包,通过FTP|HTTP|HTTPS|FILE方式共享软件包。可以更轻松的管理Linux系统中的软件。可以使用yum来安装或卸载软件、也可以利用yum来更新系统。不管是安装、更新或者删除,yum都会自动解决软件间的依赖性问题。文章源自今夕何夕兮-https://www.ginc.site/share1262.html

2、配置yum源

CentOS8yum的下载源配置文件统一都放到/etc/yum.repos.d/目录中,都是默认的下载源。文章源自今夕何夕兮-https://www.ginc.site/share1262.html

[root@Ginc ~]# cd /etc/yum.repos.d/
[root@Ginc yum.repos.d]# ls
CentOS-Linux-AppStream.repo          CentOS-Linux-Devel.repo             CentOS-Linux-Media.repo
CentOS-Linux-BaseOS.repo             CentOS-Linux-Extras.repo            CentOS-Linux-Plus.repo
CentOS-Linux-ContinuousRelease.repo  CentOS-Linux-FastTrack.repo         CentOS-Linux-PowerTools.repo
CentOS-Linux-Debuginfo.repo          CentOS-Linux-HighAvailability.repo  CentOS-Linux-Sources.repo

新建一个名为repos的文件夹

[root@Ginc yum.repos.d]# mkdir repos
[root@Ginc yum.repos.d]# ls
CentOS-Linux-AppStream.repo          CentOS-Linux-Devel.repo             CentOS-Linux-Media.repo       repos
CentOS-Linux-BaseOS.repo             CentOS-Linux-Extras.repo            CentOS-Linux-Plus.repo
CentOS-Linux-ContinuousRelease.repo  CentOS-Linux-FastTrack.repo         CentOS-Linux-PowerTools.repo
CentOS-Linux-Debuginfo.repo          CentOS-Linux-HighAvailability.repo  CentOS-Linux-Sources.repo

进入repos文件夹,为避免干扰,新建的文件都放到新建的repos文件夹里

[root@Ginc yum.repos.d]# cd repos
[root@Ginc repos]#

使用vim命令建立自己的下载源配置文件

[root@Ginc repos]# vim ginc.repo

在新建的文件添加下面代码

[Ginc] //yum源的名称
  
name=ginc-BaseOS 

enabled=1 

gpgcheck=0 

baseurl= http://example.com/myrepo/

[server-AppStream]

name=server-AppStream

enabled=1

gpgcheck=0

baseurl=http://example.com/myrepo/

[Ginc]是软件源的标识符,name是软件源的名称,baseurl是软件源的URL地址,enabled表示是否启用该软件源(1表示启用,0表示禁用),gpgcheck表示是否进行GPG签名检查(0表示不检查,1表示检查)。你可以根据自己的需求修改这些参数。

由于CentOS8的软件包存放在BaseOS和AppStream目录中,所以这里面为了保证需要的软件包能正确安装我们配置了两个yum源,这两部分内容你可以放到一个文件里,也可以分别放在两个文件中。

3、使用

1、安装

命令

yum install <package-name>

2、更新

yum update --disablerepo=* --enablerepo=Ginc

只想更新新创建的软件源中的软件包

3、源码包

在linux系统中,很多软件都会提供tar包版本,这种tar工具打包的软件包我们一般称之为源码包,在这些源码包中一般包含有,程序源代码文件,配置文件(configure),安装使用说明。

下面演示完整源码包安装流程:以nginx为例

https://nginx.org/en/download.html

1、获取软件包

wget https://nginx.org/download/nginx-1.24.0.tar.gz

可以看到下面执行结果

[root@Ginc repos]# cd ~
[root@Ginc ~]# wget https://nginx.org/download/nginx-1.24.0.tar.gz
--2025-01-15 06:36:26--  https://nginx.org/download/nginx-1.24.0.tar.gz
正在解析主机 nginx.org (nginx.org)... 3.125.197.172, 52.58.199.22, 2a05:d014:5c0:2601::6, ...
正在连接 nginx.org (nginx.org)|3.125.197.172|:443... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:1112471 (1.1M) [application/octet-stream]
正在保存至: “nginx-1.24.0.tar.gz”

nginx-1.24.0.tar.gz             100%[=======================================================>]   1.06M  1.37MB/s  用时 0.8s    

2025-01-15 06:36:28 (1.37 MB/s) - 已保存 “nginx-1.24.0.tar.gz” [1112471/1112471])

2、解压

[root@Ginc ~]# tar xf nginx-1.24.0.tar.gz
[root@Ginc ~]# ls
anaconda-ks.cfg initial-setup-ks.cfg nginx-1.24.0 nginx-1.24.0.tar.gz
[root@Ginc ~]#

3、检查安装需求

[root@Ginc nginx-1.24.0]# ./configure --prefix=/usr/local/nginx
checking for OS
 + Linux 4.18.0-348.el8.x86_64 x86_64
checking for C compiler ... found
 + using GNU C compiler
 + gcc version: 8.3.1 20191121 (Red Hat 8.3.1-5) (GCC) 
checking for gcc -pipe switch ... found
checking for -Wl,-E switch ... found
...........................
Configuration summary
  + using system PCRE library
  + OpenSSL library is not used
  + using system zlib library

  nginx path prefix: "/usr/local/nginx"
  nginx binary file: "/usr/local/nginx/sbin/nginx"
  nginx modules path: "/usr/local/nginx/modules"
  nginx configuration prefix: "/usr/local/nginx/conf"
  nginx configuration file: "/usr/local/nginx/conf/nginx.conf"
  nginx pid file: "/usr/local/nginx/logs/nginx.pid"
  nginx error log file: "/usr/local/nginx/logs/error.log"
  nginx http access log file: "/usr/local/nginx/logs/access.log"
  nginx http client request body temporary files: "client_body_temp"
  nginx http proxy temporary files: "proxy_temp"
  nginx http fastcgi temporary files: "fastcgi_temp"
  nginx http uwsgi temporary files: "uwsgi_temp"
  nginx http scgi temporary files: "scgi_temp"

4、编译

使用gcc编译,生成二进制文件

[root@Ginc nginx-1.24.0]# make -j4
make -f objs/Makefile
make[1]: 进入目录“/root/nginx-1.24.0”
cc -c -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g  -I src/core -I src/event -I src/event/modules -I src/os/unix -I objs \
	-o objs/src/core/ngx_inet.o \
	src/core/ngx_inet.c
           ...........省略过程

5、安装

[root@Ginc nginx-1.24.0]# make install
make -f objs/Makefile install
make[1]: 进入目录“/root/nginx-1.24.0”
test -d '/usr/local/nginx' || mkdir -p '/usr/local/nginx'
test -d '/usr/local/nginx/sbin' \
	|| mkdir -p '/usr/local/nginx/sbin'
test ! -f '/usr/local/nginx/sbin/nginx' \
	|| mv '/usr/local/nginx/sbin/nginx' \
		'/usr/local/nginx/sbin/nginx.old'
cp objs/nginx '/usr/local/nginx/sbin/nginx'
test -d '/usr/local/nginx/conf' \
	|| mkdir -p '/usr/local/nginx/conf'
cp conf/koi-win '/usr/local/nginx/conf'
cp conf/koi-utf '/usr/local/nginx/conf'
cp conf/win-utf '/usr/local/nginx/conf'
test -f '/usr/local/nginx/conf/mime.types' \
	|| cp conf/mime.types '/usr/local/nginx/conf'
cp conf/mime.types '/usr/local/nginx/conf/mime.types.default'
test -f '/usr/local/nginx/conf/fastcgi_params' \
	|| cp conf/fastcgi_params '/usr/local/nginx/conf'
cp conf/fastcgi_params \
	'/usr/local/nginx/conf/fastcgi_params.default'
test -f '/usr/local/nginx/conf/fastcgi.conf' \
	|| cp conf/fastcgi.conf '/usr/local/nginx/conf'
cp conf/fastcgi.conf '/usr/local/nginx/conf/fastcgi.conf.default'
test -f '/usr/local/nginx/conf/uwsgi_params' \
	|| cp conf/uwsgi_params '/usr/local/nginx/conf'
cp conf/uwsgi_params \
	'/usr/local/nginx/conf/uwsgi_params.default'
test -f '/usr/local/nginx/conf/scgi_params' \
	|| cp conf/scgi_params '/usr/local/nginx/conf'
cp conf/scgi_params \
	'/usr/local/nginx/conf/scgi_params.default'
test -f '/usr/local/nginx/conf/nginx.conf' \
	|| cp conf/nginx.conf '/usr/local/nginx/conf/nginx.conf'
cp conf/nginx.conf '/usr/local/nginx/conf/nginx.conf.default'
test -d '/usr/local/nginx/logs' \
	|| mkdir -p '/usr/local/nginx/logs'
test -d '/usr/local/nginx/logs' \
	|| mkdir -p '/usr/local/nginx/logs'
test -d '/usr/local/nginx/html' \
	|| cp -R html '/usr/local/nginx'
test -d '/usr/local/nginx/logs' \
	|| mkdir -p '/usr/local/nginx/logs'
make[1]: 离开目录“/root/nginx-1.24.0”

到此我们就把nginx安装到/usr/local目录下了,可以使用ls命令看看有没有东西

[root@Ginc nginx-1.24.0]# ls /usr/local/nginx/

6、验证

启动软件

[root@Ginc nginx-1.24.0]# /usr/local/nginx/sbin/nginx

查看nginx状态

[root@Ginc ~]# sudo systemctl status nginx
● nginx.service - The nginx HTTP and reverse proxy server
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled)
   Active: active (running) since Wed 2025-01-15 07:06:26 EST; 3s ago
  Process: 150388 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS)
  Process: 150387 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS)
  Process: 150385 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS)
 Main PID: 150390 (nginx)
    Tasks: 3 (limit: 11252)
   Memory: 9.9M
   CGroup: /system.slice/nginx.service
           ├─150390 nginx: master process /usr/sbin/nginx
           ├─150391 nginx: worker process
           └─150392 nginx: worker process

1月 15 07:06:26 Ginc systemd[1]: Starting The nginx HTTP and reverse proxy server...
1月 15 07:06:26 Ginc nginx[150387]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
1月 15 07:06:26 Ginc nginx[150387]: nginx: configuration file /etc/nginx/nginx.conf test is successful
1月 15 07:06:26 Ginc systemd[1]: Started The nginx HTTP and reverse proxy server.

打开虚拟机浏览器输入:

http://localhost

看到下面界面,说明nginx安装成功。

 

 

转载请注明来自:今夕何夕兮
本站原创内容版权遵循 CC-BY-NC-SA4.0 协议授权,本站部分资源收集于网络,只做学习和交流使用,版权归原作者所有。

weinxin
提示:
若文章中图片、链接等信息出错,请及时反馈,博主将在第一时间更新。谢谢大家!
 
Ginc
  • 本文由 Ginc 发表于2025年1月15日
  • 转载请保留本文链接:Linux学习笔记_7-软件/软件包:https://www.ginc.site/share1262.html
    • jk
      jk

      日常来访2

    匿名

    发表评论

    匿名网友
    确定

    拖动滑块以完成验证