跟阿铭学Linux第九章,安装rpm包或源码包
rpm
-qa 查询系统所有的已安装的rpm包;q(query)
qi 已安装包的相关信息,参数不用加平台信息和后缀名,不能用tab键补全;
ql 列出一个rpm包的安装文件;(如果要查找一个文件来自于哪个包,就可以用qa查到已安装的包,再用ql列出这些包的所有安装文件,再把要查找的文件过滤出来。)
qf 列出某个文件属于哪个rpm包,后面跟文件的绝对路径(上面括号里也是做这个工作的,这个更方便.....)
v 可视化,h显示进度
i 安装,e卸载,U升级;
yum
yum list 联网查询d所有可用的rpm包(rpm -qa是列出所有已安装的);左侧是包名,中间是版本信息,右侧是安装信息(base,update.....),这个命令并没有先列出已安装的包,再列出可以安装的包。
yum search 搜索;install remove 安装和卸载;update 更新;
用yum下载rpm包:
yum install $packageName --downloadonly --dpwnloaddir=$dir,
如果包已经在系统上安装过,还不能下载。
需要用reinstall ,yum reinstall vim bash --downloadonly --downloaddir=/usr/local/src/
去掉bash也能安装成功,书上的命令有bash。对于系统上没有安装的包,用reinstall会出错,所以下载包的时候不能全用reunstall。
源码安装httpd,
https://blog.****.net/luckily01/article/details/25572769
安装httpd需要安装其它的好多包,比如:apr,apr-util,pcre,expat-devel
,g++。如果有些依赖实在没办法用源码安装,那就用yum安装吧。
如果pcre的一直安装不成功,可以试试其它版本。
补充:systemctl命令会去/etc/init.d目录下,查看,执行相关程序,要想用systemctl控制httpd,还要写一个文件放到目录中。
参考:https://blog.51cto.com/12173069/2067565
课后习题:
-
qa 查询系统所有的已安装的rpm包;q(query)
qi 已安装包的相关信息,参数不用加平台信息和后缀名,不能用tab键补全;
ql 列出一个rpm包的安装文件;
qf 列出某个文件属于哪个rpm包,后面跟文件的绝对路径(上面括号里也是做这个工作的,这个更方便.....)
-
会提示:package tree is not installed
-
用which vim 查看vim的执行文件的绝对路径,再用rpm -qf /user/bin/vim 得到包名。
简单写法:rpm -qf `which vim` -
安装i,卸载e。
安装:rpm -i 包名 或 rpm --install 包名
卸载:rpm -e 包名 或 rpm --erase 包名
-
用 --nodeps
--nodeps do not verify package dependencies -
用参数U来升级包 -U, --upgrade=<packagefile>+ upgrade package(s)
-
yum search tidy yum install -y php-tidy yum remove tidy
-
yum install $packageName --downloadonly --dpwnloaddir=$dir,对于已经安装的包,用reinstall。
-
依赖太多........
-
upgrade
与附带--obsoletes
的选项时的update
是一样的,默认情况下没有区别,而使用update
则更为灵活。 -
rpm -qa |packageName 查看packageName是否已经安装过。yum list installed | grep 包名 或者 rpm -qa | grep 包名都可以,我用vim测试发现两个命令找到的包一样。
-
用 echo $?。
当一个进程执行完毕时,该进程会调用一个名为 _exit 的例程来通知内核它已经做好“消亡”的准备了。该进程会提供一个退出码(一个整数)表明它准备退出的原因。按照惯例,0用来表示正常的或者说“成功”的终止。
也就是说我们在执行 echo $? 时反回的值就是进程的退出码。而且,这个退出码是由刚刚执行完的进程提供给系统内核的。
-
应该是环境变量出错了,找不带编译器,可以用which gcc得到gcc的绝对路径,再加上参数
--with-gcc=dir ,应该就可以了。 -
./configure --help|grep xxx,用--help,再根据自己记忆的部分,把完整的参数过滤出来。
也可以看 INSTALL、README。 -
先挂载光盘,mount /dev/cdrom/mnt 删除/etc/yum.repos.d目录下的所有repo文件,rm -rf /etc/yum.repos.d/* ,再创建新文件dvd.repo ,把以下内容写进去,
[dvd]
name=install dvd
baseurl=file:///mnt
enable=1
gpgcheck=0
再刷新repos生成缓存,yum makecache。