自学内容网 自学内容网

Linux入门系列--软件包安装

一、前言

在我们安装Linux系统的时候,不同的发行版本提供的默认指令有所不同,如果你想使用一些命令,可以从Ubuntu或Centos服务器去下载这些命令。(本文以Ubuntu为例进行讲解)。

假设现在我们有三台机器,想要获取下载一些命令用来后续工作使用或解决当下工作需求。

按照我们的理解,就是这样的,直接从Ubuntu服务器下载。这样也对,但也不对,因为Ubuntu的服务器在国外。想必大家都知道,在国内访问国外网站,中间会有一堵“墙”,导致我们无法正常访问,所以,我们想要从Ubuntu服务器获取软件包有点困难,还需要一些网络知识去翻墙。

所以这时候就有就一些大佬站出来了,例如阿里云(aliyun)、网易(163)、搜狐(souhu)等。它们提供了国内的服务器,它们的服务器上有从国外Ubuntu服务器中获取到的软件包。我们此时只需要从这些云服务器上获取即可。

此时就有一个问题出现了:这些国内的云服务器与国外的Ubuntu服务器一定就同步吗?有没有可能Ubuntu刚更新了一个命令,但这些云服务器中并没有更新的情况呢?Yes,这个想法是正确的,这时候我们就需要等国内的云服务器更新完我们再去下载才行。

但由于我是从阿里云服务器中拿软件包,所以我必须要先知道阿里云这台服务器中有什么软件包。如果我知道阿里云的服务器中有我要安装的软件包我才能安装。如果这里面没有,我就等着更新就完了。

那么我是每次都需要联网去获取阿里云服务器的软件包列表吗?这样效率太低下了,所以每次更新我们都会做这么一件事:将阿里云的软件包列表copy到本机一份:

这个过程其实就是:

sudo apt-get update #更新源服务器软件包列表

但是假如阿里云的软件包列表更新了,我本地的列表会跟着更新吗?不会的,我们知识copy不是引用,所以我们需要再次手动更新一下:sudo apt-get update去重新获取列表。

然后我就可以安装软件包了:

sudo apt-get install 软件名 #安装
sudo apt-get install tree #安装tree软件包

那么我想要下载软件,是不是需要一个下载源啊,这里我使用的是虚拟机,需要自行配置:

第一步:打开虚拟机的图形化界面

第二步:打开设置,选择“Ubuntu软件”选项卡,在下面的下载自:处选择下载源。我选择的是aliyun下的ubuntu,当然你也可以选择其他的下载源。

所以,当我使用更新指令时,就会显示如下:(包含http://mirrirs.aliyun.com/ubuntu路径) 

二、apt-get

1.更新:update

sudo apt-get update

一般我们需要以超级管理权限来执行更新与下载,所以在命令前暂时获取一次超级管理权限也就是加上sudo。(update的过程就是copy列表的过程)

stark@ubuntu:~/class$ sudo apt-get update
命中:1 http://mirrors.aliyun.com/ubuntu jammy InRelease
获取:2 http://mirrors.aliyun.com/ubuntu jammy-updates InRelease [128 kB]
获取:3 http://mirrors.aliyun.com/ubuntu jammy-backports InRelease [127 kB]
获取:4 http://mirrors.aliyun.com/ubuntu jammy-security InRelease [129 kB]
获取:5 http://mirrors.aliyun.com/ubuntu jammy-updates/main i386 Packages [729 kB]
获取:6 http://mirrors.aliyun.com/ubuntu jammy-updates/main amd64 Packages [2,179 kB]
获取:7 http://mirrors.aliyun.com/ubuntu jammy-updates/main Translation-en [372 kB]
获取:8 http://mirrors.aliyun.com/ubuntu jammy-updates/main amd64 DEP-11 Metadata [103 kB]
获取:9 http://mirrors.aliyun.com/ubuntu jammy-updates/restricted amd64 DEP-11 Metadata [212 B]
获取:10 http://mirrors.aliyun.com/ubuntu jammy-updates/universe amd64 Packages [1,177 kB]
获取:11 http://mirrors.aliyun.com/ubuntu jammy-updates/universe i386 Packages [751 kB]
获取:12 http://mirrors.aliyun.com/ubuntu jammy-updates/universe Translation-en [287 kB]
获取:13 http://mirrors.aliyun.com/ubuntu jammy-updates/universe amd64 DEP-11 Metadata [355 kB]
获取:14 http://mirrors.aliyun.com/ubuntu jammy-updates/multiverse amd64 DEP-11 Metadata [940 B]
获取:15 http://mirrors.aliyun.com/ubuntu jammy-backports/main amd64 DEP-11 Metadata [5,316 B]
获取:16 http://mirrors.aliyun.com/ubuntu jammy-backports/restricted amd64 DEP-11 Metadata [212 B]
获取:17 http://mirrors.aliyun.com/ubuntu jammy-backports/universe amd64 Packages [28.9 kB]
获取:18 http://mirrors.aliyun.com/ubuntu jammy-backports/universe i386 Packages [17.3 kB]
获取:19 http://mirrors.aliyun.com/ubuntu jammy-backports/universe amd64 DEP-11 Metadata [17.8 kB]
获取:20 http://mirrors.aliyun.com/ubuntu jammy-backports/universe DEP-11 48x48 Icons [21.8 kB]
获取:21 http://mirrors.aliyun.com/ubuntu jammy-backports/universe DEP-11 64x64 Icons [31.0 kB]
获取:22 http://mirrors.aliyun.com/ubuntu jammy-backports/multiverse amd64 DEP-11 Metadata [212 B]
获取:23 http://mirrors.aliyun.com/ubuntu jammy-security/main i386 Packages [567 kB]
获取:24 http://mirrors.aliyun.com/ubuntu jammy-security/main amd64 Packages [1,956 kB]
获取:25 http://mirrors.aliyun.com/ubuntu jammy-security/main Translation-en [313 kB]
获取:26 http://mirrors.aliyun.com/ubuntu jammy-security/main amd64 DEP-11 Metadata [43.0 kB]
获取:27 http://mirrors.aliyun.com/ubuntu jammy-security/restricted amd64 DEP-11 Metadata [208 B]
获取:28 http://mirrors.aliyun.com/ubuntu jammy-security/universe amd64 Packages [957 kB]
获取:29 http://mirrors.aliyun.com/ubuntu jammy-security/universe i386 Packages [647 kB]
获取:30 http://mirrors.aliyun.com/ubuntu jammy-security/universe Translation-en [203 kB]
获取:31 http://mirrors.aliyun.com/ubuntu jammy-security/universe amd64 DEP-11 Metadata [126 kB]
获取:32 http://mirrors.aliyun.com/ubuntu jammy-security/multiverse amd64 DEP-11 Metadata [208 B]
已下载 11.3 MB,耗时 5秒 (2,078 kB/s)                                      
正在读取软件包列表... 完成

2.安装:install

sudo apt-get install 软件名

sudo 的作用与上面一样。

stark@ubuntu:~/class$ sudo apt-get install sl
[sudo] stark 的密码: 
正在读取软件包列表... 完成
正在分析软件包的依赖关系树... 完成
正在读取状态信息... 完成                 
下列【新】软件包将被安装:
  sl
升级了 0 个软件包,新安装了 1 个软件包,要卸载 0 个软件包,有 5 个软件包未被升级。
需要下载 12.7 kB 的归档。
解压缩后会消耗 60.4 kB 的额外空间。
获取:1 http://mirrors.aliyun.com/ubuntu jammy/universe amd64 sl amd64 5.02-1 [12.7 kB]
已下载 12.7 kB,耗时 1秒 (23.5 kB/s)
正在选中未选择的软件包 sl。
(正在读取数据库 ... 系统当前共安装有 216451 个文件和目录。)
准备解压 .../archives/sl_5.02-1_amd64.deb  ...
正在解压 sl (5.02-1) ...
正在设置 sl (5.02-1) ...
正在处理用于 man-db (2.10.2-1) 的触发器 ...

sl命令就是一个小玩具,输入后,屏幕中会从右向左驶过一辆火车。 

3.卸载:remove

sudo apt-get remove 软件名

试着将刚刚下载的sl命令删除: 再次执行时将会提示找不到命令sl。

stark@ubuntu:~/class$ sudo apt-get remove sl
正在读取软件包列表... 完成
正在分析软件包的依赖关系树... 完成
正在读取状态信息... 完成                 
下列软件包将被【卸载】:
  sl
升级了 0 个软件包,新安装了 0 个软件包,要卸载 1 个软件包,有 5 个软件包未被升级。
解压缩后将会空出 60.4 kB 的空间。
您希望继续执行吗? [Y/n] y
(正在读取数据库 ... 系统当前共安装有 216474 个文件和目录。)
正在卸载 sl (5.02-1) ...
正在处理用于 man-db (2.10.2-1) 的触发器 ...
stark@ubuntu:~/class$ sl
找不到命令 “sl”,但可以通过以下软件包安装它:
sudo apt install sl

三、deb包

1.用法:

(debain分支下的Linux版本可用,像redhat分支下的Linux版本就不能用)。ubuntu就是debain分支下的发行版本。

sudo dpkg -i xxx.deb #安装deb软件包
sudo dpkg -r xxx.deb #删除软件包
sudo dpkg -r --purge xxx.deb #连同配置文件一同删除

sudo dpkg -info xxx.deb #查看软件包信息
sudo dpkg -L xxx.deb #查看文件拷贝详细信息
sudo dpkg -l #查看系统中已安装软件包信息

sudo dpkg-reconfigure xxx #重新配置软件包

2.助记:

-i :install安装

-r :remove移除

-info :information信息

-reconfigure:re重新,configure配置,重新配置。

四、yum

yum命令是一种基于RPM包管理系统的Linux发行版本中用于包管理的命令行工具。它提供了方便的方式来安装、更新、删除和搜索软件包,以及管理软件包仓库和依赖关系。(它可以自动解决软件包之间的依赖关系。)

1.语法:yum

yum [选项] [参数] [包名]

常用选项:

-y:在执行操作时自动回答yes,省去用户确认的步骤

-q:以静默模式执行命令,减少输出信息

-v:以详细模式执行命令,增加输出信息

-h:或--help,显示帮助信息

-c:在执行命令前检查软件包的完整性,可以避免安装损坏的软件包

常用参数:

软件包名称:在安装、更新、删除、搜索时,需要指定软件包名称。

group:用于安装、更新、删除。eg: yum group install "Development Tools" 将安装名为"Devement Tools"的软件包组

exclude:执行命令时排除指定的软件包。eg: yum update --exclude=nginx 将在更新时排除名为nginx的软件包

enablerepo/disablerepo:用于启用/禁用知道你过的软件包仓库。eg: yum install --enablerepo=epel nginx 将在安装nginx时启用名为epel的软件包仓库

repoid:指定要操作的软件名仓库的ID。eg:yum --repoid=epel install ngix将从名为epel的软件包仓库安装nginx软件包

2.用法:yum

yum install nginx #安装名为nginx的软件包
yum update #更新系统上已经安装软件包的版本
yum remove nginx #删除名为nginx的软件包
yum search nginx #搜索包含nginx关键字的软件包
yum list available #列出系统上可用的所有软件包
yum clean #清理yum缓存,释放磁盘空间


yum-config-manager --disable epel #禁用名为epel的软件包仓库。

yum命令是一种基于RPM包管理系统的Linux发行版本中用于包管理的命令行工具。它提供了方便的方式来安装、更新、删除和搜索软件包,以及管理软件包仓库和依赖关系。(它可以自动解决软件包之间的依赖关系。)本节详述了yum的基本格式语法,已经常见的用法指令。通过灵活运用yum命令可以方便管理本机软件包,提高工作效率。

五、源码安装法

一般不同版本源码不同,就不细说了,有需要的小伙伴可以自行看一下过程:

1. 解压缩 源代码包
#需要后续的压缩与解压缩命令
2. cd dir
#切换目录-解压后的目录
3. ./configure 
#检测文件是否缺失,创建Makefile,检测编译环境
4. make 
#编译源码,生成库和可执行文件
5. sudo make install
#把库和可执行程序,安装到系统路径下
6. sudo make distclean
#删除和卸载软件

感谢大家观看。


原文地址:https://blog.csdn.net/U2396573637/article/details/144086996

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!