首页 > 其他分享 >安装软件

安装软件

时间:2023-05-23 14:55:24浏览次数:60  
标签:安装 apt 命令 yum 软件包 snap 软件 root

软件包管理基础

软件包管理系统使用数据库来记录下列内容。

·Linux系统中已安装的软件包。

·每个软件包安装了哪些文件。

·每个已安装的软件包的版本。

基于Debian的发行版(比如Ubuntu和Linux Mint)使用的是dpkg命令,该命令是其软件包管理系统的底层基础。

基于Red Hat的发行版(比如Fedora、CentOS和openSUSE)使用的是rpm命令,该命令是其软件包管理系统的底层基础。

基于Debian的系统

dpkg本身是一个底层的工具。上层的工具,如APT(advanced package tool)被用于从远程获取软件包以及处理复杂的软件包关系。 “dpkg”是“Debian Package”的简写。

·apt-cache
·apt-get
·apt

apt命令本质上是apt-cache命令和apt-get命令的前端。

apt命令的基本格式如下:

apt [options] command

使用apt管理软件包

apt list命令会显示仓库中所有可用的软件包,如果再加入--installed选项,就可以限制仅输出那些已安装在系统中的软件包:

apt list --installed

如果已经知道系统中的某个软件包,希望显示其详细信息,可以使用show命令来操作:

apt show package_name
└─# apt show zsh          
Package: zsh
Version: 5.9-4
Priority: optional
Section: shells
Maintainer: Debian Zsh Maintainers <[email protected]>
Installed-Size: 2,519 kB
...

注意 apt show命令并不会指明软件包是否已经安装。它只根据软件仓库显示该软件包的详细信息。

有一个细节无法通过apt获得,即与特定软件包相关的所有文件。为此,需要使用dpkg命令:

dpkg -L package_name
└─# dpkg -L acl              
/.
/bin
/bin/chacl
/bin/getfacl
/bin/setfacl
/usr

也可以执行相反的操作,即找出特定的文件属于哪个软件包:

dpkg --search absolute_file_name

注意,文件要使用绝对路径:

└─# dpkg --search /bin/getfacl 

acl: /bin/getfacl

输出表明文件getfacl属于acl软件包。

使用apt安装软件包

该怎么查找特定的软件包呢?答案是同时使用apt命令与search命令:

apt search package_name

在默认情况下,search命令显示的是在名称或描述中包含搜索关键字的那些软件包,这有时候会产生误导。如果只想搜索软件包名称,可以加入--name-only选项:

chou@chou-virtual-machine:~$ apt search --names-only zsh
正在排序... 完成
全文搜索... 完成  
fizsh/focal,focal 1.0.9-1 all
  Friendly Interactive ZSHell

zsh/focal-updates,focal-security 5.8-3ubuntu1.1 amd64
  具有很多特性的 Shell
......

一旦找到待安装的软件包,就可以使用apt安装了,非常简单:

apt install package_name
sudo apt install zsh

注意 上面的例子中用到了sudo命令。sudo命令允许以root用户身份执行命令。像安装软件这类管理任务都需要使用sudo命令帮助完成。

用apt升级软件

upgrade命令可以使用仓库中的任何新版本安全地升级系统中所有的软件包:

apt upgrade

upgrade命令在升级过程中不会删除任何软件包。如果必须删除某个软件包才能完成升级,可以使用以下命令:

apt full-upgrade

使用apt卸载软件包

aptremove命令可以删除软件包,同时保留数据和配置文件。如果要将软件包以及相关的数据和配置文件全部删除,那么需要使用purge选项:

apt purge zsh

如果apt警告我们卸载的软件包存在依赖,不能自动删除,以免其他软件包还有需要。如果确定有依赖关系的软件包不会再有他用,可以使用autoremove命令将其删除:

apt autoremove 

autoremove命令会检查所有被标记为存在依赖关系且不再被需要的软件包。

apt仓库

apt默认的软件存储库位置是在安装Linux发行版时设置的。仓库位置保存在文件/etc/apt/sources.list中。

sources.list使用下列结构来指定仓库源:

deb (or deb-src) address  distribution_name  package_type_list

deb或deb-src指定了软件包的类型。deb表明这是一个已编译程序的仓库源,而deb-src表明这是一个源代码的仓库源。

address是软件仓库的网址。

distribution_name是该软件仓库的发行版的版本名称。

最后,package_type_list可能并不止一个单词,它还表明仓库里面有什么类型的软件包。

基于Red Hat的系统

·yum:用于Red Hat、CentOS和Fedora。
·zypper:用于openSUSE。
·dnf:yum的升级版,有一些新增的特性。

上述前端全部基于命令行工具rpm

列出已安装的软件包

yum list installed 

除了会给出软件包的详细描述,它还可以告诉你软件包是否已经安装:

[root@Wesuiliye ~]# yum list xterm
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
Available Packages
xterm.x86_64                        295-3.el7_9.1                        updates
[root@Wesuiliye ~]# yum list installed xterm
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
Error: No matching Packages to list
[root@Wesuiliye ~]# yum list installed bash
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
Installed Packages
bash.x86_64                       4.2.46-35.el7_9                       @updates
[root@Wesuiliye ~]# 

找出文件系统中的某个文件是由哪个软件包安装

yum install package_nam
[root@Wesuiliye ~]# yum provides bash
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
bash-4.2.46-34.el7.x86_64 : The GNU Bourne Again shell
Repo        : base



bash-4.2.46-35.el7_9.x86_64 : The GNU Bourne Again shell
Repo        : updates



bash-4.2.46-35.el7_9.x86_64 : The GNU Bourne Again shell
Repo        : @updates



[root@Wesuiliye ~]# 

使用yum安装软件

yum install package_name

使用yum升级软件

yum list updates 

没输出就是好事,因为这说明没什么可升级的!但如果你发现有需要升级的软件包,可以输入下列命令:

yum update

注意 yum工具的upgrade命令支持--skip-broken选项,可以跳过依赖关系损坏的软件包,同时仍尝试继续升级其他包

使用yum卸载软件

yum remove package_name

处理损坏的依赖关系

有时在安装多个软件包时,一个软件包的依赖关系可能会被另一个软件包搞乱。

这称为依赖关系损坏(broken dependency)。

如果系统出现了这种情况,可以先试试下列命令:

yum clean all

然后尝试使用yum命令的update选项。

RPM仓库

要想查看当前拉取软件的仓库,可以使用下列命令:

yum repolist 

如果发现其中没有所需的仓库,那就需要编辑配置文件了。

[root@Wesuiliye ~]# cd /etc/yum.repos.d/
[root@Wesuiliye yum.repos.d]# ll
total 16
-rw-r--r-- 1 root root  675 Mar  8 08:27 CentOS-Base.repo
-rw-r--r-- 1 root root  675 Mar  2 12:30 CentOS-Base.repo.bak
-rw-r--r-- 1 root root 2081 Apr  4 19:27 docker-ce.repo
-rw-r--r-- 1 root root  230 Mar  2 12:30 epel.repo
[root@Wesuiliye yum.repos.d]# 

使用容器管理软件

云计算带来了应用程序打包方式的一种新范式:应用程序容器(application container)。应用程序容器创建了一个环境,其中包含了应用程序运行所需的全部文件,包括运行时库文件。开发人员随后可以将应用程序容器作为单个软件包分发,保证能够在任何Linux系统中正常运行。

snap

Ubuntu Linux发行版的创建者Canonical开发了一种称为snap的应用程序容器格式。

使用snap version命令检查snap是否正在运行:

chou@chou-virtual-machine:~$ snap version
snap    2.58.2
snapd   2.58.2
series  16
ubuntu  20.04
kernel  5.15.0-72-generic
chou@chou-virtual-machine:~$ 

如果snap正在运行,可以使用snap list命令查看当前已安装的snap应用程序列表:

chou@chou-virtual-machine:~$ snap list 
名称                 版本                修订版本   追踪               发布者         注记
bare               1.0               5      latest/stable    canonical✓  base
core20             20230207          1828   latest/stable    canonical✓  base
gnome-3-38-2004    0+git.6f39565     119    latest/stable/…  canonical✓  -
gtk-common-themes  0.1-81-g442e511   1535   latest/stable/…  canonical✓  -
snap-store         41.3-66-gfe1e325  638    latest/stable/…  canonical✓  -
snapd              2.58.2            18357  latest/stable    canonical✓  snapd
chou@chou-virtual-machine:~$ 

snap find命令可以在snap仓库中搜索指定程序:

chou@chou-virtual-machine:~$ snap find solitaire
名称                      版本       发布者          注记   摘要
solitaire               1.1      1bsyl        -    usual Solitaire card game, as known as Patience or Klondike
solitaire-ultra         1.0.0    marisag1967  -    Solitaire game for Windows
......

snap info命令可以查看snap应用程序(简称为snap)的详细信息:

chou@chou-virtual-machine:~$ snap info solitaire
name:      solitaire
summary:   usual Solitaire card game, as known as Patience or Klondike
publisher: Sylvain Becker (1bsyl)
store-url: https://snapcraft.io/solitaire
contact:   [email protected]
license:   Proprietary
description: |
  This is the usual Solitaire card game. Also known as Patience or Klondike.
snap-id: 0rnkesZh4jFy9oovDTvL661qVTW4iDdE
channels:
  latest/stable:    1.1 2020-12-14 (5) 44MB -
  latest/candidate: 1.0 2017-05-17 (2) 11MB -
  latest/beta:      1.0 2017-05-17 (2) 11MB -
  latest/edge:      1.0 2017-05-17 (2) 11MB -
chou@chou-virtual-machine:~$ 

snap install命令可以安装新的snap:

$ sudo snap install solitaire
[sudo] password for rich:
solitaire 1.0 from Sylvain Becker (1bsyl) installed
$

如果需要删除某个snap,使用snap remove命令即可:

$ sudo snap remove solitaire
solitaire removed
$

注意 也可以通过禁用来代替删除。使用snap disable命令即可。要想重新恢复snap,可以使用snap enable命令。

flatpak

flatpak应用程序容器格式是作为一个独立的开源项目创建的,与任何特定的Linux发行版都没有直接联系。

使用flatpak list命令列出已安装的应用程序容器:

[root@Wesuiliye ~]# flatpak list 

[root@Wesuiliye ~]# 

flatpak search命令可以在flatpak仓库中搜索指定应用程序:

[root@Wesuiliye ~]# flatpak search solitaire
No matches found
[root@Wesuiliye ~]# 

使用容器时,必须使用其Application ID值,而不是名称。可以使用flatpak install命令安装应用程序:

flatpak install

可以使用flatpak uninstall命令删除应用程序容器:

flatpak uninstall

从源代码安装

在软件包管理系统和应用程序容器出现之前,开源软件开发人员只能以源代码形式分发软件,用户需要在系统中自行编译。源代码形式的软件包通常以tarball的形式发布。

经由tar命令创建出的归档文件通常称为tarball.参见维基百科条目"tar (computing)"

使用软件包sysstat作为示例。sysstat提供了各种系统监测工具,非常好用。

下载源代码:

git clone git://github.com/sysstat/sysstat

先使用cd命令进入新目录,然后列出目录内容:

[root@Wesuiliye data]# cd sysstat/
[root@Wesuiliye sysstat]# ls
activity.c    count.c   iostat.c           pcp_stats.h   rd_stats.h    sadf_misc.c          sysstat.sysconfig.in
BUG_REPORT    count.h   iostat.h           pidstat.c     README.md     sa.h                 systest.c
build         CREDITS   json_stats.c       pidstat.h     rndr_stats.c  sar.c                systest.h
CHANGES       cron      json_stats.h       pr_stats.c    rndr_stats.h  sa_wrap.c            tapestat.c
cifsiostat.c  do_test   Makefile.in        pr_stats.h    sa1.in        svg_stats.c          tapestat.h
cifsiostat.h  FAQ.md    man                pr_xstats.c   sa2.in        svg_stats.h          tests
common.c      format.c  mpstat.c           pr_xstats.h   sa_common.c   sysconfig.in         version.in
common.h      iconfig   mpstat.h           raw_stats.c   sa_conv.c     sysstat-12.7.2.lsm   xml
configure     images    nls                raw_stats.h   sa_conv.h     sysstat-12.7.2.spec  xml_stats.c
configure.ac  INSTALL   pcp_def_metrics.c  rd_sensors.c  sadc.c        sysstat.in           xml_stats.h
contrib       ioconf.c  pcp_def_metrics.h  rd_sensors.h  sadf.c        sysstat.ioconf
COPYING       ioconf.h  pcp_stats.c        rd_stats.c    sadf.h        sysstat.service.in
[root@Wesuiliye sysstat]# 

在目录的列表中,应该能看到README文件或INSTALL文件。务必阅读这些文件,其中写明了软件安装所需的操作步骤。

cat INSTALL 

按照INSTALL文件中的建议,下一步是运行configure工具,检查你的Linux,确保拥有合适的能够编译源代码的编译器,以及正确的库依赖关系:

 [root@Wesuiliye sysstat]# ./configure 
 ...
 ...
 config.status: creating man/cifsiostat.1
config.status: creating tests/variables
config.status: creating Makefile

   Sysstat version:             12.7.3
   Installation prefix:         /usr/local
   rc directory:                /etc/rc.d
   Init directory:              /etc/rc.d/init.d
   Systemd unit dir:            /usr/lib/systemd/system
   Systemd sleep dir:           /usr/lib/systemd/system-sleep
   Configuration file:          /etc/sysconfig/sysstat
   Man pages directory:         ${datarootdir}/man
   Compiler:                    gcc -std=gnu11
   Compiler flags:              -g -O2
   Linker flags:

如果有问题,则configure会显示错误消息,说明缺失了哪些东西。

注意 大多数Linux程序是用C或C++编程语言编写的。要在系统中编译这些源代码,需要安装gcc软件包和make软件包。

下一步是用make命令来构建各种二进制文件。make命令会编译源代码,然后由链接器生成最终的可执行文件。和configure命令一样,make命令会在编译和链接所有源代码文件的过程中产生大量的输出:

[root@Wesuiliye sysstat]# make 
gcc -std=gnu11 -o sadc.o -c -g -O2 -Wall -Wstrict-prototypes -pipe -O2 -fno-tree-slp-vectorize  -DSA_DIR=\"/var/log/sa\" -DSADC_PATH=\"/usr/local/lib64/sa/sadc\"    -DHAVE_SYS_SYSMACROS_H -DHAVE_LINUX_SCHED_H -DHAVE_SYS_PARAM_H -DUSE_NLS -DPACKAGE=\"sysstat\" -DLOCALEDIR=\"/usr/local/share/locale\" sadc.c

make命令结束后,可运行的sysstat程序就出现在目录中了。但是从这个目录中运行程序有点儿不方便。你希望将其安装在Linux系统的常用位置。为此,必须以root用户身份登录(或者使用sudo命令),然后使用make命令的install选项:

[root@Wesuiliye ~]# make install

查看一下sysstat版本看成功没有

[root@Wesuiliye ~]# sar -V
sysstat version 10.1.5
(C) Sebastien Godard (sysstat <at> orange.fr)
[root@Wesuiliye ~]# 

标签:安装,apt,命令,yum,软件包,snap,软件,root
From: https://www.cnblogs.com/Wesuiliye/p/17425120.html

相关文章

  • vue安装与初始化
    vuenpm使用验证安装安装vue npminstall--globalvue-clivue版本 vue-V其他版本 node-v npm-v查询当前镜像地址 npmgetregistry修改镜像地址 npmconfigsetregistryhttp://registry.npm.taobao.org/taobao镜像设置并使用cnpm呼唤 npminstall-......
  • Linux下安装MySQL
    安装环境:虚拟机virtualbox,Ubuntu20.04系统;命令行下输入:sudoaptupdatesudoapt-getinstallmysql-server等待安装完成后,输入命令进行配置;sudomysql_secure_installation是否对密码验证组件进行配置?y密码强度?0root新密码?your_password 是否继续?y 遇到这个问......
  • Mysql简易安装介绍
    1.建议压缩包安装解压到对应文件,配置环境变量到path:D:\mysql-5.7.19-winx64\bin2.新建mysql配置文件my.ini在mysql根安装目录下新建mysql配置文件my.ini,文件内容如下:[mysqld]basedir=D:\mysql-5.7.19-winx64\datadir=D:\mysql-5.7.19-winx64\data\port=3306skip-gran......
  • 2023.5.23——软件工程日报
    所花时间(包括上课):6h代码量(行):0行博客量(篇):1篇今天,上午学习,下午学习。我了解到的知识点:1.了解了一些数据库的知识;2.了解了一些python的知识;3.了解了一些英语知识;5.了解了一些Javaweb的知识;4.了解了一些数学建模的知识;6.了解了一些计算机网络的知识;......
  • Git的下载安装配置
     git教程 1.版本管理工具概念我在大学毕业写论文的时候的时候碰到过如下的现象```<<毕业论文第一版.doc>><<毕业论文第二版.doc>><<毕业论文第三版.doc>><<毕业论文最终版.doc>><<毕业论文最终版2.doc>>```在这种情况下如果不能查看修改之前的代码,查找问题是非常困难的......
  • Mac Git安装
    如何安装Git到MACOSX一,使用Gitcommand-line这里先介绍下使用Command-line。1,下载Gitinstaller,地址;http://git-scm.com/downloads2,下载之后打开,双击.pkg安装3,打开终端,使用git--version命令查看安装版本,有就是安装成功了......
  • nginx安装配置博客总结列表
    1)进入编辑配置文件:sudovim/etc/nginx/nginx.conf2)配置文件添加内容:3)重启nginxsudoservicenginxrestart//或者sudonginx-sreloadnginx相同域名转发不同路径:nginx域名监听转发:nginx转发同一域名的不同项目-多tomcat:......
  • 软件工程课程总结
    本学期的软件工程课程主要涉及了单人开发、双人开发和团队开发的基本流程,以及Android开发、JavaWeb开发和参加中国软件杯赛题的项目实践。在课程结束之际,我想写一份总结,回顾这学期所学的知识和经验。单人开发在课程开始的时候,老师讲述了单人开发的流程和注意事项,并要求我们以单......
  • 安装MySQLdb for centos 7--小白教程
    1.MySQLdb下载地址:https://pypi.python.org/pypi/MySQL-python/1.2.5 2.unzipMySQL-python-1.2.5; 3.cdMySQL-python-1.2.5; pythonsetup.pyinstall;此时报错:Traceback(mostrecentcalllast): File"setup.py",line17,in<module>   metadat......
  • Linux 安装Kibana
    1.Kibana介绍Kibana是一个开源的分析与可视化平台,设计出来用于和Elasticsearch一起使用的。你可以用Kibana搜索、查看存放在Elasticsearch中的数据。Kibana与Elasticsearch的交互方式是各种不同的图表、表格、地图等,直观的展示数据,从而达到高级的数据分析与可视化的目的。El......