centos7中的软件管理

一、wget

1、概念

  • wget是一个在命令行下运行的网络下载工具,它允许用户从Web服务器上下载文件。wget支持HTTP、HTTPS和FTP协议,可以在Linux系统中使用。用户可以通过wget命令指定要下载的文件的URL,并且可以选择保存文件的名称、下载文件的位置等选项。

2、wget的功能特点

  1. 下载文件:wget可以从指定的URL下载文件到本地计算机上。
  2. 断点续传:如果下载中途中断,可以使用wget进行断点续传,从中断处继续下载文件,而无需重新下载整个文件。
  3. 后台下载:wget支持在后台进行下载操作,这意味着你可以在下载文件的同时继续进行其他操作。
  4. 限速下载:可以通过设置下载速度参数来限制下载速度,确保下载过程不会占用太多带宽。
  5. 递归下载:wget支持递归下载,可以下载指定URL下的所有链接文件,甚至可以设置不下载父级目录或主机目录。
  6. 下载限制:可以根据需要只下载特定类型的文件,避免下载不需要的文件。

3、语法

  • wget [options] [URL]
  • 其中,options为wget命令的选项,URL为要下载的文件的URL地址。

4、wget选项解释

  • -O: 指定下载的文件名。
  • -c: 断点续传,即从上次下载中断的地方继续下载。
  • -b: 后台下载。
  • -q: 静默模式,不输出下载信息。
  • -t: 重试下载次数。
  • -T: 下载超时时间。
  • -U: User-Agent字符串,用于伪装浏览器或其他客户端身份。
  • -P: 下载到指定目录。
  • -r: 递归下载,即下载指定URL中所有链接指向的文件。
  • -np: 不进入上级目录。
  • -nd: 不创建目录结构。
  • -nc: 不覆盖已存在的文件,即遇到同名文件不进行下载。
  • -i: 从文件中读取URL列表进行下载。
  • -x: 建立基于时间戳的目录结构。
  • -S: 显示服务器返回的HTTP头信息。

5、安装

yum install -y wget

6、示例

  • 直接下载文件
wget url
  • 下载文件到指定文件
wget -O 文件名  url
  • 下载文件到指定目录
wget -P 目录名  url
  • 下载多个文件
wget <URL1> <URL2> <URL3> ...

二、CURL

1、概念

  • curl是一个强大的命令行工具,用于传输数据。它支持多种协议,包括HTTP、HTTPS、FTP等,可用于从网站下载文件、测试网站连接和执行其他网络相关操作。
  • 以下是curl的一些主要功能和用途:
  1. 下载文件:使用curl可以方便地从远程服务器下载文件。你只需提供文件的URL,curl会自动将文件下载到本地计算机上。
  2. 发送HTTP请求:curl可以模拟各种类型的HTTP请求,如GET、POST、PUT、DELETE等。这使得curl成为测试和调试Web服务的有用工具。
  3. 支持多种协议:除了HTTP,curl还支持其他常见的网络协议,如FTP、SMTP、POP3等。这意味着你可以使用curl与各种服务器进行通信。
  4. 自定义请求头:使用curl,你可以添加自定义的请求头信息,以模拟特定的请求。这在与需要特定头信息进行交互的API或服务器进行通信时非常有用。
  5. 跟随重定向:当访问一个URL时,如果遇到重定向,curl可以跟随重定向,并返回最终目标URL的内容。这对于获取重定向后的页面内容非常方便。
  6. 上传文件:curl支持通过HTTP协议上传文件。你可以使用curl将本地文件上传到远程服务器,这在处理文件上传功能时非常有用。
  7. 代理支持:如果你需要通过代理服务器访问目标URL,curl提供了相应的选项来配置代理服务器地址和端口。

2、语法

  • curl [选项] [URL]

3、选项

其中,选项可以是以下之一或多个组合:

  • -X <请求方法>:指定HTTP请求方法,例如GET、POST、PUT、DELETE等,默认为GET。 例如:curl -X POST http://www.example.com
  • -H <请求头>:添加自定义的HTTP请求头。 例如:curl -H "Content-Type: application/json" http://www.example.com
  • -d <数据>:发送POST请求时,附加数据作为请求体。 例如:curl -d "username=admin&password=123456" http://www.example.com/login
  • -F "<字段名>=<字段值>":以multipart/form-data格式发送POST请求中的表单数据。 例如:curl -F "file=@/path/to/file.jpg" http://www.example.com/upload
  • -o <文件名>:将响应保存到指定的文件中。 例如:curl -o response.txt http://www.example.com/api/data
  • -O:将远程文件保存到本地,并使用远程文件的名称。 例如:curl -O http://www.example.com/file.zip
  • -c <文件名>:将服务器返回的cookie保存到指定的文件中。 例如:curl -c cookies.txt http://www.example.com/login
  • -b <文件名>:读取指定的cookie文件并发送到服务器。 例如:curl -b cookies.txt http://www.example.com/profile
  • -u <用户名>:<密码>:指定HTTP基本认证的用户名和密码。 例如:curl -u admin:password http://www.example.com/api
  • -L:跟随重定向。 例如:curl -L http://www.example.com

三、安装命令—rpm

1、概念

  • RPM(RPM Package Manager)是一种软件包管理工具,用于在Red Hat系列Linux发行版中安装、更新、卸载和管理软件包。RPM软件包通常以.rpm文件的形式存在,每个.rpm文件包含了特定软件的程序文件、配置文件、文档等,并提供了安装、升级和卸载这些软件的方法。

2、RPM功能和用途

  1. 软件包管理:RPM允许用户轻松地安装、升级和卸载软件包,而无需手动处理所有文件和依赖关系。通过rpm命令,用户可以快速管理系统上安装的软件包。
  2. 依赖关系管理:RPM能够检测并处理软件包之间的依赖关系,确保在安装或升级软件包时,所需的依赖包也会被正确安装。
  3. 查询软件包信息:使用rpm命令,用户可以查询系统中已安装的软件包信息,包括软件包名称、版本、安装路径等。
  4. 验证软件包:RPM可以验证软件包的完整性,确保软件包没有被篡改或损坏。
  5. 构建软件包:开发人员可以使用RPM构建自己的软件包,打包他们的应用程序、库文件和其他相关文件,以便在其他系统上分发和安装。
  6. 升级系统:通过RPM,用户可以方便地升级系统中的软件包,保持系统安全性和稳定性。

3、RPM包的依赖性

(1) 树形依赖的示例:
  • 假设有三个软件包:A、B 和 C。软件包 A 依赖于软件包 B,而软件包 B 又依赖于软 件包 C。这种依赖关系形成了一个树形结构,其中软件包 A 是根节点,软件包 B 是 A 的子节点,软件包 C 是 B 的子节点。这种依赖关系是典型的树形依赖。
  • A -> B -> C 在这个例子中,软件包 A 依赖于软件包 B,而软件包 B 依赖于软件包 C。安装软件包 A 时,系统会自动 解析并安装软件包 B 和 C,以满足树形依赖关系。
(2) 环形依赖的示例:
  • 假设有三个软件包:X、Y 和 Z。软件包 X 依赖于软件包 Y,软件包 Y 依赖于软件包 Z,而软件包 Z 又依赖于软件包 X。
  • 这种依赖关系形成了一个闭环结构,其中软件包 X 依赖于软件包 Y, 软件包 Y 依赖于软件包 Z,而软件包 Z 又依赖于软件包 X。这种情况下就出现了环形依赖。 X -> Y Y -> Z Z -> X

4、RPM包的安装、升级、卸载和查询

  1. 包全名和包名
  • 例如:全名 httpd-2.4.6-67.el7.centos.x86_64.rpm 包名httpd
  • 操作没有安装的软件包时,使用包全名,操作的已经安装的软件包时,使用包名
  1. RPM安装 RPM包默认安装路径

centos 升级libc_centos 升级libc

(1)命令
  • rpm -ivh 包全名
(2)选项
  • -i(install) 安装
  • -v(verbose) 显示详细信息
  • -h(hash) 显示进度
  • –nodeps 不检测依赖性
  • -U (upgrade) 升级
  • -e (erase) 卸载
  • -q 查询(query)
  • -a 所有
  • -l 列表(list)
  • -f 查询系统文件属于哪个RPM包(file)
  • -R 查询软件包的依赖性(requires)
  • -p 查询安装包即将安装的位置

四、安装命令—yum

1、概念

  • Yum(Yellowdog Updater, Modified)是一个软件包管理工具,用于简化在Red Hat系列Linux发行版中安装、升级和移除软件包的过程。Yum可以自动解决软件包之间的依赖关系,并从预先配置的软件源(repositories)中下载所需的软件包。
  1. 软件包管理:Yum是一个强大的软件包管理工具,允许用户轻松地安装、升级和移除软件包。用户可以通过简单的命令来管理系统上的软件包,而不必手动处理所有文件和依赖关系。
  2. 依赖关系解决:Yum能够自动解决软件包之间的依赖关系。当用户尝试安装或升级一个软件包时,Yum会检查并下载该软件包所需的其他软件包,以确保系统正常运行。
  3. 软件源管理:Yum使用软件源(repositories)来获取软件包。用户可以配置Yum以使用官方软件源或第三方软件源,从而获取更多软件包选择。
  4. 更新系统:Yum提供了简便的方式来更新系统中的软件包。通过运行yum update命令,用户可以同时更新系统中的所有软件包到最新可用版本。
  5. 搜索软件包:用户可以使用Yum来搜索系统中可用的软件包。通过运行yum search keyword命令,用户可以查找与关键字匹配的软件包,以便了解可用的软件包及其描述。
  6. 组管理:Yum支持软件包组的管理。用户可以安装、升级或删除整个软件包组,而不必一个个地处理每个软件包。
  7. 缓存管理:Yum会在本地缓存下载的软件包,以便在后续操作中重复使用。用户可以清理、更新或管理这些缓存,从而节省磁盘空间并优化系统性能。

2、语法

  • yum [选项] [参数]

3、选项

centos 升级libc_centos 升级libc_02

4、修改网络YUM源

  • 默认的系统YUM源,需要连接国外的apache网站,网速比较慢,可以修改关联的网络YUM源为国内镜 像的网站,比如网易163,aliyun等 查看YUM源配置文件,配置文件路径为
/etc/yum.repos.d/CentOS-Base.repo
  • 下载网易163或者aliyun的repos文件,任选其一
//网易 163
wget http://mirrors.163.com/.help/CentOS7-Base-163.repo
//阿里云
wget http://mirrors.aliyun.com/repo/Centos-7.repo
  • 使用下载好的repos文件日换默认的repos文件
mv CentOS7-Base-163.repo CentOS-Base.repo
  • 清理旧缓存数据,缓存新数据
yum clean all
yum makecache
yum makecache 就是把服务器的包信息下载到本地电脑缓存起来
  • 测试
yum list | grep firefox
yum -y install firefox

5、yum-config-manager 仓库管理命令

  • yum-config-manager是一个用于管理yum软件包管理器配置的命令行工具。在CentOS 7中,yum-config-manager命令用于管理yum存储库的配置,可以添加、启用、禁用或删除存储库。通过这个工具,可以更轻松地管理系统中的软件包源。
  • 以下是yum-config-manager的一些常用选项和功能:
  1. 列出所有可用的存储库:
yum-config-manager --list

这将列出系统中所有可用的存储库,包括启用和禁用的存储库。

  1. 启用特定存储库:
yum-config-manager --enable repository

这将启用指定的存储库,使系统可以从该存储库中获取软件包。

  1. 禁用特定存储库:
yum-config-manager --disable repository

这将禁用指定的存储库,系统将不再从该存储库获取软件包。

  1. 添加新存储库:
yum-config-manager --add-repo repository-url

使用此选项可以添加新的存储库到系统中,以便安装来自该存储库的软件包。

  1. 删除存储库:
yum-config-manager --remove repository

这将删除指定的存储库配置,不再获取该存储库的软件包。

  • 或者直接编辑 /etc/yum.repos.d/ 下的对应资源库文件
enabled=0 # 禁用
enabled=1 # 启用

这将禁用指定的存储库,系统将不再从该存储库获取软件包。

  1. 添加新存储库:
yum-config-manager --add-repo repository-url

使用此选项可以添加新的存储库到系统中,以便安装来自该存储库的软件包。

  1. 删除存储库:
yum-config-manager --remove repository

这将删除指定的存储库配置,不再获取该存储库的软件包。

  • 或者直接编辑 /etc/yum.repos.d/ 下的对应资源库文件
enabled=0 # 禁用
enabled=1 # 启用

五、源码包安装

1、概念

  • 源码包是指软件开发者将其编写的源代码文件进行打包压缩而成的文件。在Linux系统中,通常以.tar.gz、.tar.bz2、.zip等格式存储,其中包含了软件的源代码文件、编译所需的配置文件、说明文档以及可能的补丁文件等。
  • 源码包通常是软件开发者提供给用户的一种形式,用户可以通过源码包来获取软件的源代码,并在自己的系统上进行编译安装。这样的做法可以确保用户获得的是最原始的软件代码,可以根据需要进行定制化的编译和安装,以满足特定的需求或系统环境。
  • 在使用源码包安装软件时,用户需要将源码包下载到本地计算机,然后解压并按照软件提供的安装说明进行编译和安装。这种方式相对于使用预编译的二进制软件包(例如RPM包)来说更加灵活,但也需要用户具备一定的系统管理和编译经验。

2、特点

(1)优点
  1. 定制化配置:通过源码包安装可以根据实际需求进行配置,包括指定编译选项、启用或禁用特定功能,以满足个性化的需求。
  2. 最新版本:有时候系统自带的软件版本较老,通过源码包安装可以获取到最新版本的软件,获得新功能和性能改进。
  3. 学习和了解:通过查看源代码并手动编译安装软件,可以更深入地了解软件的工作原理和内部结构,对于学习和开发有帮助。
  4. 避免依赖冲突:有时候使用包管理器安装软件可能会导致依赖冲突,通过源码包安装可以更好地控制软件的依赖关系。
  5. 适用于非标准环境:在一些特殊的环境下,如定制的系统或者特殊架构,源码包安装是一种比较灵活的方式来安装软件。
(2)缺点
  • 安装过程相对复杂,需要手动处理依赖关系、编译错误等。
  • 维护和升级软件需要手动管理。
  • 编译过程时间较长,安装比二进制安装时间长

(3)源码包安装位置

  • 安装在指定位置中,一般是/usr/local/软件名/

(4)安装步骤

  1. 下载源代码包:首先需要从软件官方网站或其他可信赖的来源下载软件的源代码包,通常是一个压缩文件(如.tar.gz或.zip)。
  2. 解压源代码包:使用相应的命令将下载的压缩文件解压缩到一个目录中。
  3. 阅读安装说明:在解压后的源代码目录中,通常会有一个 README 或 INSTALL 的文件,里面包含了安装说明和必要的步骤。
  4. 配置编译选项:有些软件需要根据实际情况配置编译选项,可以通过运行 ./configure 命令来进行配置。
  5. 编译源代码:运行 **make 命令来编译源代码,**这会生成可执行文件和相关的库文件。
  6. 安装软件:最后,运行 make install 命令来安装编译后的软件到系统中。

(5)源码包安装注意事项

  • 通过源码方式安装软件,需要把开发工具等基础模块安装好,比如 gcc、gccc++、libgcc、glibc、make、automake等开发工具或基础包;
  • 还要安装一些相应的开发包,一般是文 件名包括dev的,比如glibc-devel、gettext-devel;还有一些开发库,比如以lib开头的开发库。

(6)卸载

  • 通过源码包安装时如果指定了安装目录,如 “./configure --prefix=安装路径”,卸载时只需要删除整个安 装目录就可以了 “rm -rf 安装路径”,而且是100%卸载,不会像windows那样经常会残留那多注册表之类 的垃圾。
  • 如果源码包安装时没有指定安装目录,那么安装软件生成的文件会分别存储在 /usr/local/ 下的 bin、 lib、etc 等目录下,删除起来就比较麻烦一点了。
  • 所以建议源码包安装一定要指定安装目录,方便卸 载。如果忘记指定安装目录,则可以把make install这个命令的执行过程保存下来,以备将来删除使用。

(7)示例—apache2.2.9版本源码安装

#! /bin/bash
cd /root
mkdir apache2.9
cd apache2.9
wget https://archive.apache.org/dist/httpd/httpd-2.2.9.tar.gz # 下载apache的源码包
tar -xf httpd-2.2.9.tar.gz -C . # 解压到当前文件夹下
cd httpd-2.2.9
./configure --prefix=/usr/local/apache2.9  # 配置安装环境,指定安装路径
make && make install  # 编译并安装
cd /usr/local/apache2.9/conf
sed -i '97 a ServerName localhost:80' httpd.conf  # 配置域名
/usr/local/apache2.9/bin/apachectl start #开启服务
curl 127.0.0.1  # 测试

centos 升级libc_源码包_03