红联Linux门户
Linux帮助

自动检测安装软件

发布时间:2011-04-29 07:49:28来源:红联作者:maogu1986
shell脚本程序,求高手给个自动检测系统是否安装某软件,如果没有安装就自动安装(系统带的)!
文章评论

共有 8 条评论

  1. age 于 2011-04-29 11:39:26发表:

    如果你使用yum这样工具的话, 完全可以省去判断的过程
    把想要的软件包全用 yum install <包名> 列出来
    执行的时候, 如果该包已安装就自动跳过, 如果未安装就自动安装
    由yum自己完成包检测

  2. age 于 2011-04-29 11:37:05发表:

    引用:
    恩 一个人很难搞定的!那如果我要判断nfs和smb还有tftp呢?如果安装了在进行配置
    maogu1986 发表于 2011-4-29 10:24


    判断的话很简单, 你可以安装上述软件后, 用rpm -ql 去得到所有被安装的文件
    然后选择其中部分关键文件做为判断依据
    即使是源码安装, 也只是文件保存位置有所变化, 而关键的文件名还是不变的

  3. maogu1986 于 2011-04-29 10:24:41发表:

    恩 一个人很难搞定的!那如果我要判断nfs和smb还有tftp呢?如果安装了在进行配置

  4. age 于 2011-04-29 10:18:26发表:

    太难, 如果不借助rpm, deb这样的包管理程序的话, 只能从具体文件来判断
    另一方面, 不同系统对于程序的打包也是不同的.
    比如rhel会把头文件之类的单独打包为一个devel包, 而arch里则不存达样的包.
    所以你的要求检测某个软件是否被装还是没装, 本身就是模糊的.
    究竟某个软件到底怎么来定义

    假设这点已经没有问题了. 下面的就是去判断这个包中的关键文件是否存在.
    最常见的可能就是测试对应命令是否存在, 如果是库文件之类的, 则可以用 [-f file]方式
    每个包都需要经过这样的测试

    只能说这是一个非常繁杂的工程, 倒不是说技术上有多难, 而是工作量太大

  5. 绿色圣光 于 2011-04-29 09:51:49发表:

    引用:
    有用啊,有了这个东西,就不用麻烦的安装了!新手都不知道那些软件安装了没有,比如说要用到nfs的时候不知道安装了没有,有不知道用什么指令去查看的时候怎么办?有这么个脚本就可以帮助菜鸟!
    maogu1986 发表于 2011-4-29 09:16

    只管安装就是了,如果安装了又不会重复安装。

  6. maogu1986 于 2011-04-29 09:17:07发表:

    求助中

  7. maogu1986 于 2011-04-29 09:16:54发表:

    有用啊,有了这个东西,就不用麻烦的安装了!新手都不知道那些软件安装了没有,比如说要用到nfs的时候不知道安装了没有,有不知道用什么指令去查看的时候怎么办?有这么个脚本就可以帮助菜鸟!

  8. 绿色圣光 于 2011-04-29 09:02:05发表:

    这脚本有用么?
    从源里安装软件,安装了就不会再安装了。干吗要自己判断?
    而且,不同的系统软件包管理方式不尽相同,不能通用……