事情缘由:
今天在centos安装java开发环境,想当然的用了以下命令完成安装:
# yum groupinstall "Java 平台"
谁知道,安装完毕做编译测试是却发现一个命令:"javac"愣是找不到。这下我就郁闷了,你说安装java吧,我把java的平台相关的安装包都安装了。这个javac到底是哪里来的?
网上找一下,终于发现一个有用的命令:
yum provides "*/javac"
一查,结果如下:
1:java-1.6.0-openjdk-devel-1.6.0.0-1.57.1.11.9.el6_4.x86_64 : OpenJDK Development Environment Repo : base Matched from: Filename : /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64/bin/javac
原来 javac 在rpm包 "java-1.6.0-openjdk-devel" 里,运行
yum install java-1.6.0-openjdk-devel
然后检查:
# which javac
得出结果:
/usr/bin/javac
终于找到你了!!
关于“yum provides ”
provides
功能检测软件包中包含的文件以及软件提供的功能。与 search
相比,这个选项要求 yum
下载并读取一个很大的索引文件。
要搜索所有包含文件 command_file
的软件包,输入:
su -c 'yum provides command_file
'
运行就可以值得关于某个命令(其实就是文件)相关的rpm包。
注意
新版yum似乎格式已经改变了,直接敲打上述命令,会报错:
# yum provides "command_file" Warning: 3.0.x versions of yum would erroneously match against filenames. You can use "*/command_file" and/or "*bin/command_file" to get that behaviour No Matches found
遇到这个错误,可以使用新的格式查询rpm包:
# yum provides "/command_file"
转载于:https://blog.51cto.com/mochaming/1294843