Linux软件安装

包命名

源代码打包文件命名

name-version.tar.gz|bz2|xz

如:nginx-1.24.0.tar.gz

rpm包命名方式

name-version-release.arch.rpm

常见的arch:

  • x86:i386、i586、i686
  • x86_64:x64、x86_64、amd64
  • 跨平台:noarch

如:NetworkManager-1.32.0-0.1.el8.x86_64.rpm

包内容

  • 二进制文件
  • 库文件
  • 配置文件
  • 帮助文件

包分类

Application-VERSION-ARCH.rpm:主包

Application-devel-VERSION-ARCH.rpm:开发子包

Application-utils-VERSION-ARHC.rpm:其它子包

Application-libs-VERSION-ARHC.rpm:其它子包

解决包依赖工具

  • yum:rpm包管理器的前端工具
  • dnf:Fedora 18+ rpm包管理器前端管理工具,CentOS 8 版代替 yum
  • apt:deb包管理器前端工具
  • zypper:suse上的rpm前端管理工具

常见程序包管理器

  • dpkg
  • rpm

RPM

全称 RedHat Package Manager ,红帽软件包管理器。是一种预先编译并打包成为rpm格式再加以安装的方式;rpm安装会产生记录在 /varlib/rpm 中的数据库。yum底层是调用rpm去安装软件的。

安装

命令:rpm -ivh 软件包1.rpm 软件包2.rpm …

-i:install 安装的意思

-v:查看安装信息

-h:显示安装进度

--nodeps:忽略依赖关系

升级

命令:rpm -[U|F]vh [安装选项] 软件包.rpm

-Uvh:若安装有旧版程序包,则"升级",如果不存在旧版程序包,则"安装"

-Fvh:若安装有旧版程序包,则"升级", 如果不存在旧版程序包,则不执行升级操作

安装选项:

--oldpackage:降级

--force:强制安装

注意:

  • 不要对内核做升级操作;Linux支持多内核共存,有需要直接安装新版内核
  •  如果原程序包的配置文件安装后曾被修改,升级时,新版本提供的同一个配置文件不会直接覆盖老版本的配置文件,而把新版本文件重命名(FILENAME.rpmnew)后保留

查询

查询是否安装过 logrotate 软件

列出 logrotate 提供的所有目录与文件

列出 logrotate 相关信息

找出 logrotate 的配置文件

误删了某个文件,查询删除的文件属于哪个软件(因为rpm有记录在 /var/lib/rpm 当中的数据库)

rpm -qf 文件名

验证

验证(verify)原理:使用 /var/lib/rpm 下的数据库内容对比当前系统环境下的所有软件文件

/etc/crontab 文件前有个 T ,释义如下

当一个配置文件所有的信息都被改过,则显示 SM5DLUGTP c 文件名;其中 c 代表文件类型。

c:配置文件 config file

d:文件数据文件 documenttation

g:通常为该文件不被某个软件所包含,较少发生 ghost file

l:许可证文件 license file

r:自述文件 read me

卸载

rpm -e 软件名

由于RPM文件常常会安装/移除/升级等,某些动作或许可能会导致RPM数据库/var/lib/rpm/ 内的文件破损。果真如此的话,可以使用–rebuilddb 这个选项来重建数据库喔

rpm –rebuilddb

SPRM

提供源码、configure和makefile,可自行修改配置参数。文件名:xxx.src.rpm

安装流程

  1. 以rpm方式编译,此时srpm文件被编译为rpm文件
  2. 安装rpm文件

对比

安装SRPM

使用源码默认配置时
两个选项
--rebuild将srpm进行 编译 与 打包
--recomplie将srpm进行 编译 、打包、安装

 相关目录

/root/rpmbuild/SPECS该软件的配置文件
/root/rpmbuild/SOURCES该软件的原始文件,xxx.tar.gz的文件及config这个配置文件
/root/rpmbuild/BUILD编译过程中,暂存数据的目录
/root/rpmbuild/RPMS编译成功后,打包后的文件放置于此
/root/rpmbuild/SRPMS用户自行编译SRPM软件包后生成的目录

YUM

yum/dnf 工作原理

yum/dnf是基于C/S模式

  • yum服务器存放rpm包和相关包的元数据库
  • yum客户端访问yum服务器进行安装或查询

先在yum服务器上创建 yum repository(仓库),在仓库中事先存储了众多rpm包,以及包的相关的元数据文件(放置于特定目录repodata下),当yum客户端利用yum/dnf工具进行安装包时,会自动下载repodata中的元数据,查询元数据是否存在相关的包及依赖关系,自动从仓库中找到相关包下载并安装

yum客户端配置

/etc/yum.conf:为所有仓库提供公共配置

/etc/yum.repo.d/*.repo:为每个仓库提供配置文件

[base]:代表软件库的名字,中括号一定要存在,里面名称可随意,但是不能存在相同的软件库名称。

name:说明此软件库意义

mirrorlist:列出软件源可用的镜像站,可以注释此行不用

baseurl=:最重要的部分,后面接软件源的实际地址,baseurl是指定一个软件源的网址

enable=1:指这个软件源被启用,不启用enable=0

gpgcheck=1这是需要查看RPM文件内的数字签名,不需要gpgchenk=0

gpgkey=:就是数字签名的公钥文件所在地,使用默认值

命令格式

yum 选项 参数 软件名

选项:

-y:当需要用户输入时,自动输入yes响应

-q:静默模式

--nogpgcheck:禁止gpg check

--enablerepo=仓库名:临时启用此处指定的repo,支持通配符

--disablerepo=仓库名:临时启用此处指定的repo,若和--enablerepo同时用,处于后面的生效

–installroot=完整路径:将软件安装在 完整路径 ,而不使用默认路径

显示仓库列表:yum repolist

[root@wenzi ~]#yum repolist
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
repo id                                                                         repo name                                                                                              status
base/7/x86_64                                                                   CentOS-7 - Base - mirrors.aliyun.com                                                                   10,072
extras/7/x86_64                                                                 CentOS-7 - Extras - mirrors.aliyun.com                                                                    518
updates/7/x86_64                                                                CentOS-7 - Updates - mirrors.aliyun.com                                                                 5,527
repolist: 16,117

[root@wenzi ~]#yum --disablerepo=extra* repolist
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
repo id                                                                         repo name                                                                                              status
base/7/x86_64                                                                   CentOS-7 - Base - mirrors.aliyun.com                                                                   10,072
updates/7/x86_64                                                                CentOS-7 - Updates - mirrors.aliyun.com                                                                 5,527

仓库缓存

清除仓库缓存

缓存位于 /var/cache/yum/xxx

[root@wenzi ~]#yum clean all

生成仓库缓存

[root@wenzi ~]#yum makecache

显示yum管理的所有软件:yum list

[root@centos8 ~]#yum list | head
Last metadata expiration check: 1:11:32 ago on Wed 20 Dec 2023 12:48:07 AM CST.
Installed Packages
GConf2.x86_64                                                     3.2.6-22.el8                                                      @AppStream
ModemManager.x86_64                                               1.10.8-2.el8                                                      @anaconda
ModemManager-glib.x86_64                                          1.10.8-2.el8                                                      @anaconda
NetworkManager.x86_64                                             1:1.22.8-4.el8                                                    @anaconda
NetworkManager-adsl.x86_64                                        1:1.22.8-4.el8                                                    @anaconda
NetworkManager-bluetooth.x86_64                                   1:1.22.8-4.el8                                                    @anaconda
NetworkManager-config-server.noarch                               1:1.22.8-4.el8                                                    @anaconda
NetworkManager-libnm.x86_64                                       1:1.22.8-4.el8                                                    @anaconda
 只查看已安装的包
[root@centos8 ~]#yum list installed | tail -n 10
xz-libs.x86_64                                     5.2.4-3.el8                                    @anaconda
yajl.x86_64                                        2.1.0-10.el8                                   @AppStream
yelp.x86_64                                        2:3.28.1-3.el8                                 @AppStream
yelp-libs.x86_64                                   2:3.28.1-3.el8                                 @AppStream
yelp-tools.noarch                                  3.28.0-3.el8                                   @AppStream
yelp-xsl.noarch                                    3.28.0-2.el8                                   @AppStream
yum.noarch                                         4.2.17-6.el8                                   @anaconda
zenity.x86_64                                      3.28.1-1.el8                                   @AppStream
zip.x86_64                                         3.0-23.el8                                     @anaconda
zlib.x86_64                                        1.2.11-13.el8                                  @anaconda
查看可安装的包
[root@centos8 ~]#yum list available | head
Last metadata expiration check: 1:14:51 ago on Wed 20 Dec 2023 12:48:07 AM CST.
Available Packages
3proxy.x86_64                                                     0.8.13-1.el8                                                      epel
6tunnel.x86_64                                                    0.13-1.el8                                                        epel
AMF-devel.noarch                                                  1.4.30-1.el8                                                      epel
AMF-samples.noarch                                                1.4.30-1.el8                                                      epel
Agda.x86_64                                                       2.5.3-14.el8                                                      epel
AusweisApp2.x86_64                                                1.22.3-1.el8                                                      epel
AusweisApp2-data.noarch                                           1.22.3-1.el8                                                      epel
AusweisApp2-doc.noarch                                            1.22.3-1.el8                                                      epel
显示某个软件包可安装的所有版本
[root@wenzi ~]$yum list httpd --showduplicates
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Available Packages
httpd.x86_64                                           2.4.6-95.el7.centos                                              base
httpd.x86_64                                           2.4.6-97.el7.centos                                              updates
httpd.x86_64                                           2.4.6-97.el7.centos.1                                            updates
httpd.x86_64                                           2.4.6-97.el7.centos.2                                            updates
httpd.x86_64                                           2.4.6-97.el7.centos.4                                            updates
httpd.x86_64                                           2.4.6-97.el7.centos.5                                            updates
httpd.x86_64                                           2.4.6-98.el7.centos.6                                            updates
httpd.x86_64                                           2.4.6-98.el7.centos.7                                            updates
httpd.x86_64                                           2.4.6-99.el7.centos.1                                            updates
查看可升级的包
[root@centos8 ~]#yum list updates | head
Last metadata expiration check: 1:15:26 ago on Wed 20 Dec 2023 12:48:07 AM CST.
Available Upgrades
ModemManager.x86_64                                1.10.8-4.el8                                  base
ModemManager-glib.x86_64                           1.10.8-4.el8                                  base
NetworkManager.x86_64                              1:1.32.10-4.el8                               base
NetworkManager-adsl.x86_64                         1:1.32.10-4.el8                               base
NetworkManager-bluetooth.x86_64                    1:1.32.10-4.el8                               base
NetworkManager-config-server.noarch                1:1.32.10-4.el8                               base
NetworkManager-libnm.x86_64                        1:1.32.10-4.el8                               base
NetworkManager-team.x86_64                         1:1.32.10-4.el8                               base
查看指定的包
[root@centos8 ~]#yum list nginx*
Last metadata expiration check: 1:16:02 ago on Wed 20 Dec 2023 12:48:07 AM CST.
Available Packages
nginx.x86_64                                                                            1:1.14.1-9.module_el8.0.0+184+e34fea82                                                      AppStream
nginx-all-modules.noarch                                                                1:1.14.1-9.module_el8.0.0+184+e34fea82                                                      AppStream
nginx-filesystem.noarch                                                                 1:1.14.1-9.module_el8.0.0+184+e34fea82                                                      AppStream
nginx-mod-http-image-filter.x86_64                                                      1:1.14.1-9.module_el8.0.0+184+e34fea82                                                      AppStream
nginx-mod-http-perl.x86_64                                                              1:1.14.1-9.module_el8.0.0+184+e34fea82                                                      AppStream
nginx-mod-http-xslt-filter.x86_64                                                       1:1.14.1-9.module_el8.0.0+184+e34fea82                                                      AppStream
nginx-mod-mail.x86_64                                                                   1:1.14.1-9.module_el8.0.0+184+e34fea82                                                      AppStream
nginx-mod-stream.x86_64                                                                 1:1.14.1-9.module_el8.0.0+184+e34fea82                                                      AppStream

安装软件:yum install 包名

[root@centos8 ~]#yum -y install nginx.x86_64
Last metadata expiration check: 1:19:21 ago on Wed 20 Dec 2023 12:48:07 AM CST.
Dependencies resolved.
=============================================================================================================================================================================================
 Package                                             Architecture                   Version                                                          Repository                         Size
=============================================================================================================================================================================================
Installing:
 nginx                                               x86_64                         1:1.14.1-9.module_el8.0.0+184+e34fea82                           AppStream                         570 k
Installing dependencies:
 nginx-all-modules                                   noarch                         1:1.14.1-9.module_el8.0.0+184+e34fea82                           AppStream                          23 k
 nginx-filesystem                                    noarch                         1:1.14.1-9.module_el8.0.0+184+e34fea82                           AppStream                          24 k
......
Complete!
重新安装包
[root@centos8 ~]#yum -y reinstall nginx

卸载软件:yum remove

[root@centos8 ~]#yum -y remove nginx

升级/降级

检查可用升级
[root@wenzi ~]#yum check-update
Loaded plugins: fastestmirror
Determining fastest mirrors
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
base                                                                                                                                                                  | 3.6 kB  00:00:00
extras                                                                                                                                                                | 2.9 kB  00:00:00
updates                                                                                                                                                               | 2.9 kB  00:00:00
updates/7/x86_64/primary_db                                                                                                                                           |  24 MB  00:00:24

NetworkManager.x86_64                                                                      1:1.18.8-2.el7_9                                                                           updates
NetworkManager-libnm.x86_64                                                                1:1.18.8-2.el7_9                                                                           updates
NetworkManager-team.x86_64                                                                 1:1.18.8-2.el7_9                                                                           updates
NetworkManager-tui.x86_64                                                                  1:1.18.8-2.el7_9                                                                           updates
...
升级

yum upgrade|update 包名1 包名2

yum upgrade-minimal 最小化升级

降级

yum downgrade 包名1 包名2

查询

查看软件包信息
[root@wenzi ~]#yum info openssh-server
Installed Packages
Name        : openssh-server
Arch        : x86_64
Version     : 7.4p1
Release     : 21.el7
Size        : 970 k
Repo        : installed
From repo   : anaconda
Summary     : An open source SSH server daemon
URL         : http://www.openssh.com/portable.html
License     : BSD
Description : OpenSSH is a free version of SSH (Secure SHell), a program for logging
            : into and executing commands on a remote machine. This package contains
            : the secure shell daemon (sshd). The sshd daemon allows SSH clients to
            : securely connect to your SSH server.
查看某文件是来自哪个软件包
[root@wenzi ~]#yum provides /etc/ssh/sshd_config
openssh-server-7.4p1-21.el7.x86_64 : An open source SSH server daemon
Repo        : base
Matched from:
Filename    : /etc/ssh/sshd_config
以关键字搜索软件包
[root@wenzi ~]#yum search httpd
httpd.x86_64 : Apache HTTP Server
httpd-devel.x86_64 : Development interfaces for the Apache HTTP server
httpd-manual.noarch : Documentation for the Apache HTTP server
...
查看软件包的依赖包
[root@wenzi ~]#yum deplist httpd
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
package: httpd.x86_64 2.4.6-99.el7.centos.1
  dependency: /bin/sh
   provider: bash.x86_64 4.2.46-35.el7_9
  dependency: /etc/mime.types
   provider: mailcap.noarch 2.1.41-2.el7
  dependency: /usr/sbin/groupadd
   provider: shadow-utils.x86_64 2:4.6-5.el7
...

查看yum事务历史

yum 执行安装卸载命令会记录到相关日志中

  • CentOS7:/var/log/yum.log
  • CentOS8:/var/log/dnf.rpm.log   /var/log/dnf.log
[root@wenzi ~]#yum -y install httpd > /dev/null
[root@wenzi ~]#yum history
Loaded plugins: fastestmirror
ID     | Login user               | Date and time    | Action(s)      | Altered
-------------------------------------------------------------------------------
     5 | root <root>              | 2023-12-22 17:27 | Install        |    5
     4 | root <root>              | 2023-12-22 17:02 | Erase          |    1
     3 | root <root>              | 2023-12-22 17:02 | Install        |   19
     2 | System <unset>           | 2023-10-27 07:39 | Install        |    1
     1 | System <unset>           | 2023-10-27 07:35 | Install        |  337
history list

查看第五个操作相关信息
[root@wenzi ~]#yum history info 5
Transaction ID : 5
Begin time     : Fri Dec 22 17:27:14 2023
Begin rpmdb    : 356:f520c5f69b5d3c84d32c8eb318d93fbef8e5683a
End time       :            17:27:15 2023 (1 seconds)
End rpmdb      : 361:9ed70742b0ae77a10989afaf91ae18d2027b6cf4
User           : root <root>
Return-Code    : Success
Command Line   : -y install httpd
Transaction performed with:
    Installed     rpm-4.11.3-45.el7.x86_64                        @anaconda
    Installed     yum-3.4.3-168.el7.centos.noarch                 @anaconda
    Installed     yum-plugin-fastestmirror-1.1.31-54.el7_8.noarch @anaconda
Packages Altered:
    Dep-Install apr-1.4.8-7.el7.x86_64                   @base
    Dep-Install apr-util-1.5.2-6.el7_9.1.x86_64          @updates
    Install     httpd-2.4.6-99.el7.centos.1.x86_64       @updates
    Dep-Install httpd-tools-2.4.6-99.el7.centos.1.x86_64 @updates
    Dep-Install mailcap-2.1.41-2.el7.noarch              @base
history info

撤销第五个的操作 
[root@wenzi ~]#yum history undo 5 -y
Undoing transaction 5, from Fri Dec 22 17:27:14 2023
    Dep-Install apr-1.4.8-7.el7.x86_64                   @base
    Dep-Install apr-util-1.5.2-6.el7_9.1.x86_64          @updates
    Install     httpd-2.4.6-99.el7.centos.1.x86_64       @updates
    Dep-Install httpd-tools-2.4.6-99.el7.centos.1.x86_64 @updates
    Dep-Install mailcap-2.1.41-2.el7.noarch              @base
...
Removed:
  apr.x86_64 0:1.4.8-7.el7    apr-util.x86_64 0:1.5.2-6.el7_9.1    httpd.x86_64 0:2.4.6-99.el7.centos.1    httpd-tools.x86_64 0:2.4.6-99.el7.centos.1    mailcap.noarch 0:2.1.41-2.el7
Complete!

重新执行第五个操作
[root@wenzi ~]#yum history redo 5 -y
Repeating transaction 5, from Fri Dec 22 17:27:14 2023
    Dep-Install apr-1.4.8-7.el7.x86_64                   @base
    Dep-Install apr-util-1.5.2-6.el7_9.1.x86_64          @updates
    Install     httpd-2.4.6-99.el7.centos.1.x86_64       @updates
    Dep-Install httpd-tools-2.4.6-99.el7.centos.1.x86_64 @updates
    Dep-Install mailcap-2.1.41-2.el7.noarch              @base
....
Installed:
  httpd.x86_64 0:2.4.6-99.el7.centos.1

Dependency Installed:
  apr.x86_64 0:1.4.8-7.el7               apr-util.x86_64 0:1.5.2-6.el7_9.1               httpd-tools.x86_64 0:2.4.6-99.el7.centos.1               mailcap.noarch 0:2.1.41-2.el7

Complete!

实现私有yum仓库

下载所有yum仓库的相关包和meta数据

  • CentOS8:dnf reposync --repoid=repoid --download-metadata -p /path
  • CentOS7:reposync --repoid=repoid --download-metadata -p /path
    • CentOS7及以前版本需要安装yum-utils工具

生成私有yum仓库的元数据并创建repodata目录:

createrepo 本地软件仓库存储目录

实验

以192.168.28.10为局域网yum仓库服务器,将本地光盘的BaseOS、AppSteam及阿里云的Extras、Epel制作成私有仓库。

192.168.28.10自身使用的是Aliyun源

----------服务器端----------
安装httpd,关键目录 /var/www/html
[root@centos8 ~]#yum -y install httpd
[root@centos8 ~]#systemctl enable --now httpd

将光盘/dev/sr0挂载至/data
[root@centos8 ~]#mount /dev/sr0 /data/

将本地光盘内BaseOS和AppStream复制到web服务器
[root@centos8 ~]#cp -a /data/{BaseOS,AppStream} /var/www/html/centos/8/

将aliyun的extras epel下载到局域网web服务器
[root@centos8 ~]#dnf reposync --repoid=extras --download-metadata -p /var/www/html/centos/8;dnf reposync --repoid=epel --download-metadata -p /var/www/html/centos/8

重启httpd
[root@centos8 ~]#systemctl restart httpd

----------客户端----------
先屏蔽自身的yum仓库。再加入私有yum仓库
[root@centos8 ~]#vim /etc/yum.repos.d/cs.repo
[BaseOS]
name=wenzi BaseOS
baseurl=http://192.168.28.10:/centos/8/BaseOS
gpgcheck=0

[AppStream]
name=wenzi AppStream
baseurl=http://192.168.28.10:/centos/8/AppStream
gpgcheck=0

[Extras]
name=wenzi Extras
baseurl=http://192.168.28.10:/centos/8/extras
gpgcheck=0

[epel]
name=wenzi epel
baseurl=http://192.168.28.10:/centos/8/epel
gpgcheck=0

[root@centos8 yum.repos.d]#dnf clean all;dnf makecache
验证
[root@centos8 ~]#dnf -y install htop
Last metadata expiration check: 0:02:18 ago on Sat 23 Dec 2023 12:32:13 AM CST.
Dependencies resolved.
=============================================================================================================================================================================================
 Package                                    Architecture                                 Version                                            Repository                                  Size
...

Installed:
  htop-3.2.1-1.el8.x86_64

Complete!

更改yum源

以阿里源为例

1、备份原文件

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

2、下载阿里源到 /etc/yum.repo.d/

wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

3、清理yum缓存

yum clean all

4、生成新缓存

yum makecache

5、检查

yum list

使用本机原版光盘

当没有网络时,可以使用本机光盘作为主要的软件来源

yum软件群组

命令:yum [群组功能] [软件群组]

选项参数:

grouplist:列出所有可用的软件群组

groupinfo:后接群组名,可以知道该群组内含的所有软件名

groupinstall:安装整个群组软件

groupupdate:升级某个软件群组

groupremove:移除某个软件群组

EPEL

EPEL 的全称叫 Extra Packages for Enterprise Linux。EPEL 是由 Fedora 社区打造,为 RHEL 及衍生发行版如 CentOS、Scientific Linux 等提供高质量软件包的项目。装上了 EPEL 之后,就相当于添加了一个第三方源。

安装epel

yum -y install epel-release

dpkg

类似rpm,不能自动解决依赖

列出当前已安装的软件包

dpkg -l        类似rpm -qa

列出某个软件包的详细信息

dpkd -s 包名        类型rpm -qi

列出某个软件包内的文件

dpkg -L 包名        类似rpm -ql

列出某个文件来自哪个软件包

dpkg -S 包名        类似rpm -qf

[root@wenzi ~]#dpkg -S /bin/ls
coreutils: /bin/ls

apt

apt包索引配置文件

  • /etc/apt/sources.list
  • /etc/apt/sources.list.d

ubuntu常用安装包

apt purge ufw lxd lxd-client lxcfs liblxc-common

 
apt install iproute2 ntpdate tcpdump telnet traceroute nfs-kernel-server nfs-common lrzsz tree openssl libssl-dev libpcre3 libpcre3-dev
zlib1g-dev gcc openssh-server iotop unzip zip

安装软件包

安装软件指定版本需要 apt install nginx=1.17.10-0ubuntu1

显示软件可安装的版本

[root@wenzi ~]#apt-cache madison tree
      tree |    2.0.2-1 | https://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy/universe amd64 Packages
      tree |    2.0.2-1 | https://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy/universe Sources

[root@wenzi ~]#apt -y install tree=2.0.2-1

移除软件包

[root@wenzi ~]#apt remove tree

移除软件包及配置文件

[root@wenzi ~]#apt purge tree

刷新存储库索引

类似 yum clean all;yum makecache

[root@wenzi ~]#apt update

升级所有可升级的软件包

[root@wenzi ~]#apt upgrade

自动删除无用包并解决依赖关系(常用)

[root@wenzi ~]#apt autoremove tree

在升级软件包时自动处理依赖关系

[root@wenzi ~]#apt full-upgrade

显示软件列表

[root@wenzi ~]#apt list tree
Listing... Done
tree/jammy 2.0.2-1 amd64

搜索软件

[root@wenzi ~]#apt search tree
Sorting... Done
Full Text Search... Done
altree-examples/jammy 1.3.2-1build2 all
  example files for ALTree

查看某个安装包的详细信息

[root@wenzi ~]#apt show tree
Package: tree
Version: 2.0.2-1
Priority: optional
Section: universe/utils
Origin: Ubuntu
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Original-Maintainer: Florian Ernst <florian@debian.org>
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Installed-Size: 116 kB
Depends: libc6 (>= 2.34)
Homepage: http://mama.indstate.edu/users/ice/tree/
Task: xubuntu-desktop, lubuntu-desktop, ubuntu-mate-core, ubuntu-mate-desktop, ubuntu-budgie-desktop, ubuntu-budgie-desktop-raspi
Download-Size: 47.9 kB
APT-Sources: https://mirrors.tuna.tsinghua.edu.cn/ubuntu jammy/universe amd64 Packages
Description: displays an indented directory tree, in color
 Tree is a recursive directory listing command that produces a depth indented
 listing of files, which is colorized ala dircolors if the LS_COLORS environment
 variable is set and output is to tty.

更换yum源

修改 /etc/apt/sources.list 配置文件,使用清华大学的软件仓库
[root@wenzi ~]#vim /etc/apt/sources.list
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse

deb http://security.ubuntu.com/ubuntu/ jammy-security main restricted universe multiverse
deb-src http://security.ubuntu.com/ubuntu/ jammy-security main restricted universe multiverse

# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse

更新仓库缓存
[root@wenzi ~]#apt update

源码编译安装

安装最小化安装常用开发工具、开发环境、软件依赖包

yum -y install gcc make autoconf gcc-c++ glibc glibc-devel pcre pcre-devel openssl openssl-devel systemd-devel zlib-devel vim lrzsz tree tmux lsof tcpdump wget net-tools iotop bc bzip2 zip unzip nfs-utils man-pages

./configure:检测环境并指定软件安装目录,生成Makefile文件。此阶段提示缺包,缺什么装什么。

make:编译生成可执行的二进制文件。当执行make时,make会在当前目录搜寻 makefile 文件,makefile 里记录了原始码和如何编译的详细信息。此阶段提示缺包,需要重新解压缩源码包,重新./configure,再make。

make install:真正的安装

流程: 安装依赖软件包/工具 >> 下载源码包 >> 解压 >> ./configure --prefix=xxx >> make >> make install

建议:

1、将源码包解压至 /usr/local/src 中。

2、安装时最好安装在 /usr/local/程序名 默认目录下。

3、./configure --help 可查看--prefix等类似参数

安装后配置

1、二进制程序目录导入PATH环境变量 或 使用ln -s xxx /usr/local/bin/ 建立二进制程序的软链接

2、相关用户及文件。一些开源软件编译完成后需要手动创建相关用户及文件

3、导入帮助手册。vim /etc/man.config 或 man_db.conf,添加一个MANPATH

案例:编译安装 tengine 。

准备编译环境和编译器

yum -y install gcc make zlib-devel pcre pcre-devel openssl-devel

下载 tengine 源码包

解压缩源码包至 /usr/local/src 目录下

进入解压缩后的源码包内 /usr/local/src/tengine-2.3.2 ,配置自定义项,可指定属主和属组与安装目录,此例新建 www 用户用于web服务。

编译

安装

验证

卸载

将安装目录 /usr/local/tengine 删除即可。

案例:编译安装nginx

准备环境

[root@centos8 data]#yum -y install gcc make autoconf gcc-c++ glibc glibc-devel pcre pcre-devel openssl openssl-devel systemd-devel zlib-devel vim lrzsz tree tmux lsof tcpdump wget net-tools iotop bc bzip2 zip unzip nfs-utils man-pages

下载源码包并解压源码包至/usr/local/src/

[root@centos8 data]#wget http://nginx.org/download/nginx-1.24.0.tar.gz -P /usr/local/src/
[root@centos8 data]#tar -zx -f nginx-1.24.0.tar.gz -C /usr/local/src/
[root@centos8 data]#ls /usr/local/src/
nginx-1.24.0  nginx-1.24.0.tar.gz

生成Makefile文件。/apps/nginx 无需预先创建,会自动生成

[root@centos8 nginx-1.24.0]#./configure --prefix=/apps/nginx --with-http_ssl_module

多线程编译。通用方法:grep -c processor /proc/cpuinfo

[root@centos8 nginx-1.24.0]#make -j `grep -c processor /proc/cpuinfo`

安装

[root@centos8 nginx-1.24.0]#make install
[root@centos8 nginx-1.24.0]#tree /apps/ -d
/apps/
└── nginx
    ├── conf
    ├── html
    ├── logs
    └── sbin

为二进制程序建立软连接

[root@centos8 ~]#ln -s /apps/nginx/sbin/nginx /usr/local/bin/
[root@centos8 ~]#nginx -version
nginx version: nginx/1.24.0


或修改PATH变量
[root@centos8 ~]#echo 'PATH=/apps/nginx/sbin:$PATH' > /etc/profile.d/nginx.sh
[root@centos8 ~]#. /etc/profile.d/nginx.sh
[root@centos8 ~]#nginx -version
nginx version: nginx/1.24.0

二进制安装

已经编译好的执行程序文件,解压后即可使用

流程:下载二进制包 >> 解压

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值