跟阿铭学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.csdn.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

课后习题:

  1. qa 查询系统所有的已安装的rpm包;q(query)

    qi 已安装包的相关信息,参数不用加平台信息和后缀名,不能用tab键补全;

    ql 列出一个rpm包的安装文件;

    qf 列出某个文件属于哪个rpm包,后面跟文件的绝对路径(上面括号里也是做这个工作的,这个更方便.....)

  2. 会提示:package tree is not installed

  3. 用which vim 查看vim的执行文件的绝对路径,再用rpm -qf /user/bin/vim 得到包名。
    简单写法:rpm -qf `which vim`

  4. 安装i,卸载e。

    安装:rpm -i 包名 或 rpm --install 包名

    卸载:rpm -e 包名 或 rpm --erase 包名

  5. 用 --nodeps  
      --nodeps                         do not verify package dependencies

  6. 用参数U来升级包     -U, --upgrade=<packagefile>+     upgrade package(s)

  7. yum search tidy     yum install -y php-tidy       yum remove tidy

  8. yum install $packageName --downloadonly --dpwnloaddir=$dir,对于已经安装的包,用reinstall。

  9. 依赖太多........

  10. upgrade 与附带 --obsoletes 的选项时的 update 是一样的,默认情况下没有区别,而使用 update 则更为灵活。

  11. rpm -qa |packageName 查看packageName是否已经安装过。yum list installed | grep 包名 或者 rpm -qa | grep 包名都可以,我用vim测试发现两个命令找到的包一样。

  12. 用 echo $?。

    当一个进程执行完毕时,该进程会调用一个名为 _exit 的例程来通知内核它已经做好“消亡”的准备了。该进程会提供一个退出码(一个整数)表明它准备退出的原因。按照惯例,0用来表示正常的或者说“成功”的终止。

    也就是说我们在执行 echo $? 时反回的值就是进程的退出码。而且,这个退出码是由刚刚执行完的进程提供给系统内核的。

  13. 应该是环境变量出错了,找不带编译器,可以用which gcc得到gcc的绝对路径,再加上参数  
    --with-gcc=dir ,应该就可以了。

  14. ./configure --help|grep xxx,用--help,再根据自己记忆的部分,把完整的参数过滤出来。
    也可以看 INSTALL、README。

  15. 先挂载光盘,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。

 

跟阿铭学Linux第九章,安装rpm包或源码包

跟阿铭学Linux第九章,安装rpm包或源码包