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

  • 相关阅读:
    AxWindowsMediaPlayer的详细用法
    C# Windows Media Player控件的常用属性及方法
    C#中winform使用相对路径读取文件的方法
    DataGridView控件在加载数据时产生的闪烁问题
    浅谈C#中的双缓冲
    几种C#实现播放声音的方法
    C#下实现软件欢迎界面
    DataGridView控件内建立日期选择编辑列
    程序员值得看的电影(20170420EDIT)
    员工照片
  • 原文地址:https://www.cnblogs.com/jimmy1989/p/4867182.html
Copyright © 2011-2022 走看看