在Linux下安装软件能够引起新手的迷惑,同样也会使有经验的朋友或喜或悲。
下面是在Linux下安装软件我们需要改变的20件事。
1、开源并不仅仅是源代码
“它是开源的,这是源代码。”可能会被忽略。多数用户实际上并不需要源代码,他们想要一个二进制文件。开发者应该提前将他们程序打包,确实需要鼓励开发者这样做。
2、如何运行
“我已经安装了Foo,但是如何运行呢?”在相关论坛上没有看到类似提问的恐怕没有几人吧。所有遵循Freedesktop.org 标准的窗口管理器,都会遵循标准XDG 关于菜单入口的桌面文件规定。安装一个图形化程序就不用抱怨了。
3、标准化界面
忘记关于文件包格式的争论吧,它将永远不会发生。我们需要一个标准软件包图形界面管理器,可以安装所有的软件包。设想一下,Synaptic在Ubuntu和 Fedora上运行,知道是采用Debs包还是RPMs软件包格式,那该多好啊。
4、更容易地添加软件仓库repositories
添加repositories,经常是从浏览器复制粘贴很长、很神秘的文本字符串到终端。一个标准的repository文件会使浏览器启动合适的包管理器将其添加到repository,就是出现一个对话框“are you sure/do you trust this”。
5、更简单地源代码编译
多少程序没有编译器和安装说明呢?很多都有通用的自动生成工具。这很容易呀。那为什么不给用户生成一个Install.sh脚本呢?同时检查一下依赖关系嘛。
6、Autotools = yuck
Autotools 很慢,看起来有一种神秘感。开发者主要使用Autotools。终端用户不应该看到这种东西。
7、降低文件系统杂乱程度
真有必要把文件安装到眼花缭乱的目录中吗?从软件包管理器安装程序是个不错的建议,卸载时候也可以知道把谁给清除了。构建源代码可能在卸载或从系统中移除时不够人性化,尤其是开发者不提供卸载文件时。
8、标准综合包
若是我们不能在单文件包格式上达成协议,标准包管理又从何谈起呢?
9、标准软件包名字
为什么不同的发行版命名同一个软件包会有不同的名字?如果在发行版本之间有一致的命名,解决软件包的依赖关系是不是会更容易些呢?
10、标准软件包拆分
不仅是软件命名需要统一,在每个发行版本里,次软件包也需命名一致。对上游开发者来说,一致性还有一段路要走。
11、去除 -dev软件包
当我们尝试编译源代码时,包含库头文件的-dev 或 -devel软件包会带来无穷的迷惑,比如经常出现像”libfoo not found”这样的信息。当安装GCC或Autotools时,自动安装相关的 -dev 软件包,将会减少我们的痛苦。