加入收藏 | 设为首页 | 会员中心 | 我要投稿 拼字网 - 核心网 (https://www.hexinwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

linux软件源 Linux

发布时间:2022-10-21 12:43:10 所属栏目:Linux 来源:
导读:  Linux软件包可分为两类:源码包、二进制包,不同的软件包有不同的提供方式,常用的方式有rpm包和tgz包两种。为此,常用应用软件的安装方式也有两种,一种为使用rpm工具安装,一种为编译安装。

  rpm作为标
  Linux软件包可分为两类:源码包、二进制包,不同的软件包有不同的提供方式,常用的方式有rpm包和tgz包两种。为此,常用应用软件的安装方式也有两种,一种为使用rpm工具安装,一种为编译安装。
 
  rpm作为标准的软件包管理工具,具有便捷的安装方式,是安装软件的首选方式。
 
  openLinux、SUSE、CentOS等不同的分发版本同样使用rpm来对软件包进行管理。
 
  不同的平台使得软件包的打包格式及工具不尽相同,其中Debin和Ubuntu采用的是Deb包安装以及apt-get源安装的方式来对软件包进行管理, FreeBSD则采用的是Ports,.txz的打包格式以及make, pkg工具。
 
  RPM软件包管理
 
  RPM是一种用于互联网下载包的打包和自动安装工具,会生成具有.RPM扩展名的文件,可以用来管理应用程序的安装、卸载和维护。
 
  RPM软件包命名格式:
 
  name-version-release.arch.rpm
 
  在这里插入图片描述
 
  RPM软件包管理的优缺点 使用RPM命令管理软件(安装、查询、升级、卸载) RPM命令常用参数
 
  RPM常用于安装、删除、升级、刷新和查询的场景。
 
  语法:rpm [OPTION...]。
  其中的命令选项说明如下:
      -i:指定安装的软件包
      -h:使用“#(hash)”符显示rpm详细的安装过程及进度
      -v:显示安装的详细过程
      -U:升级指定的软件包
      -q:查询系统是否已安装指定的软件包或查询指定rpm包内容信息
      -a:查看系统已安装的所有软件包
      -V:查询已安装的软件包的版本信息
      -c:显示所有配置文件
      -p:查询/校验一个软件包的文件
  在这里插入图片描述
 
  RPM命令-安装
 
  语法:
 
      rpm -i example.rpm
      rpm -iv example.rpm
      rpm -ivh example.rpm
  其中的命令选项说明如下:
 
  -i:安装一个包
 
  iv:安装一个包并在安装过程中显示正在安装的文件信息
 
  ivh:安装一个包并在安装过程中显示正在安装的文件信息和进度
 
  RPM命令-卸载
 
  语法:
 
  rpm -e example.rpm
  rpm -e -nodeps example.rpm
  rpm -e -allmatches example.rpm
  其中的命令选项说明如下:
 
  rpm软件包卸载需要考虑包与包之间的依赖性;卸载时若不考虑包的依赖性,可以使用nodeps命令(不检测依赖性)进行强制卸载;若是该软件包存在多个版本,可以使用allmatches命令进行批量卸载。
 
  RPM命令-升级
 
  语法:
 
  rpm -U example.rpm
  rpm -Uvh example.rpm
  rpm -F example.rpm
  rpm -Fvh example.rpm
  其中的命令选项说明如下:
 
  -Uvh:代表存在旧包时,欲删除旧包安装新包时使用;
 
  -Fvh:代表存在旧包时,在旧包的基础上进行升级。
 
  RPM-查询
 
  语法:
 
  rpm -q example.rpm
  rpm -qa
   -q:查询软件包是否安装
   -qa:查询所有安装的软件包
   -qf:查询所有已安装过的软件包
   -qp:查询未安装的软件包
   -ql:查询已安装的软件包中的文件列表和完整目录
   -qi:查询软件包的详细信息
   -qc:查询已安装的软件包中的配置文件
   -qd:查询已安装的软件包中的帮助文档
  使用dnf管理软件 dnf管理工具概述 DNF工具的产生
 
  Linux系统的软件管理工具yum是基于rpm包管理linux软件源,可以从指定的服务器自动下载RPM服务器并进行安装,yum可以作为软件仓库对软件包进行管理,相当于一个“管家”,同时能够解决软件包间的依赖关系,提升了效率,既然如此,为什么还会出现DNF工具呢?
 
  那是因为yum工具性能差、内存占用过多、依赖解析速度变慢等问题长期得不到解决,同时yum工具过度依赖yum源文件,若是源文件出现问题,yum相关操作可能会失败,针对这种情况,DNF工具应运而生,DNF工具克服了YUM软件管理工具的一些瓶颈,提升了用户体验、内存占用、依赖分析及运行速度等方面的内容。
 
  DNF工具概述 使用DNF管理软件包
 
  在这里插入图片描述
 
  DNF-软件源服务
 
  软件源(Software Sources)是Linux系统免费的应用程序安装仓库。软件源可以是网络服务器、是光盘、甚至是硬盘上的一个目录。
 
  Linux软件源的好处:
 
  DNF配置文件- /etc/dnf/dnf.conf
 
  DNF的主要配置文件是/etc/dnf/dnf.conf,该文件中“main”部分保存着DNF的全局配置。通过cat命令,可以查看“main”的具体参数:cat /etc/dnf/dnf.conf。
 
  其中的参数说明如下:
 
  配置DNF-修改配置参数
 
  repository允许用户定义定制化的软件源仓库,需要注意的是各个仓库的名称不能相同,会引起冲突,用户可以通过添加一个或多个“repository”部分来修改需安装软件源位置。通过vim命令,可以在文件中添加一个或多个“repository” :vim /etc/dnf/dnf.conf。
 
  其中的参数说明如下:
 
  创建本地软件源仓库
 
  创建软件源仓库具体步骤:
 
  安装createrepo(root权限下):
 
  dnf install createrepo
  将需要的软件包放置在目录下,比如/mnt/local_repo/;执行命令创建软件源。
 
  createrepo --database /mnt/local_repo
  添加软件源
 
  dnf config-manager --add-repo repository_url
  启用和禁用软件源
 
  添加好软件源之后,需要在root权限下启用软件源(其中的repository为新增.repo文件的repo id),启用命令如下:
 
  dnf repolist #查看新增.repo文件的repo id
  dnf config-manager --set-enable repository
  若是软件源不再被使用,可以通过命令行禁用该软件源,需要在root权限下禁用,禁用命令如下:
 
  dnf repolist #查看新增.repo文件的repo id
  dnf config-manager --set-disable repository
  管理软件包
 
  DNF能够快捷的对软件包进行安装、查询和删除。用户可以通过rpm包名称、缩写和描述来搜索所需软件包,具体命令如下:
 
  dnf search term
  列出软件清单
 
  DNF可以通过命令列出已安装和可用的RPM软软件包,命令为:
 
  dnf list all
  dnf list glob_expression... #查看指定RPM包信息
  显示RPM包信息
 
  通过DNF命令行能够查看RPM包的相关信息,命令如下:
 
  dnf info package_name...
  下载、安装和删除RPM包
 
  通过DNF命令行能够下载、安装和删除RPM包,命令如下:
 
  dnf download package_name
  dnf install package_name
  dnf remove package_name
  管理软件包组
 
  软件包集合是将一组具有共同目的的软件包集合在一起,比如系统工具。用户可以通过dnf命令查看所有已安装及可用的软件包组,命令为:
 
  dnf groups summary
  dnf group list #可列出软件包组和对应组ID
  显示软件包组信息
 
  通过dnf命令列出一个软件包组中必须安装的软件包及可选包,命令为:
 
  dnf group info glob_expression...
  安装和删除软件包组
 
  每一软件包组都具有相应的名称和id,在安装和删除软件包组时,可以通过名称或id来进行安装或删除:
 
  dnf group install group_name/groupid
  dnf group remove group_name/groupid
  检查并更新
 
  DNF命令可以检查系统中的软件包/软件包组是否需要更新,并且可对所有需要更新的软件包/软件包组或特定的软件包进行升级。用户可以通过rpm包名称、缩写和描述来搜索所需软件包,具体命令如下:
 
  dnf check-update
  dnf update package_name / dnf group update group_name
  源码安装 源代码软件及安装概述
 
  通过源代码安装软件是除了rpm软件包安装外的又一种安装软件的方式。Linux下许多软件是通过源码包方式发行的,相对于二进制软件包来说,源码包的移植性较好,仅需发布一份源码包,不同用户经过编译即可正常运行,但是其配置和编译过程较为繁琐。
 
  很多Linux发行版中会优先选择rpm来进行软件安装,但也会存在需要使用源码安装的场景,这是因为
 
  源代码软件安装优缺点:
 
  使用源码安装软件步骤(configure/make/make install)
 
  以Python软件安装为例演示源码安装软件的整体步骤:
 
  下载源码包并解压(校验包完整性)
 
  wget https://www.python.org/ftp/python/3.7.7/python-3.7.7.tgz
  tar -zxvf Python-3.7.7.tgz
  查看README和INSTALL文件(记录了软件的安装方法及注意事项)
 
  进入源码目录,查看README文件:
 
  cat Python-3.7.7/README.rst
  创建Makefile文件-通过执行 ./configure 脚本命令生成
 
  ./configure --prefix=/usr/local/Python
  编译-通过 make 命令将源码自动编译成二进制文件
 
  执行Make命令进行编译:
 
  make/make clean
  安装软件-通过 make install 安装命令来将上步编译出来的二进制文件安装到对应的目录中去,默认的安装路径为/usr/local/,相应的配置文件位置为/usr/local/etc或/usr/local/***/etc
 
  执行make install命令进行软件的安装:
 
  make install
  注意:在安装时可能会缺乏相关环境组件,可通过yum工具来进行组件的下载安装。
 
  在Linux中,systemd是与SysV和LSB初始化脚本兼容的系统和服务管理器,开启systemd服务可以提供基于守护进程的按需启动策略。
 
  systemd服务支持快照和系统状态恢复,维护挂载和自挂载点,使得个服务之间基于从属关系实现更为精细的逻辑控制,具有更高的并行性能。
 
  Systemd unit概念
 
  systemd服务的开启和监督系统是基于unit的概念,unit由一个与配置文件对应的名称和类型组成,unit通常有以下几种类型:
 
  Systemd特性
 
  systemd具备以下特性:
 
  使用systemd管理服务(systemctl) 管理系统服务
 
  systemd可以通过systemctl命令来对系统服务进行运行、关闭、重启、显示、启用或禁用的操作。systemctl命令与sysvinit命令的功能相似,但是建议用systemctl来进行系统服务管理。
 
  Systemctl和sysvinit的区别这里做一个简单对比:
 
  在这里插入图片描述
 
  Systemctl - 显示服务
 
  若是用户需要查看当前正在运行的服务,可以通过以下命令来进行查看:
 
  systemctl list-units --type services #若是要查看所有服务,需要在命令后添加-all参数
  Systemctl - 显示服务状态
 
  若是用户需要查看某个服务的状态,可以通过如下命令来进行查看:
 
  systemctl status name.service
  其中的命令参数说明如下:
 
  Loaded:说明服务是否被加载,同时显示对应的绝对路径是否启用
 
  Active:说明服务是否正在运行,并显示时间节点
 
  Main PID:相应系统服务PID值
 
  CGroup:相关控制组的其他信息
 
  Systemctl - 相关操作
 
  systemctl命令可以对系统服务进行运行、关闭、重启、显示、启用或禁用等操作,命令如下:
 
  运行服务:systemctl start name.service
 
  关闭服务:systemctl stop name.service
 
  重启服务:systemctl restart name.service
 
  启用服务:systemctl enable name.service
 
  禁用服务:systemctl disable name.service
 
  Systemctl - 其他操作
 
  Systemd亦可通过systemctl命令对系统进行关机、重启、休眠等操作,具体命令如下:
 
  关闭系统:
 
  systemctl poweroff #关闭系统并下电
  systemctl halt #关闭系统但不下电
  重启系统:
 
  systemctl reboot
  系统待机:
 
  systemctl suspend
  系统休眠:
 
  systemctl hibernate
  systemctl hybrid-sleep #使系统待机并处于休眠状态
  芜湖,花了整整一天时间,终于写完了,码字不易,点个赞给个鼓励吧~
 

(编辑:拼字网 - 核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!