在 CentOS 或者 RHEL 系统里,想查个域名的 IP,输 dig 命令却提示 “没找到这个命令”?跟着教程输 yum install dig,结果屏幕上跳出 “没有可用的软件包”?瞬间就慌了 —— 这 dig 到底是个啥?为啥装个软件这么费劲?别着急,小编前阵子帮公司新来的同事装这个,就碰见过一模一样的情况,他对着屏幕戳了半天,最后还是我帮他搞定的。其实啊,不是你操作错了,是这 dig 藏在别的 “包” 里,新手不知道就容易卡壳。今天就把 CentOS/RHEL 里用 yum 装 dig 的步骤、缺包咋办、安装失败咋解决,全拆解开来讲,保证新手看完就能上手,不用再到处查教程。
一、先明白:dig 是啥?为啥 yum install dig 会失败?
dig 说白了就是个查域名信息的工具,你想知道 “taobao.com” 对应哪个 IP,或者这个域名的邮件服务器在哪,用 dig 一查就清清楚楚。在 Linux 里查 DNS 信息,它比 ping 好用多了,能看到的东西特别全。
那为啥输 yum install dig 会失败呢?这里有个新手最容易踩的坑 ——dig 并不是单独的一个软件包,它是 “躲” 在一个叫 “bind-utils” 的包里的。就像你想买瓶可乐,却对着货架喊 “我要买红色瓶子的饮料”,货架上根本没有这个名字,自然买不到。yum install dig 也是一个道理,直接搜 dig 找不到,得搜它所在的 “bind-utils” 包才行。
不过话说回来,就算知道要装 bind-utils,有时候还是会失败,这就可能和系统版本、yum 源有关了,咱后面慢慢说。
二、CentOS/RHEL 用 yum 装 dig 的具体步骤,分版本看
不同版本的 CentOS 和 RHEL,步骤稍微有点不一样,你对着自己的系统版本来,准没错。
1. CentOS 7 / RHEL 7 安装步骤
打开终端,一步一步来:
- 先看看 yum 源有没有问题,输 sudo yum repolist,要是列表里有东西,就说明源是好的;要是空的,就得先修复源
- 然后输关键命令:sudo yum install bind-utils -y。这里的 – y 是让它自动确认安装,不用你手动敲 y,省点事
- 等它跑完进度条,输 dig -v,要是跳出一串带版本号的字,就说明装好了
小编提醒一句,要是你的系统很久没更新,最好先输 sudo yum update -y 更一下,不然可能会有依赖问题,虽然不是必须的,但能减少麻烦。
2. CentOS 8 / RHEL 8 安装步骤
CentOS 8 里其实用 dnf 比 yum 多,但命令差不多,你输 yum 它也能转成 dnf 执行,不用纠结:
- 同样先检查源:sudo dnf repolist
- 安装命令:sudo dnf install bind-utils -y
- 验证一下:dig -v,有版本信息就成
我之前在 CentOS 8 上试过,直接用 yum install bind-utils 也行,系统会自动转成 dnf 处理,所以新手不用特意记两个命令,选一个顺手的就行。
三、最常见的 “缺失包”“安装失败”,这样解决
装的时候最头疼的就是 “没找到包” 或者 “安装失败”,小编整理了几个常见情况,你对号入座:
1. 提示 “没有可用软件包 bind-utils”
这时候先别急着骂系统,可能是 yum 源里没有这个包。解决办法很简单:
- 装个 epel 源试试,输 sudo yum install epel-release -y,装完再输 sudo yum install bind-utils -y
- 要是还不行,就换个 yum 源,比如阿里云的源,网上搜 “CentOS 换阿里云源”,跟着步骤改一下,基本都能解决
小编之前碰见过一个极端情况,有台老服务器的 yum 源太旧了,连 epel 源都装不上,最后只能手动下载 bind-utils 的 rpm 包,用 sudo rpm -ivh 包名.rpm 安装,虽然麻烦点,但也能成。
2. 提示 “依赖关系错误”
这种情况就是系统里缺了 bind-utils 需要的其他东西。解决办法:
- 输 sudo yum install bind-utils –skip-broken,让 yum 跳过有问题的依赖试试
- 要是还不行,就更新一下系统:sudo yum update -y,更新完再装
不过这里有个小疑问,为什么有时候更新系统就能解决依赖问题?或许是因为更新时会自动补上一些缺失的基础组件,但具体原理我也说不太清,反正试过好几次都管用。
四、装完之后咋用?dig 的几个简单用法
装好了不用白装,教你几个最常用的查 DNS 的方法,立马就能用上。
- 查域名的 IP:输 dig baidu.com,看结果里 “ANSWER SECTION” 下面的 A 记录,后面的数字就是 IP
- 查邮件服务器:输 dig mx qq.com,能看到 qq 的邮件服务器地址,还有优先级
- 想看得简单点:输 dig baidu.com +short,只显示 IP,干干净净的
小编平时查域名的时候,最喜欢用 dig +trace,能看到从根服务器到顶级域名服务器的整个查询过程,虽然新手可能觉得有点复杂,但看多了就知道,对排查 DNS 问题特别有用。
五、个人用下来的几个小经验,新手可以记记
用 yum 装 dig 这事儿,说难不难,说简单也有坑,小编总结了几个自己的经验:
第一,千万别记混包名,一定要用 bind-utils,别写成 bind 或者其他名字,我见过有人写成 bind-tools,结果当然装不上。
第二,要是你的系统是特别老的版本,比如 CentOS 6,可能很多 yum 源都停了,这时候要么升级系统,要么手动下 rpm 包。至于为什么老版本的源会停,具体机制我也不太清楚,可能和服务商不再维护有关。
第三,装完之后最好立马输 dig -v 验证一下,别等用到的时候才发现没装上,那时候再回头查问题,更耽误事。
其实啊,在 Linux 里装软件,遇到问题很正常,关键是别慌。像装 dig 这种小工具,只要找对包名、确保 yum 源没问题,基本都能装上。新手刚开始可能觉得命令行吓人,用多了就会发现,比图形界面快多了。你要是装的时候还碰到其他奇怪的错误,欢迎留言,咱一起琢磨琢磨咋解决。