CentOS系统中yum的基本用法
最小化安装系统时,yum可能会因为网卡配置问题,随机启动配置,导致无法使用,
在shell里面输入:yum --help ,结果显示 yum 已经正常安装了!!到底是哪里出了问题呢?经过网友的提示,我知道了,可能是我的网卡没能跟随操作系统启动!!!
在shell里面输入命令:cd /etc/sysconfig/network-scripts ,随后回车,进入这个目录。随后在shell里面输入:ls,随后回车,会显示这个目录里面的所有文件。
修改网卡配置文件。ifcfg-ens33 就是我的网卡配置文件(有可能有区别),我用vi编辑它,在shell里面输入:vi ifcfg-ens33 ,随后回车,按i键,进入vi编辑模式,现在就可以编辑此文件了!
把 ONBOOT 的值no修改为yes,CentOS 最小化安装的网卡默认不跟随系统启用,所以这项的默认值为No。修改成yes后,直接输入:wq 保存当前修改,退出。
重启操作系统,在shell里面输入:reboot,随后回车,重启操作系统。
最后网卡启动成功,可以执行yum的常规操作
#更新yum列表
yum list
#用yum更新所有安装软件(更新时间很长)
yum -y update
#用yum更新安装指定软件(vim)
yum -y install vim
yum localinstall 本地rpm包,并在线安装其他依赖
yum localinstall package
从本机目录安装软件包
今天在Fedora 12上安装VBox的时候遇到一点麻烦,还好yum localinstall 帮我轻松的解决这个问题.
[Blinux@Blinux]$ rpm -ivh VirtualBox-3.1-3.1.0_55467_fedora12-1.i686.rpm
warning: VirtualBox-3.1-3.1.0_55467_fedora12-1.i686.rpm: Header V4 DSA signature: NOKEY, key ID 6dfbcbae
error: Failed dependencies:
libQtCore.so.4 is needed by VirtualBox-3.1-3.1.0_55467_fedora12-1.i686
libQtGui.so.4 is needed by VirtualBox-3.1-3.1.0_55467_fedora12-1.i686
libQtNetwork.so.4 is needed by VirtualBox-3.1-3.1.0_55467_fedora12-1.i686
libQtOpenGL.so.4 is needed by VirtualBox-3.1-3.1.0_55467_fedora12-1.i686
于是乎我
[root@Blinux]# yum localinstall VirtualBox-3.1-3.1.0_55467_fedora12-1.i686.rpm
来安装,需要的rpm包也下载完成了,只是最后提示
warning: rpmts_HdrFromFdno: Header V4 DSA signature: NOKEY, key ID 6dfbcbae
VirtualBox-3.1-3.1.0_55467_fedora12-1.i686.rpm 的公钥没有安装
原来是公钥没有安装,还是加个 --nogpgcheck 参数来禁止检查gpg签名
[root@Blinux]# yum localinstall VirtualBox-3.1-3.1.0_55467_fedora12-1.i686.rpm --nogpgcheck
最后终于得到下面的提示
已安装:
VirtualBox-3.1.i686 0:3.1.0_55467_fedora12-1
作为依赖被安装:
libmodplug.i686 1:0.8.7-2.fc12 libmpcdec.i686 0:1.2.6-6.fc12
phonon.i686 0:4.3.1-102.fc12 phonon-backend-xine.i686 0:4.3.1-102.fc12
qt.i686 1:4.5.3-9.fc12 qt-sqlite.i686 1:4.5.3-9.fc12
qt-x11.i686 1:4.5.3-9.fc12 xine-lib.i686 0:1.1.16.3-4.fc12
完毕!
总结:YUM常用命令:
1.安装软件包:
yum install package
yum localinstall openssh*.rpm从本机目录安装openssh的软件包(等待安装完成。yum会处理依赖关系并安装所需的软件包。)
yum localinstall -y ./*rpm 扫描当前目录下的所有rpm包,并使用yum进行本地安装。(等待安装完成。yum会处理依赖关系并安装所需的软件包。)
yum groupinstall group 安装某个组件的全部软件包
2.更新软件包:
yum update package
yum check-update 列出所有可更新的软件包
yum list updates mysql* 查找mysql的更新
yum update 更新所有可更新的软件包
yum update mysql* 更新所有mysql的软件包
yum groupupdate group 更新某个组件的所有软件包
yum list 列出所有已安装和仓库中可用的软件包
yum list available 列出仓库中所有可用的软件包
yum list updates 列出仓库中比当前系统更新的软件包
yum list installed 列出已安装的软件包
yum list recent 列出新加入仓库的软件包
yum info 查询软件包信息
3.删除软件包:
yum remove package
yum groupremove group 删除某个组件的全部软件包
4.清除软件包
yum clean packages 清除遗留在缓存里的包文件
yum clean metadata 清除遗留在缓存里的元数据
yum clean headers 清除遗留在缓存里的头文件
yum clean all 清除包文件,元数据,头文件
5.搜索软件包:
yum search package
yum info package 查找一个软件包的信息
yum list package 列出包含指定信息的软件包
yum list installed 列出已安装的软件包
yum list extras 列出不是通过软件仓库安装的软件包
yum list *ttp* 列出标题包含ttp的软件包
yum list updates 列出可以更新的软件包
6.查找特定文件是由什么软件包提供的:
yum whatprovides filename
例子:
yum whatprovides httpd.conf
可用选项
–disalberepo=lib 禁用某个软件仓库
–enalberepo=lib 启用某个软件仓库
-C 禁用使用本机缓存的元数据
例子:
yum –disalberepo=livna|–enalberepo=livna install mplayer
yum -C info httpd
其他相关使用方法
搜索/查询( [ ]为可选字段 )
#根据关键词搜索服务器上的包资源
yum search [all] 关键字
#列出所有的软件,包含已经安装的和可供安装的(不加关键词列出全部,加关键词列出指定的软件)
yum list [关键字]
#列出当前已经安装的软件(不加关键词列出全部,加关键词列出指定的软件)
yum list installed [关键字]
安装
#安装指定的软件
#通常安装软件,会询问是否要安装,加上 -y 则不会询问,算是你选择了 yes 直接安装。
#-y 与 install 的顺序可以颠倒,谁前谁后都可以。
yum [-y] install 关键词
卸载
#卸载指定的软件
#通常卸载软件,会询问是否要卸载,加上 -y 则不会询问,算是你选择了 yes 直接卸载。
#-y 与 remove 的顺序可以颠倒,谁前谁后都可以。
yum [-y] remove 关键词
更新(过程时间有点久)
#更新整个系统,包含内核
yum [-y] update
#更新指定软件
yum [-y] update 关键字
当您使用 yum
安装时,systemd
会自动创建并配置好 /usr/lib/systemd/system/xxxxxx.service
这个文件。这样就可以使用 systemctl
来管理 Nginx 服务
yum
安装通常是放在 /usr/lib/systemd/system/
目录中,而 /etc/systemd/system/
目录通常用于放置自定义的服务单元文件或者覆盖默认的服务单元文件。
例如:你yum安装了nginx,你可以通过cat /usr/lib/systemd/system/nginx.service
命令查看 nginx.service 配置内容
[root@CentOS7 ~]# cat /usr/lib/systemd/system/nginx.service
[Unit]
Description=The nginx HTTP and reverse proxy server
After=network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target
[Service]
Type=forking
PIDFile=/run/nginx.pid
# Nginx will fail to start if /run/nginx.pid already exists but has the wrong
# SELinux context. This might happen when running `nginx -t` from the cmdline.
# https://bugzilla.redhat.com/show_bug.cgi?id=1268621
ExecStartPre=/usr/bin/rm -f /run/nginx.pid
ExecStartPre=/usr/sbin/nginx -t
ExecStart=/usr/sbin/nginx
ExecReload=/usr/sbin/nginx -s reload
KillSignal=SIGQUIT
TimeoutStopSec=5
KillMode=process
PrivateTmp=true
[Install]
WantedBy=multi-user.target
[root@CentOS7 ~]#
点击查看详细解释
[Unit]
# 描述了服务的名称和用途。
Description=The nginx HTTP and reverse proxy server
# 指定了 Nginx 服务应该在 network-online.target、remote-fs.target 和 nss-lookup.target 之后启动。
# 这意味着 Nginx 服务不会在系统网络服务、远程文件系统挂载和名称服务查询服务之前启动。
After=network-online.target remote-fs.target nss-lookup.target
# 表示 Nginx 服务依赖于 network-online.target,但不需要等待它完成。
Wants=network-online.target
[Service]
# 指定 Nginx 服务类型为 forking 类型,这意味着 Nginx 会 fork 出子进程,并且父进程会立即退出。
Type=forking
# 指定 Nginx 进程 ID 文件的路径。
PIDFile=/run/nginx.pid
# Nginx will fail to start if /run/nginx.pid already exists but has the wrong
# SELinux context. This might happen when running `nginx -t` from the cmdline.
# https://bugzilla.redhat.com/show_bug.cgi?id=1268621
# 在启动 Nginx 服务之前,删除 /run/nginx.pid 文件。这是为了防止 SELinux 导致的问题,即如果 PID 文件存在但 SELinux 上下文不正确,Nginx 将无法启动。
ExecStartPre=/usr/bin/rm -f /run/nginx.pid
# 在启动 Nginx 服务之前,运行 nginx -t 命令来测试配置文件的有效性。
ExecStartPre=/usr/sbin/nginx -t
# 指定启动 Nginx 服务的命令。
ExecStart=/usr/sbin/nginx
# 指定重新加载 Nginx 服务配置文件的命令。
ExecReload=/usr/sbin/nginx -s reload
# 指定终止 Nginx 服务时发送的信号。使用 SIGQUIT 信号是为了确保 Nginx 可以优雅地关闭。
KillSignal=SIGQUIT
# 指定在发送停止信号后等待 Nginx 服务停止的最大秒数5。
TimeoutStopSec=5
# 指定终止模式。在这种情况下,systemd 会向 Nginx 的主进程发送信号。
KillMode=process
# 指定 Nginx 服务是否使用私有的临时文件系统。这有助于隔离 Nginx 服务的临时文件,提高安全性。
PrivateTmp=true
[Install]
# 指定 Nginx 服务将在 multi-user.target 这个目标之后启动。这意味着 Nginx 服务将在多用户运行级别下启动。
WantedBy=multi-user.target
分割线
如果因为linux服务器网络受限不能下载某些包,所以需要从别的电脑下载好相应的文件,传送给服务器进行安装。只要把相应的包安装在服务器的/var/cache/apt/archives文件夹下即可。然后
sudo apt-get update
sudo apt-get install <指定包>