Q: Slackware 的包管理器不解决依赖,我要如何处理依赖呢?Slackware 在对待依赖的问题上使用一个简单粗暴的方法:
所有同类型的软件包放到源里的一个目录里并赋予主观上的含义,于是软件包之间的依赖关系转化为软件包组间的依赖关系,当用户选择安装某个软件包组的时候,直接将对应目录下所有的软件包全部安装,至于软件包组之间的依赖则由用户处理。这样依赖处理简单了很多,例如你想安装KDE,根据常识需要首先安装X11,那么选择对应的软件包组安装即可。
这些目录你可以挂载你的Slackware 安装介质,在/slackware(64) 目录下找到,在这里提供一份网络版
http://mirrors.ustc.edu.cn/slackware/slackware64-current/slackware64/目录(软件包组)的
含义如下:
a/ - 基本系统
ap/ - 不依赖X11 视窗系统的程序
d/ - 开发环境
e/ - Emacs
f/ - 文档
k/ - 内核源代码
kde/ - KDE 桌面环境
kdei/ - KDE 多国语言支持
l/ - 系统库
n/ - 网络组件
t/ - Tex(一个文档排版程序)
tcl/ - Tcl/Tk 脚本语言
x/ - X11 视窗系统
xap/ - 依赖X11 视窗系统的程序(包括了一些窗口管理器例如Fluxbox)
xfce/ - Xfce 桌面环境
y/ - 游戏
这里
给出的建议是:
如果
没有使用经验则像安装程序那样,推荐以软件包组为单位安装。
如果手头有安装介质,请挂载介质,cd 到/slackware(64) 目录,一次性安装某个软件包组的所有包,例如xap:
find ./xap -name **.t?z* -exec upgradepkg --reinstall --install-new {} \;
如果没有安装介质,可以使用slackpkg install xap 达到上面find 指令相同的效果。
如果
有一定使用经验则建议自己估算依赖,例如xap 目录下的包大多都不是被其他包依赖的,可以只安装需要的部分,但是l 目录下的包基本都是被其他包依赖的,最好全部安装。
等你有了一定使用经验,自然可以相对优雅的自行处理依赖关系。
如果
运行程序发现缺少依赖库,请slackpkg file-search lib.so 查找这个库所属的包,将这个包安装,反复执行这个过程,直到依赖完备。