yum用法
yum的查询
yum [option] [查询工作目录] [相关参数]
[option]:
-y 当yum要等待使用者输入时,-y自动提供yes的回应
--installroot=/some/path 将该软件安装在指定目录
[查询工作目录] [相关参数]
search
list 类似于rpm –qa
info 同上,类似于rpm –qai
provides 档案中寻找软件,类似rpm –qf
列出所有软件(包含已安装的和未安装的)
yum list
已加载插件:fastestmirror, langpacks # yum 系統自己找出最近的 yum server
Loading mirror speeds from cached hostfile # 找出速度最快的那一部 yum server
* base: mirrors.aliyun.com # 底下三个软件库,且都来源于该服务器
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
已安装的软件包 # “已安装的软件包/Available Packages” 说明该安装包已安装
GConf2.x86_64 3.2.6-8.el7 @anaconda
GeoIP.x86_64 1.5.0-14.el7 @anaconda
apr.x86_64 1.4.8-7.el7 @base
…….
可安装的软件包 #“可安装的软件包/Installed Packages”说明该软件未安装
…….
…….
上面三列分别是软件名、版本、在哪个软件库内
列出某个软件(包括已安装和未安装软件)
yum list mysql*
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
已安装的软件包 # Available Packages
…….
可安装的软件包 # Installed Packages
MySQL-python.x86_64 1.2.5-1.el7 base
mysql-connector-java.noarch 1:5.1.25-3.el7 base
mysql-connector-odbc.x86_64 5.2.5-8.el7 base
…….
列出所有可以升级的软件
yum list updates
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
更新的软件包 # Updated Packages
ModemManager.x86_64 1.6.10-4.el7 base
……
列出可以升级的mdam软件包
yum list updates mdadm*
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
更新的软件包 # Updated Packages
mdadm.x86_64 4.1-9.el7_9 updates
列出所有未安装的软件包
yum list available
列出未安装的mdadm软件包
yum list available mdadm*
列出所有已安装的软件包
yum list installed
列出已安装的mdadm软件包
yum list installed mdadm*
输出与mysql相关的软件
yum search mysql
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
====================== N/S matched: mysql ======================
MySQL-python.x86_64 : An interface to MySQL
akonadi-mysql.x86_64 : Akonadi MySQL backend support
apr-util-mysql.x86_64 : APR utility library MySQL DBD driver
mysql-connector-java.noarch : Official JDBC driver for MySQL
mysql-connector-odbc.x86_64 : ODBC driver for MySQL
….
qt-mysql.i686 : MySQL driver for Qt's SQL classes
qt5-qtbase-mysql.x86_64 : MySQL driver for Qt5's SQL classes
…..
mariadb-libs.i686 : The shared libraries required for MariaDB/MySQL clients
名称和简介匹配 only,使用“search all”试试
冒号左边是软件名称,冒号右边是RPM内的name
查看指定软件的详细信息
这里注意,info后面必须是软件完整名称,例如查询mysql-connector-java.noarch,名称应该是mysql-connector-java,写mysql会报错。
或者写作mysql*,查询所有含有mysql名称的软件包
yum info mysql-connector-java
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
可安装的软件包 #“可安装的软件包/Installed Packages”说明该软件未安
#装,如果此处是“已安装的软件包/Available Packages”
#说明该安装包已安装
名称 :mysql-connector-java
架构 :noarch
时期 :1
版本 :5.1.25
发布 :3.el7
大小 :1.3 M
源 :base/7/x86_64
简介 : Official JDBC driver for MySQL
网址 :http://dev.mysql.com/downloads/connector/j/
协议 : GPLv2 with exceptions
描述 : MySQL Connector/J is a native Java driver that converts JDBC (Java Database
: Connectivity) calls into the network protocol used by the MySQL database.
: It lets developers working with the Java programming language easily build
: programs and applets that interact with MySQL and connect all corporate
: data, even in a heterogeneous environment. MySQL Connector/J is a Type
: IV JDBC driver and has a complete JDBC feature set that supports the
: capabilities of MySQL.
查询某个命令是哪个软件提供的
yum provides grep
已加载插件:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
grep-2.20-3.el7.x86_64 : Pattern matching utilities
源 :base
grep-2.20-3.el7.x86_64 : Pattern matching utilities
源 :@anaconda
Yun的安装/升级/移除
yum [option] [安装与升级的工作项目] [相关参数]
选项相关参数:
install :后面接要安装的软件
update :后面接要安装的软件,若要整个系统都升级,就直接 update 即可
安装pam-devel
yum install pam-devel
升级pam-devel
yum update pam-devel
移除软件
yum remove pam-devel
更换镜像
使用的镜像源为清华大学开源软件镜像站,修改镜像源参考链接为:https://mirror.tuna.tsinghua.edu.cn/help/centos/
该文件只提供 CentOS 7 与 8,架构仅为 x86_64 ,如果需要较早版本的 CentOS,请参考 centos-vault 的帮助,若需要其他架构,请参考 centos-altarch 的帮助。
建议先备份 /etc/yum.repos.d/ 内的文件(CentOS 7 及之前为 CentOS-Base.repo,CentOS 8 为CentOS-Linux-*.repo)然后编辑 /etc/yum.repos.d/ 中的相应文件,在 mirrorlist= 开头行前面加 # 注释掉;并将 baseurl= 开头行取消注释(如果被注释的话),把该行内的域名(例如mirror.centos.org)替换为mirrors.tuna.tsinghua.edu.cn。
注意,如果需要启用其中一些 repo,需要将其中的 enabled=0 改为 enabled=1。
最后,更新软件包缓存
sudo yum makecache
首先备份原文件
cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak
接着修改源为清华源
[base]
name=CentOS-$releasever - Base
baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/os/$basearch/
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-7
#released updates
[updates]
name=CentOS-$releasever - Updates
baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/updates/$basearch/
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-7
#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/extras/$basearch/
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-7
#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/centosplus/$basearch/
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-7
yum clean all
yum makecache
apt-get用法
软件包目录说明
/var/lib/dpkg/states 安装和卸载软件的信息来源
/var/lib/apt/lists 查询软件的信息来源
/var/lib/dpkg/states与/var/lib/apt/lists/进行比较,以判断是否更新
apt的作用:管理软件包依赖
Apt会解决软件包依赖问题,也有APT因依赖关系不能安装软件包的情况。例如,某软件包和系统中的其他软件包冲突,或者该软件包依赖的软件包在任何软件源中均不存在或没有符合要求的版本。遇到这种情况,APT会返回错误信息并且终止,用户需要自行解决软件依赖问题。
软件包的查询apt-cache
查询所有软件包
apt-cache pkgnames //没错,这里就写作pkgnames,不用替换成其他东西
经过验证,这里查询的应该是update后缓存的pkgnames,而不是已经安装的pkgnames。如果需要查看是否安装,请看 ‘查询某个安装包安装状态和版本信息’
查看某个安装包的详细信息
apt-cache show mysql-server-5.7
Package: mysql-server-5.7
Architecture: amd64
Version: 5.7.33-0ubuntu0.16.04.1
Priority: optional
Section: database
Source: mysql-5.7
Origin: Ubuntu
……
Description-en: MySQL database server binaries and system database setup #描述信息
MySQL is a fast, stable and true multi-user, multi-threaded SQL database
server. SQL (Structured Query Language) is the most popular database query
language in the world. The main goals of MySQL are speed, robustness and
ease of use.
.
This package contains all the infrastructure needed to setup system
databases.
查询某个安装包安装状态和版本信息
apt-cache policy mysql-server-5.7
mysql-server-5.7:
Installed: (none)
Candidate: 5.7.33-0ubuntu0.16.04.1
Version table:
5.7.33-0ubuntu0.16.04.1 500
500 http://us.archive.ubuntu.com/ubuntu xenial-updates/main amd64 Packages
500 http://security.ubuntu.com/ubuntu xenial-security/main amd64 Packages
5.7.11-0ubuntu6 500
500 http://us.archive.ubuntu.com/ubuntu xenial/main amd64 Packages
这里查询的名称必须是全名
查询软件包名或描述中包含字符串的所有包
apt-cache search mysql
其中描述指的是‘查看某个安装包的详细信息’所指的描述信息,如果这里面包含该字符串(忽略大小写),也将展示在输出屏幕上
因此,如果需要查询名称中包含某个字符串的包名,需要加上—name-only参数
查询软件包中包名包含字符串的所有包
apt-cache search --names-only mysql
查询软件包中前缀是某个字符串的所有包
apt-cache pkgnames mysql
mysqltcl
mysql-mmm-agent
mysql-workbench
mysql-client-5.7
mysql-mmm-tools
mysql-server-5.7
mysql-utilities
mysql-testsuite
…..
其实上一个命令search也能查询出这些包,前提是需要规定字符串的必须以mysql开头
apt-cache search --names-only mysql | grep ^mysql
软件包的安装apt-get
apt-get命令一般需要root权限执行,所以还要使用sudo命令。
Apt-get用法
sudo apt-get [选项] 子命令
更新软件包列表(不更新软件)
sudo apt-get update
更新软件包并更新依赖
sudo apt-get upgrade
升级的最新版本来源于/etc/apt/sources.list列表中给出的安装源
如果软件包的新版本的依赖关系发生变化,引入了新的依赖软件包,则当前系统不能满足新版本的依赖关系,该软件包就会保留下来,而不会被升级
更新某个软件包并更新依赖
sudo apt-get --reinstall install 软件包名
下载并安装软件包,解决依赖
sudo apt-get install
使用 install 命令时,apt 包管理器将搜索缓存以获取包和版本信息,然后通过网络从其存储库下载它。如果软件包不在此缓存中,您的系统将无法安装它。
当您有一个新安装的 Ubuntu 系统时,缓存是空的。这就是为什么你应该在安装Ubuntu或任何其他基于Ubuntu的发行版(如Linux Mint)后立即运行apt update命令。
[已解决]“E:无法找到包”Ubuntu 上的错误 (itsfoss.com)
自动卸载所有未使用的软件包
sudo apt-get autoremove
卸载软件包
sudo apt-get remove
卸载软件包的配置文件
上面只是卸载了软件包,如果要同时删除配置文件,则要执行apt-get purge命令
sudo apt-get purge 软件包
或者
sudo apt-get remove –purge 软件包
彻底卸载软件包及其依赖的软件包
如果需要更彻底的删除,可执行以下命令,这将删除该软件包及其所依赖的、不再使用的软件包。
sudo apt-get autoremove 软件包名
清理已下载的软件包
sudo apt-get clean
实际上清理/var/cache/apt/archives目录中的软件包,不会影响软件正常使用
删除已卸载的软件的软件包备份
sudo apt-get autoclean
查看软件安装记录
zgrep -h 'status installed' /var/log/dpkg.log* | sort | tail -n 100
dpgk
dpkg是Debian及其衍生系统如Ubuntu的底层包管理工具。它用于安装、构建、删除和管理Debian软件包,但它不解决包之间的依赖关系。
查询服务器架构
dpkg --print-architecture
我的是amd64架构
下载deb包
一般可以在Ubuntu软件包及其存储库信息的网站上查询需要的包,比如 Packages for Linux and Unix - pkgs.org
假设我要下载sysstat包,可以查询该包
我们选择Ubuntu Main amd64架构的
点进去之后搜索Download,Binary Package是二进制包,可以直接下载使用的
wget米格罗宁根下载指定包
wget --no-check-certificate package_file.rpm
如何将rpm包转换为deb格式
可以使用alien
工具将rpm包转换为deb格式:
sudo alien -k package_file.rpm
dpkg常用命令
安装软件包
sudo dpkg -i package_file.deb
卸载软件包
sudo dpkg -r package_name
查询软件包信息
dpkg -l | grep package_name
管理软件包依赖
使用dpkg和apt-get解决依赖问题
如果dpkg报告依赖问题,可以使用以下命令安装缺失的依赖:
sudo apt-get -f install