zoukankan      html  css  js  c++  java
  • Linux软件间的依赖关系(转)

    Linux中的软件大部分是零碎的,其粒度比windows的小很多,软件之间的依赖关系很强烈,下面是自己的一些理解:

    一、Linux中的软件依赖
    Linux中的软件依赖关系成一颗拓扑树结构,比如A直接或间接依赖B,那么B就不可能直接或间接依赖A。试想从时间上A、B必然有一个先出现,而先出现的不可能依赖于后出现的;并且如果A与B互相依赖则就是“鸡与蛋”的问题,因此必然有一个先出现而另一个依赖于先者。


    二、Linux的软件安装与卸载
    (1)安装软件A必须率先安装A依赖的所有软件;卸载软件A则必须率先卸载依赖A的所有软件。如下图:
    a
       b
       c
    b,c依赖于a,那么安装b或c都先要确保a的存在;同时卸载a必须确保b和c都已经被卸载。
    (2)卸载A不代表同时卸载A所依赖的所有无用软件,比如:B<--A,卸载A以后B就没用了(因为没有其他软件再依赖B了),Linux默认不卸载B,但可以使用特殊的参数让系统这么做。
    Ubuntu下,apt-get remove就是一般的卸载,而apt-get autoremove则是同时卸载其所依赖的无用软件
    --------------------------------
    autoremove的伪代码:
    autoremove_soft(entity x) {
        remove x;
        for each p in x->parent {
            p->child_num--;
            if(p->child_num == 0)
                autoremove_soft(p);
        }
    }
    ----------------------------------
    sudo apt-get autoclean 清理旧版本的软件缓存
    sudo apt-get clean 清理所有软件缓存
    sudo apt-get remove softname1 softname2 ...
    sudo apt-get --purge remove softname1 softname2 ...(同时清除配置)
    sudo apt-get autoremove 删除系统不再使用的孤立软件

    转自:http://www.linuxidc.com/Linux/2010-08/27972.htm

  • 相关阅读:
    Tomcat临时目录及java.io.tmpdir对应的目录
    第一篇随笔
    面试
    近期小结-082714
    从头开始构建web前端应用——字符炸弹小游戏(一)
    web版ppt制作插件impress.js源码注释翻译
    .net web service Application_BeginRequest,记录请求数据
    微信APP支付,阿里云服务器,统一下单请求超时
    android仿ios圆弧边框背景
    google map 地址编码及反向地址编码
  • 原文地址:https://www.cnblogs.com/jimmy1989/p/4867182.html
Copyright © 2011-2022 走看看