Tag Archives: Linux

精确提问的艺术

老实讲,我已经不记得我多少次说过“你什么意思”这句话了。 很多人的提问几乎没有任何信息含量。 想要在*nix世界里提问,首先你可能已经学习过了《提问的艺术》,如果你还没学习过,那请先去学习一次。这篇文章哪都有,而且有中文版。于是本文的牢骚纯粹作为那篇文章的补充。 前提:不要做白痴! 至少如果你的问题如果包含一条出错信息,那么你应该先去搜索。如果你使用Google的话,应该至少学会引号的使用,这样能使你搜索的结果是包含整句话,而不是零散的几个词。其次,搜索要去掉所有只能在你机器上重现的内容,例如路径,进程号。 另外要善用Google的按时间搜索功能,如果你发现五年前有人遇到类似的问题,那么那个问题很可能不是你的问题。要找最近出现的内容。 1、不是害羞的时候! 如果你知道什么,不要有意把你知道的内容隐瞒起来。 2、你都干了些什么?! 精确不代表冗余的内容,在了解你的问题的基础上,你要列出相关的内容。以下是一些经验之谈。一个关键的方法就是找你做了什么。例如你安装了什么软件包,修改了什么配置。 在自己知识范围内确定可能的问题。 如果输出提示和什么文件相关,可以通过包管理器去查询那个文件所属的包。 在少数情况下,问题是可能绕一个曲线才会触发的(例如我有幸曾经发现过一次glibc的bug……触发曲线是 KDE->Qt->Strigi->glibc,但这种情况少之又少。),找到你知道的直接相关的问题。 找到前后的差异是很重要的。而且也是最容易的。包管理器都会提供你安装的log记录,如果你不记得了,包管理器的log也会帮你记得。 3、举一反三! 如果你的问题和许多环境有关,那么最好确定下你的问题是否与某个环境有关。比如我经常被问到的输入法问题,如果不能启用输入法,那么究竟是哪个程序不能启用?那么有哪个程序又能启用?这些也都是重要的信息。 再比如显卡驱动,你当然可能只有一台电脑,那么开源闭源驱动至少可以换着试试看。究竟是驱动的问题还是程序的问题这是一条重要的分水岭。 4、寻找同行者! Linux的环境是非常复杂的,而且在这个环境下,很多人对于自己环境没有问题出于一种幸灾乐祸的态度(你懂的),比如说,你在Fedora的论坛上说你的Ubuntu出问题了,很大可能会收到的回答就是,来投奔Fedora吧!事实上也不能太怪别的论坛的人,他们可能压根不知道在你那边发生了什么。 所以先问和你有相同环境的人,也是很重要的一点,比较你们二人的环境配置也是有助于找到你的问题。 其实除了第一条之外,后三条和核心思想只有一句话,那就是比较。不要指望其他人一口气指出你的问题,你和他的距离已经超过世界上最遥远的距离了。

Posted in Linux | Tagged | 6 Comments

炮文:为什么你不应该用独立的WM作为你的桌面

因为你享受不到Linux桌面带来的好处。 如果你不知道什么是freedesktop.org,我建议你先去补课。 别以为Linux的桌面是没有标准的。为了让程序们能够在不同的桌面下正常工作,真的是有一些人去制定一个标准,让程序们可以放心的处理跨桌面的行为。 即使你想用独立为WM,从而满足你那小小的需求,你也应该去用一个桌面,然后替换掉上面的组件。而不是写一些愚蠢的脚本将别的桌面的组建在你可怜的桌面上启动。 lxde,xfce都是不错的开始。尤其是xfce,当年我在上面各种替换组件的经历都十分愉快。 其次选择一个登录管理器(噢,你别把slim当成和startx有什么区别的东西),而不是startx。如果你想知道为什么的话,那就是一些必须的初始化。如果不想纠结于,dbus,polkit,networkmanager,为什么在你的桌面上不能正常工作的话。 事实上,没有几个人能够好好的初始化这些东西,与其花费精力去了解这些东西到底是什么,为什么不用一个bug free的session管理器呢? 有什么会Break? 文件关联,你总是需要一个文件管理器,xdg-open是桌面程序开发者的好帮手,帮你选择正确的程序打开文件,但你不要自作聪明去破坏开发者的好意。使用一个xdg兼容的文件管理器能省下你无数功夫。 dbus & consolekit DBus的连接是一个抽象的地址,为了让一些程序能够通信,他们需要连接到这同一个地址上面。但是DBus找到这个地址的方式有两个,一个是通过session,一个是通过环境变量,如果你不懂怎么才能初始化consolekit和dbus,你最好省省去用一个session管理器。 这些还不够吗? 你要好好学习到你是一个非主流用户了,如果你连这点都认识不到,你不要指望桌面开发者能够照顾你什么,你和他们已经不是生活在一个时代的人了。 不要指望开发者会给你一个地方配置使用什么浏览器,不要指望开发者给你一个地方设置使用什么文件管理器,不要指望开发者给你一个地方去设置你愚蠢的文件关联命令。自从你自作聪明的使用你愚蠢的脚本启动桌面,你早就活在他的用户群之外了。

Posted in Linux | Tagged , | 32 Comments

Linux的桌面为什么这么傻逼(翻译)

就算成天被桌面折磨着早就成了M,但该骂还是他妈得骂,下面是别人骂的,总之都说到心坎里面了。本来想多加点脏话表达下心情,不过毕竟是翻译还是不要偏离原意为好。 来源: http://news.ycombinator.com/item?id=2643671 作为VLC的主要开发者和VideoLan的实际领导者,尽管我不想说什么,但最近有那么点受不了了。(啊,我还没叛逃到Windows去……)……是的,我是开源的强烈支持者,并且在大多数桌面操作系统上为FLOSS做了很多工作(包括匿名和不匿名的),并且相信计算机应该是自由的。我作为Linux用户和系统管理员已经有8年了。 但是,我被最近所谓的Linux桌面的“进步”震惊了:大多数所谓的进步就是渣……而且不光是我一个人这么认为,我所看到的用户反馈也都是些抱怨……尽管我会因为这篇回复而被人讨厌,但是我不吐不快。 – PulseAudio还是半生不熟的时候,就被Ubuntu和Fedora硬塞给了用户,并且许多用户都讨厌它;它具有严重的NIH综合征,和老架构相比它只带来了一点点新特性,那些新特性反而老平台做得更好。它的维护团队拒绝持续更新,也不愿意对某些应用友好(这完全不可接受),不光线程不安全,而且某些情况会占用大量CPU。 – PolicyKit 十分复杂,占用大量进程,而且几乎不能正确初始化(似乎只有gdm3能办到这件事)。它会弄坏大量的程序,特别是 Network Manager …现在我不得不用命令行来在KDE上连接wifi。并且如果你使用Gnome3或者NM的话,你还不得不使用它。 – KDE4.x 在4.3之前完全不能用(事实上我可以接受),但到了4.6,我还是不得不禁用语义学桌面和strigi从而让它不要操掉我那点CPU资源。Network Manager 还是无法工作,并且使用Nvidia的闭源驱动时我这里kwin会发生奇怪的崩溃。 – 尽管PackageKit不那么重要,并且它做得还不错,但它也十分复杂,需要维护者为大多数发行版打大量补丁,这玩意其实没啥必要,但是还是占用了大量时间…… – Unity 和 Gnome3 的可用性大踏步倒退,当然在下个版本出来之前我不会太在意这个(KDE 4.0 和 4.1 也不咋地)但他们还是烂到家了。对他们来说,窗口管理器无法正确处理全屏程序,x11 和 OpenGL 的混合程序,当然还包括了了 Xv。无障碍访问(注:残障人士相关的那个功能)完全被Unity抛到脑后了。不仅如此,Unity还时常崩溃或者死循环,我的家人对这次升级十分不满意。 所以,当人们问到我对于systemd和Wayland的观点时,我也不乐观。 幸好,我在打印上完全没问题 🙂 ——————–我是风骚的分割线———————– (注,这是另外一个人了) 如果你对四年前的linux桌面很满意,事实上我也是这么想的,好消息是,如果你还想找回它来,它始终还在那里。你也许所需要做的事情就是放弃或者降级Gnome,但它确实还在那。(或者对我来说,把KDE的一陀默认设置给取消了。)但不可否认的是,最近关于Windows的尝试就是场灾难。考虑到开源的基本工作方式,现在有大量的架构宇航员(含义请参考[1])在满世界乱窜。他们在干这些事情: 1、搞一个看起来富丽堂皇的设计 … Continue reading

Posted in Linux | Tagged , , | 20 Comments

闲谈

既然是闲谈就毫无逻辑。其实我的blog一向毫无逻辑。于是下文会有很多风骚的分割线,妄图掺和一些逻辑进去。 我不是啥好人。大概我的理想就是干自己想干的事情。不喜欢被无谓的事情束缚。 我也不高尚,我相信世界上也不存在什么高尚。如果真的存在的话,应该早早被进化论淘汰才对。不过这也没什么好被谴责的,为了个体而活着的个体才能够达到最好的情况。道德什么的也就是简单的个人标准而已。 不要搞坏User Space。一个会让用户的桌面不能用的桌面不是好桌面。 顺便来谈论下Linux全局菜单的不可行性。我知道很多人想要,但它无法达到Mac的效果。 总前提,一致的用户体验是重要的。如果不同意这点可以不用继续看了。 全局菜单是窗口和菜单的分离,但是现有程序不支持。好,接下来怎么办?让所有程序都修改成支持全局菜单?这是短期乃至长期不可行的,因为开源环境不可能有人领导这个。如果KDE或者GNOME想做,早就做了,何必等到现在。于是只能靠打补丁。Ubuntu使用了特别的Qt和GTK补丁,使得所有程序都可以支持全局菜单(GTK + Qt + Firefox + OOO),但是没有程序的支持,无法获得很好的效果,因为他们本身就不是为全局菜单型程序设计的。 假设给这些程序加了filter,那么将有些程序是全局菜单,有些程序还不是。便失去了一致的用户体验。 这点说明应该足够了。 另外我之前也讨论过全局菜单为何没有必要。窗口化程序距离太远,最大化程序没有必要。 以下是些ACG的感想。 Steins Gate 真的不错的说。日语苦手也就是看看中文影像版就满足了。其实由于最近才看了小圆,所以剧情上来说稍稍没那么惊喜。不过音乐超赞的,中后期那种无力和忧伤的气氛,衬托得很美。这种独自与世界为敌的孤寂感总是超能感染我。OST已经收了。 凉宫春日的惊愕的话,说起来最近玩世界线和轮回真的蛮多的。当然作为这样的轻小说而言就是爽快就好了。我一向剧情记忆都很清楚的。 另外灼眼的夏娜离大结局也不远了,从16之后的就一直没看,不过我也相信没人能剧透我,毕竟我身边完全没有夏娜的观众。到时候一定重新收一套祖国版。

Posted in 日志 | Tagged | 8 Comments

OBS使用简要说明

OBS,Opensuse Build Service,是一个类似ppa的在线打包服务,和ppa相比有如下优点:1、不限于一个发行版,根据说明,支持Fedora,Opensuse,Debian,Ubuntu,CentOS,RHEL,Mandriva等等发行版,2、管理工具有SCM的特性,会记录版本,3、使用https协议进行交互传输,和ppa的ftp相比使用代理更加方便(我是悲剧的教育网),4、比ppa使用简单。其他的优点就是使用上的感受了,几乎不用排队,而且系统速度明显比ppa高出一截,当然这不好说…… 那么怎么使用呢?首先到https://build.opensuse.org/ 注册并登录一个帐号,这时候会分配给你一个默认的project,名称为home:username。这时候你就已经可以开始工作了,这里和ppa相比少了进行公钥验证的步骤,快得多。然后你可以通过web ui添加你自己的包。更方便的是你可以通过对别人的包建立一个fork来建立自己的包,更加方便快捷。 然后你需要的就是上传你的代码及spec文件(rpm包,老实讲obs的deb和ubuntu的文件似乎有点不同……没有认真研究),这时候系统就会好心的帮你做好所有事,而且如闪电一般。 这时候我想讲讲我走的一个弯路。我发现web ui上面似乎有一个很方便的功能,为一个包添加一些service,在每次启动编译之前都会主动执行一次,似乎支持从svn和git上面直接抓代码,我当时一看,这感情好啊,然后就抓代码。但是杯具的是,其他各种service的参数几乎都没有说明(比如解压),看得我一头雾水,跑去浏览别人的obs,发现要不就是失败,要不就是没有用这项功能。总之我的结论是service这个功能缺少文档……还不太完善,不推荐使用。 那么就需要使用opensuse提供的一个cui工具,osc。 首先进行checkout(类似svn) osc checkout home:<username> 你会得到一个目录home:<username>,目录下有你的包的对应目录。 然后执行: osc meta pkg -e home:<username> <packagename> 建立你的包,我没有用这个命令,而是在web ui创建的(等价),所以我不是很清楚这个命令具体情况…… 再执行 osc up 进行更新,怎么样,和svn 很像吧。 剩下你所需要做的就是 osc add <filename> osc commit 添加你的文件并提交。 然后obs就会happy的自动帮你编译好啰。 慢着,其实这时候你还忘了一件事,就是指定你要编译哪些发行版的包,你需要在你的project首页,有一个repositories的链接,这里面就是指定编译哪些发行版的包的地方了,所以你遇到的另外一个问题就是,如何用一个spec编译多个发行版的包。其实也很简单,不同发行版会指定一些不同的变量从而在spec文件当中判断的,比如我就用了: %if 0%{?suse_version} BuildRequires:  dbus-1-devel … Continue reading

Posted in Linux | Tagged , , | 2 Comments