第九章:安装RPM包或源码包课后习题
1.区分rpm与-qi、-qf、-ql和-qa这4个不同选项组合的作用。
- rpm -qi 【rpm包名】:查看已安装的RPM包的相关信息。
- rpm -qf 【文件的绝对路径】:列出某个文件属于哪个RPM包。
- rpm -ql 【rpm包名】:列出一个RPM包的安装文件。
- rpm -qa :查看系统中安装了那些包。
2.rpm -qi后面如果跟一个未安装的包名,会显示什么信息?
[root@zl_cloud ~]# rpm -e vim-enhanced //我先卸载
[root@zl_cloud ~]# rpm -qi vim-enhanced
未安装软件包 vim-enhanced
[root@zl_cloud ~]#
3.vim命令是由哪个RPM包安装来的?
[root@zl_cloud ~]# which vim //先查看vim的绝对路径
/usr/bin/vim
[root@zl_cloud ~]# rpm -qf /usr/bin/vim //此命令可看出它是由哪个RPM包安装来的
vim-enhanced-7.4.629-6.el7.x86_64
[root@zl_cloud ~]#
4.使用RPM工具安装和卸载某个包的命令是什么?
安装:# rpm -ivh filename
卸载:# rpm -e filename
5.当安装某个有依赖关系的RPM包时,如何忽略依赖关系,强制安装该包?
# rpm -ivh --nodeps filename
6.如何使用RPM 工具升级包?
#rpm -Uvh filename
7.请使用yum工具搜索包含关键词tidy的RPM包并安装.安装后再使用yum工具将其卸载。
# yum list | grep tidy 或者 # yum search tidy
//搜索
# yum install -y tidy
//安装
# yum remove tidy
//卸载
8.如何使用yum工具来下载RPM包?
# yum install -y 【包名】
9.请到PHP的官方网站(https://www.php.net/ )下载PHP的源码包,并动手试试编译安装它。
我下载这个:php-7.4.3.tar.bz2
[root@zl_cloud src]# ll
总用量 19768
drwxr-xr-x. 12 500 500 4096 3月 8 06:48 httpd-2.2.29
-rw-r--r--. 1 root root 7537230 9月 2 2014 httpd-2.2.29.tar.gz
-rw-r--r--. 1 root root 12695760 3月 13 2020 php-7.4.3.tar.bz2
[root@zl_cloud src]# tar -jxvf php-7.4.3.tar.bz2 //解压源码包
[root@zl_cloud src]# cd php-7.4.3
[root@zl_cloud php-7.4.3]# ./configure --prefix=/usr/local/php
然后我又遇到了这样的问题:
configure: error: Package requirements (libxml-2.0 >= 2.7.6) were not met:
No package 'libxml-2.0' found
Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.
Alternatively, you may set the environment variables LIBXML_CFLAGS
and LIBXML_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
[root@zl_cloud php-7.4.3]#
解决上面说的要安装一下libxml这个包:
[root@zl_cloud src]# cd php-7.4.3
[root@zl_cloud php-7.4.3]# yum list | grep xml2
libxml2.x86_64 2.9.1-5.el7_1.2 @anaconda
libxml2.i686 2.9.1-6.el7_2.3 base
libxml2.x86_64 2.9.1-6.el7_2.3 base
libxml2-devel.i686 2.9.1-6.el7_2.3 base
libxml2-devel.x86_64 2.9.1-6.el7_2.3 base
libxml2-python.x86_64 2.9.1-6.el7_2.3 base
libxml2-static.i686 2.9.1-6.el7_2.3 base
libxml2-static.x86_64 2.9.1-6.el7_2.3 base
[root@zl_cloud php-7.4.3]# yum install -y libxml2*
再尝试:
[root@zl_cloud php-7.4.3]# ./configure --prefix=/usr/local/php
...... //省略
checking for sqlite3 > 3.7.4... no
configure: error: Package requirements (sqlite3 > 3.7.4) were not met:
No package 'sqlite3' found
还是出错,按照libxml的解决办法在进行一次安装即可。
安装完成之后再尝试:
[root@zl_cloud php-7.4.3]# ./configure --prefix=/usr/local/php
[root@zl_cloud php-7.4.3]# echo $?
0 //0代表配置成功
[root@zl_cloud php-7.4.3]# make //编译
[root@zl_cloud php-7.4.3]# make install
[root@zl_cloud php-7.4.3]# echo $? //最后再查看一下
0
完成。。
10.査资料指出yum upgrade与yum update的区别,它们在什么情况下使用?
update:更新系统中的一个或多个软件包
upgrade:更新软件包同时考虑软件包取代关系
yum upgrade与yum update都能更新系统的所有软件包,不同的就是upgrade相当一次大规模的升级,连带了旧的要淘汰的包也升级。update 和 upgrade 的侧重点不一样,update主要是使软件达到最新,但upgrade更侧重的是软件功能得到一个很大的提升,区别于频繁的发布最新的补丁。upgrade不改变软件设置和系统设置,系统版本升级,内核不改变;update改变软件设置和系统设置,系统版本内核都升级。
① yum upgrade : 用于大规模的版本升级,更新Linux系统和整个软件版本。
② yum update : 用于安装补丁文件,更新内核和软件包到最新。
11.如何査看Linux系统中(CentOS )是否安装过某个包?
[root@zl_cloud ~]# yum list installed | grep vim-enhanced
vim-enhanced.x86_64 2:7.4.629-6.el7 @base
[root@zl_cloud ~]# rpm -qa vim-enhanced
vim-enhanced-7.4.629-6.el7.x86_64
[root@zl_cloud ~]#
12.在./configure完成后,我们并不知道有没有成功,用什么命令可以验证呢?
[root@zl_cloud php-7.4.3]# echo $? //验证是否成功
0 //0为成功
13.如果在./configure这一步出现这样的错误:“configure: error: no acceptable C compiler found in $PATH”,我们该怎么办?
# yum install -y gcc
//它表示环境变量$PATH中没有找到可用的C语言编辑器,安装解决就可以了
14.有时你会忘记某个编译参数是如何写的,你怎么办?
# ./configure --help
15.如何使用光盘构建yum仓库?
上一篇博客的第二点yum工具的第六小点中有具体步骤。