Debian + MATE

再谈debian的发布策略

软件包首先会进入unstable(开发代号sid),这是唯一真正的每天滚动更新,相当于软件的trunk。风险是随时会挂掉,很久之前我就栽过一次,但据官方说bug修复也很快,一般几天就能恢复。

日常情况下在unstable中十天左右的软件包会合并到testing。testing要比unstable稳定,但万一挂掉可能要数十天甚至一个月才能修复,因为修复也要等十天才会进到testing。

testing日常情况下也是每天滚动更新与unstable同步,然后到了冻结。冻结时testing不再与unstable同步,仅允许小的更新和bug fix。注意冻结的是testing本身,而不是所指的版本代号,不存在只冻结开发代号而将testing分支到新版本的情况。

最后testing改名为stable,然后分支出新的testing解除冻结,再慢慢将unstable里的软件同步过来。总结一下就是testing会被冻结个半年,解冻的时候apt upgrade相当于大升级。

好多地方都没有说清testing冻结的真正过程,官方这里写的很详细。https://www.debian.org/doc/manuals/debian-faq/ch-choosing.en.html

发行版与桌面选择

如果是需要一个平时使用的系统,推荐Ubuntu,更推荐Mint。但是笔者是搞开发的,前段时期用的Mint Debian(LMDE)其实很不错。但是笔者又是重度精简强迫症患者,嫌LMDE中不需要的软件太多,所以又滚回了debian。中途尝试了一下Arch,然后突然觉得,都是基本系统那么一两百个包的话还在乎毛线的发行版区别,果断滚回熟悉的apt与init.d,毕竟openwrt也是类debian的。

现在觉得适用于编译和开发还是基本系统+桌面环境的组合比较好,考虑到经常是在虚拟机里跑,性能和易用性上还是gnome2最好,也就是现在的MATE。由于是mint项目组负责维护,美化上有了很大的进步。

testing比unstable要相对稳定,比如不会出现依赖更新了一半(例,某底层软件包升级了大版本,但上层依赖还没有修改到新的上,upgrade后就完蛋了),但是testing作为需要被发布的版本,在发布周期末尾及会强迫症发作,比如ffmpeg的当前作者因为官方就是不给合并到即将明年发布的testing里而在bugs邮件列表里和官方吵了几个月。现在系统又给弄成了sid,不过比起上次加了apt-listbugs护身,看看哪天会更新后再次挂掉。

基本系统安装

如果是安装testing或unstable一般使用daily镜像启动以确保最新。有两种镜像,一个是netinst,280M左右,包含了安装程序和基本系统,可脱机安装;另外是mini,30M,只包含内核启动,安装程序组件和基本系统都在线下载。netinst只打包testing,如果要装sid需要安装后改sources.list到sid然后dist-upgrade;mini可以在安装时选择stable、testing和unstable。

如果使用mini镜像,则必须确保是daily镜像,而不能使用beta发布版,正确的下载地址是http://d-i.debian.org/daily-images/amd64/daily/netboot/mini.iso。因为安装程序需要在线下载必要的驱动,不是最新版的话会出现内核不兼容而无法加载硬盘驱动。

要想得到最基本的系统,需要在启动项里选expert install,安装时手动跳过“安装软件”这一步,否则会启动tasksel并自动安装task-laptop里的软件。

安装时不要启用root帐号,否则不会安装sudo。locales安装时建议只选择英语,因为基本系统安装后要在纯控制台下安装桌面等软件。

配置与安装软件

开启root帐号:
sudo passwd && su

MATE桌面环境:
apt-get install xorg lightdm mate

桌面中文与字体美化:
dpkg-reconfigure locales添加中文区域并设为默认。
mate桌面环境会自动安装dejavu和droid字体,中文支持很不错,不要像以前那样装什么xfonts*,文泉驿也不用装,装了反而会抽。
进入外观设置,将应用程序字体改为9号,另外依个人喜好调整一下truetype渲染。
开终端的时候顺便把终端配置改成黑底灰字,matrix爱好者可用黑底绿字(其实只适合拍电影不适合日常使用),debian常年来默认的白底是要瞎眼的节奏。

VirtualBox Guest Additions:
目前版本仓库里可以直接apt-get install virtualbox-guest-x11。
也可手动安装:
apt-get install build-essential linux-headers-amd64
mount /dev/cdrom /mnt
/mnt/VBoxLinuxAdditions.run
umount /mnt
桌面自动挂载的似乎有执行权限的问题,所以这里是手动挂载光驱。

一些软件:
network-manager-gnome:gnome网络配置,真机要用这个连无线
mozo:mate的主菜单编辑器
apt-listbugs:sid升级护身符
fcitx fcitx-googlepinyin:输入法。一些依赖会自动安装
bash-completion:bash自动完成,用于apt-get软件包tab键补完
gvfs-backends:gnome文件浏览中smb等协议的支持
iceweasel iceweasel-l10n-zh-cn:“冰熊”浏览器,不吐槽了
chromium chromium-l10n:chrome浏览器
vlc:很NB但是很丑的播放器

i386支持:
需要运行x86程序的话(这个概率其实非常小),最新debian采用多架构的方案。
dpkg –add-architecture i386
apt-get update
apt-get install libc6:i386。

 

 

使用LMDE MATE作为工作站长期系统

死理性派通常并发很严重的选择障碍症,而且我这样的可以称得上病危的程度。因为理性无法控制选择矩阵中各个参数的量化,使得绝对理性无法存在。

Linux发行版上,最早接触的是Ubuntu,后来建站用到了Debian,所以就对DEB系产生了路径依赖而对RPM系无感。然而Ubuntu的问题是从11年换成了Unity这个坑爹的桌面,以及添加了各种乱七八糟的商业软件,最终让我转投简洁的Debian,花各种功夫从最基础的系统一点点添加软件包,再一点点做美化,结果最后还是在某次更新后华丽丽地坏掉了——Debian稳定版真的不适合当桌面,不稳定版又真的是不稳定。

后来又陆续实验了openSUSE以及国产的Deepin,还有Linux Mint 17 Cinnamon,都不是完全符合我这个完美主义挑剔的口味。比如openSUSE太过严谨,许多non-free的软件都在packman里;Deepin就不多说了,见上篇文章的吐槽;Mint 17其实用起来很好了,只是Cinnamon在虚拟机里稍稍表现有点差,桌面背景以及窗口边框的阴影在VirtualBox的无缝模式中有bug。

我的一贯艺术品味是简洁+完美,一个东西要尽可能做得规模精简,但是不会因为大小的精简而丧失质量。难道真的找不到一个像Debian那样的简约、又能像Ubuntu那样(相对)稳定易用的系统吗?Mint其实非常接近这个答案,尤其是Mint MATE。想到LMDE宣称的是滚动更新,不用忍受半年后就要重装系统之苦(新消息据说Mint 17之后只以Ubuntu LTS作为基础,也就是可能两年后才会换系统),故决定尝试Linux Mint Debian Edition MATE。

Live DVD安装过程中稍有一些痛苦,主要是一些Known issues。在VirtualBox中遇到有Known issues页面中提到的GTK主题无法正常加载的问题,而且这个问题会导致Caja死循环,又因为LMDE默认使用486内核,只能用单核,所以在虚拟机中基本上是卡死,安装也要比Ubuntu系慢上一倍左右。

安装之后就好得多,MATE桌面的窗口可以和VirtualBox无缝模式完美兼容,在Windows宿主下操作Linux中的命令行十分方便。并且LMDE不像Mint那样有个语言包管理,只会安装一种语言,而Mint会把各种区域的英语和汉语都给装上几十个,并且系统语言与日期、货币语言经常会出现混乱。单语言下中文支持很好。之后需要做以下一些事情:

1、更换源。请注意与Mint不同,Mint的基础源就是Ubuntu的官方源,但LMDE的基础源并不是官方的Debian Testing,而是由Mint自己派生出来维护的一个仓库,这个仓库滚动得要比Debian源要慢,会更稳定,所以不建议把LMDE的Debian源换成国内的Debian Testing,否则在Debian发布新版本、Testing解除冻结时可能要杯具。死过一次的人表示再也不相信Debian的滚动更新了。

LMDE的Debian源目前在国内没有镜像,经过测试,我这里访问最快的是日本北陆尖端大的镜像(http://ftp.jaist.ac.jp/pub/Linux/linuxmint/debian/latest/)。Mint源可以选用中科大的镜像(http://mirrors.ustc.edu.cn/linuxmint/packages)。

2、系统滚到最新:
apt-get update
apt-get upgrade

3、换成686内核。表示单核都是上个世纪的事情了:
apt-get install linux-image-686-pae linux-headers-686-pae

4、安装Fcitx输入法:
apt-get install fcitx fcitx-googlepinyin fcitx-ui-classical fcitx-frontend-gtk3 fcitx-config-gtk2
其中有些包分gtk、gtk2、gtk3,按个人对界面的喜好选择吧。

如果需要,还可以安装Mint的输入法设置工具im-config,同时依赖zenity。

5、没有了!真的没有了!内置的LibreOffice、VLC Player等软件都工作得非常好,一贯难看的Debian桌面也由Mint做好了美化。比起手动配置Debian长达数页的流程文,不得不说Mint确实做的很好,真正做到了开箱可用,不愧这几年一直保持全球排名第一的位置。

笔者建议Linux初学者可以尝试下Mint或者LMDE。喜欢好看的可以选Cinnamon桌面,有透明效果、可以安装第三方的主题;喜欢简约的选用MATE桌面,提供Gnome2的体验,使用上也非常接近Windows。

最后上VirtualBox无缝模式的图。请听题:图中笔者写这篇文章使用的Chrome是运行在Linux中还是Windows中?

LMDE_VirtualBox_20140711010348

参考文章:成熟之美:LMDE 201403 MATE上手实测

Deepin测评

注,本文标题采用注音读法,请跟笔者一起念:Deep(shen1)in(du4)测(tu3)评(cao2)。

这两周因为换系统折腾安装了各种发行版,包括最新的ubuntu、opensuse、mint等。Deepin也有关注,安装了13.1与14两个版本。其中14是7月6号刚发行的。作为最近Linux发行版全球排名上升最大的国产系统,为了响应我朝封杀微软windows的精神(大雾),自然应该支持一下。当然,不得不承认官方有刷排名的嫌疑——官网醒目位置以“点击查看Deepin的全球排名”名义链接到distrowatch.com上LinuxDeepin的页面,而distrowatch的排名是以平均周点击次数为依据的说。

笔者使用VirtualBox安装系统。为什么要用虚拟机呢。一是我不想去刻盘,也没有多余的U盘做全盘刷写,而通过带参数的vmlinuz加载iso文件作为根分区不是在各种发行版上都有效的而是要initrd支持才行。笔者的虚拟机操作的是真实硬盘上的分区,所以安装之后是可以在真机上启动的。

二是我认为虚拟机也应当是一种合理的“硬件支持”,并且是很大规模的用户群。Deepin依旧不能算是一个成熟的系统,虽然发行页面上写“请勿在虚拟机中测评,只有真实机器才能体验Deepin的华丽效果”,但一个系统如果是装在真机上那就不是为了测评,而是铁定要拿来用的,所以如果一个系统还不成熟就去追求华丽什么的,实在是有点本末倒置。当然国内社区力量确实是不是一点半点的弱,Deepin的issue列表和国外的比起来真的是感觉“整条街的智商都被中国用户拉低了”。

1、2014 RC版的LiveDVD在虚拟机中无法正常启动。表现为无法进入桌面,而是异常出现DM登陆界面,而这个页面本来应当是空密码自动登陆的。空密码当然是没法输入并进入系统的。2014正式版修复了这个问题。

2、2013版我测试了深度影音,发现一个问题就是软件自动设置画面尺寸时实际设置的是软件窗口的尺寸,造成视频永远比设置的尺寸小那么一大圈。2014版的DMovie就高端的多,高防现在的WMP,以画面尺寸作为窗口尺寸,而控制面板在需要的时候半透明显示在画面上方。不过话说这个不能正常加载MKV的内置字幕么?我用EVA 2.22测试确实是没有把字幕折腾出来。

3、深度终端没有滚动条。2013和2014都没有,只能用Alt+大于小于号翻页。我不明白为什么要设计成这样。终端配色是黑底绿字,学Matrix的,某种喜好层面上看上去还不错。

4、2013同时搭载了firefox和chrome浏览器,以及libreoffice与wpsoffice办公软件,2014官方说是只搭载chrome与wpsoffice,但是不知为什么我在LiveDVD里看到的是libreoffice,而装好的系统里却是wpsoffice?为了赶在日程发布正式版而遗漏了LiveDVD的审查吗?

5、没有原生搭载VBoxAddition内核模块,导致LiveDVD和安装后首次启动在速度上非常痛苦。最近的测试表明opensuse和mint都有内置virtualbox支持(某种意义上算是vbox的“显卡驱动”)。截图工具和视频在vbox里不能正常工作,嘛这个应该算是vbox自己的问题。另外,谁能告诉我2014在我的intel 4000m集显真机上为毛经常屏闪?感觉好像是和gnome shell输入法界面渲染有关系,这个驱动没弄好可实在是不应该啊。

6、2014的dock栏可以看出官方是想抄苹果,但不得不说dock栏的本质是gnome3任务栏,所以抄起来肯定会有不兼容的地方,比如任务栏中托盘图标也会占用一个大的dock,而且有些托盘提示是删不掉的,比如输入法的托盘、分区挂载托盘。这违背了dock的本质是应用的概念,希望以后能特别把那些托盘的部分变回托盘的样子。2013的任务栏其实就比较中肯。

7、软件商店不用输提权密码心里总是不舒服。好吧,我承认我是UAC习惯,可能deepin是在满足xp小白们的愿望。笔者个人倒是希望软件中心能够在不显眼的地方稍微提示一下软件包名,这样出了问题方便在apt里修复。

8、被寄予厚望的Wine QQ表现不佳,基于某兼容内核项目的那款,能倒是能用,但那款的原版做得多好啊,这里被改得各种不舒服,拜托在官方仓库里添加软件时能不能稍微考虑一下质量?这可是正式发行版,不是unstable。

9、控制中心是个抄win8的东东。但是正如官方list上也有人吐槽,不应该把所有设置内容都扔到屏幕右边那个面板上,有些设置还是应该有“控制面板”的存在的。适合扔到屏幕右边用以快捷访问的其实只有关机、网络连接、时钟、声音、输入法等这些本来是系统托盘的内容。

10、最后说一个优点吧。输入法集成得很好,其他发行版安装搜狗拼音还是有点技术难度的(主要是目前发现fcitx没有良好集成为一个大的包,core、界面、具体输入法都分散在各个小包里,不注意就漏装)。

最后上图,首先是刚刚装的2014 final:

DeepinScreenshot20140710004328

好吧我承认是我为了填上周开的那么大的一个坑才装2014评测的。然后是上周发的2013的图:

DeepinScreenshot20140702053137

测(tu3)评(cao2)完毕。不用担心,我会尽快地把这个系统换回ubuntu或者mint一类的。最后呼吁官方不要再刷排名了,这周已经冲到前10了啊,这么一个还任重道远的系统冲到前10被老外们拿去试用简直是要被围观的节奏啊。

 

安装openSUSE记录

opensuse是个好系统。先上图。

抓图1

其实是去年调教的debian在某次apt-get upgrade后gnome shell坏掉了,所以说unstable果然名副其实。后来一直用的ubuntu,然后今年实在忍受不了虚拟机ubuntu的unity桌面的速度了,特效还TM不能关,偶然尝试装了kubuntu-desktop,发现kde4还是蛮有意思的,界面和gnome3一样好看,而且耦合性较好,不像gnome那么零碎到各种打补丁。

kde的最好的发行版是opensuse,原因是都是德国人弄的,甚至是相同一群开发者,就装了试试,感觉还不错。个人感觉优点如下:

1、yast不简单是个包管理系统,而是译作“控制中心”,相当于windows的控制面板的作用,即suse拥有一个系统的图形化接口来对操作系统进行任何的配置,而不像其他发行版那样是通过一些gnome的软件拼凑起来。另外suse的安装向导的背后就是yast。
2、软件仓库齐全,且很巧妙地通过分离一个packman仓库出来而规避了一切版权问题。
3、和kde的同步率很高(gnome版我没试用),安装后不需要做任何的trick就非常好看,配色、字体什么的都很好。
4、自带驱动多,包括virtualbox的驱动,就是不用再装vboxlinuxadditions了。

总结起来,openSUSE是和Ubuntu、Fedora并列的,适合桌面用户的傻瓜系统,并且其独有的yast使其比后两者更胜一筹。

安装需要注意一点,就是使用LiveCD安装完后是没有得到完整的系统的,首次运行yast时会自动从网上下载几百M的包装上。另外LiveCD装好后是英语的,需要自己装各种中文翻译包,弄不好汉化的就不完整。所以建议一开始就使用DVD或网络安装。笔者使用的是网络安装。

下载openSUSE-13.1-NET-i586.iso加载到虚拟机里,在grub引导界面需要注意下面的提示,需要在这个界面按F2设置语言,按F4设置安装源。安装源设置的机会只有这里,否则装的时候会从官网的mirror拖,速度就呵呵呵了。笔者使用的是阿里云的源:http://mirrors.aliyun.com/opensuse/distribution/13.1/repo/oss/。

后续图形化界面的安装向导基本不需改动,有其它linux发行版安装、分区经验的话没有任何问题。桌面环境选了kde。grub安装位置笔者选择了根分区而不是mbr,因为这个虽然是虚拟机,但实际上映射的是真机上的一个分区,而mbr是virtualbox的一个虚拟的文件,并且以前的经验表示这个虚拟的mbr无法正确引导。

安装完成进系统后软件仓库并不会自动修改为国内地址,需要手动在yast里修改一次。全程是有图形界面的。另外还要添加packman的仓库,阿里云的地址是http://mirrors.aliyun.com/packman/13.1/。

然后就可以安装自己喜欢的一些软件了,笔者一般是先装个smplayer测试视频,不过virtualbox的兼容性似乎不太好,渲染是会黑屏的说。安装软件可以直接在yast图形界面里搜索,也可以使用zypper install命令。zypper相当于debian系的apt-get与redhat系的yum。

真机启动可以借助grub4dos,注意suse并不像ubuntu那样在根目录下符号链接vmlinuz与initrd,正确的引用是在/boot目录下:
root (hd1,2)  #使用usb启动grub4dos后本机硬盘为hd1,我的linux分区在分区表里是第三个slot
kernel /boot/vmlinuz
initrd /boot/initrd
boot

希望这次系统的部署能够坚持长久一段时间。

Wine运行QQIntl 1.5

如果在google搜索Wine QQIntl关键词,大概会看到有人发帖庆祝成功,还贴到了Wine官方的“可执行列表”里,然而做起来才发现,这个方案大概只适用于QQIntl 1.1版本,1.1版本大概是QQ2010的内核。对于更高的版本,我用官方的wine是没成功过,比方说,鼠标碰到密码框会崩溃。好吧,让我们用软键盘输入密码,但是为嘛一点登陆就要崩溃啊!虽然本人是个geek,但是对于linux还是小白水平,我可不想为了跑一个qq来现场学习怎么在linux下调试windows程序。。。

经过了一周用pidgin登陆qq的无法收发图片、无法收发自定义表情、无法直接进qzone的生不如死的日子,最终把一直在用的QQ Intl 1.5即“干净版QQ2012”跑了起来。

嘛,这其实不是我的功劳,感谢龙井内核组,他们针对Wine QQ时出现的issue特意编译了一份wine来避免了这些crash,并将wine和qq一起打包发布了传说中的wineqq2012。发布及下载地址请点击www.longene.org/forum/viewtopic.php?t=4700

如果你只是想运行一个中文版带广告版的qq2012就不用往下看了,直接下载安装他们提供的安装包即可,如果你像我一样想用比较干净的QQ Intl,或者想手动配置安装,则继续。我的需求是主要运行qq,但既然他们的wine已经配置好了,我还想拿来主义一下跑迅雷7什么的。即我需要把他们安装包里的wine程序和windows环境单独拿出来。

首先下载deb包,用压缩包工具打开查看里面的文件结构。可以看到作者将这个qq视为第三方软件,将安装到/opt/longene/qq2012中。/opt/longene/qq2012/wine是他们编译的wine。我将这个目录解压到/opt/wine中(没敢直接解压到根里,不然就不知道该怎么删了)。

然后将/opt/longene/qq2012/qq2012.tar.gz拿出来。这个文件打包了已经安装了qq2012的wine的windows环境,即wine prefix。在正常安装下,这里的/qq2012会被解压到~/.longene/qq2012,我按照wine的默认prefix将其直接解压到~/.wine。

接下来,把预装的qq2012删了去。~/.wine/drive_c/Program Files/Tencent/QQ。也可以继续查看这个环境里的东西,觉得什么不需要都可以删。和Tencent有关的只有一个不能删,即C:\Program Files\Common Files\Tencent\TXSSO,这个东西似乎是qq2009之后惟一不绿色的东西。然后,可以把windows分区的qqintl拷过来,也可以直接运行。我是直接在windows分区里运行的。命令为:

env LANG=zh_CN.utf8 /opt/wine/bin/wine /media/DATA/Program\ Files/Tencent/QQIntl/Bin/QQ.exe

至此应该可以基本完美运行。注意需要调整QQ的几个设置:1,关掉General / Main Panel / Always on Top。否则所有主面板打开的菜单都也会被盖住。2,关掉General / Main Panel / Open the animation effect,不然鼠标悬停在用户资料上会出现0.5秒的animation导致的花屏。
3,有需要的话将File and History中的目录设为以前的目录使聊天记录能够接上。

Debian jessie/sid 详细安装配置记录 2013年5月

前置博文:VirtualBox安装Debian记录 2010-12-27

此Po由坑爹的Drivel软件编写,该软件不支持所见即所得编辑,我表示手写HTML是个非常不习惯的事情。。。另外功能上也是比LiveWriter少了太多,比如说,谁能告诉我怎么上传图片 = =

在线补图:

一、前言:选择发行版的纠结

本人非linux工作者,装linux只是为了玩和折腾,目前技术水平仅限于装系统、简单配置web服务器,对linux内部机制几乎一无所知。

首先是自己的一些flavor,说成偏执也不为过。由于N年前买的用于建站与哗——的美国vps只有128m内存,所以查了查各种linux发行版的资源占用比较,就选择了安装debian 5.0系统。那个时候由于acm比赛在东华举行,已经稍微接触过ubuntu,但还并不知道debian与ubuntu的渊源。这个时候在得知ubuntu基于debian时会有种亲切感(设想你买了个debian牌手机,装了apt软件市场,然后你发现你的好朋友一直用的ubuntu牌手机也装的是apt软件市场)。

关于debian的ubuntu的选择。10年买台式机时装了debian 6.0,唯一的印象是太难用。只要是在google上搜索过debian和ubuntu区别的同学肯定会被带到这篇帖子里,这篇帖子之所以成为神贴排到google的首页大概是因为16楼的关系,这个16楼的比喻决定了几乎所有的国人linux用户对ubuntu与debian的印象,所以微博上流行的各发行版比喻图比较就将ubuntu和debian画成了非常kawai的岛国动漫形象。

debian难用正如神贴中比喻的“纯情少女”,装好后你会发现她除了当服务器什么都不能干。“诶中文字体是啥”,“诶输入法是啥”,“诶gnome怎么这么难看啊”,“诶ntfs分区怎么不能写”,“诶桌面里挂载分区怎么显示权限不够”。。。所以一般来说ubuntu是喜欢apt包管理方式的最好入门。但是!!!为嘛11年以后你要自己开发个四不像的unity桌面啊!我知道你会说gnome2太难看,但是你不要抛弃几十年来的gnome用户啊亲。。。另外一个原因就是ubuntu桌面版软件太多太杂,有许多不喜欢的。虽然可以卸载,终归觉得麻烦了点,尤其是要卸unity的时候。而debian就提供了“基础系统”的概念,稍微了解我的同学应该知道,我有很严重的精简事物强迫症,可能是和小时候用的硬盘是1G的有关。

事实上,在ubuntu的易用与debian的纯净之间的纠结最终导致我来回格式化一个分区翻来覆去地安装了10遍,最终才总算配置好了一个系统,或许用“调教debian”更合适,但是鉴于“调教”会被google搜索过滤掉,文章标题还是叫配置好了。

选择unstable(sid)是因为重新了解了下debian的版本哲学,了解到debian的stable大概要落后一两年,testing也会落后,就算是unstable其实也是落后的,因为还有更新的experimental。因为是桌面系统使用,所以并不担心稳定性问题,选择sid是可以的。服务器的话一定要用stable。

最后,请允许我感谢gnome3的发明。由于gnome2太丑,连linus同学都投奔kde了,连debian本来也打算在7.0中改用kde。后来gnome3变的很漂亮,基本能和windows和mac媲美,linus同学就宣布他返回gnome了,而刚刚发布的debian7.0也搭载了gnome3作为默认桌面。谢天谢地我不用再郁闷当年那傻乎乎的gnome2了。

二、基本系统安装

下载最新的jessie/sid的daily build网络安装版iso

http://cdimage.debian.org/cdimage/daily-builds/sid_d-i/arch-latest/i386/iso-cd/

以及相应的u盘安装loader

http://ftp.nl.debian.org/debian/dists/sid/main/installer-i386/current/images/hd-media/

将vmlinuz、initrd和iso文件放入U盘,并在menu.lst中添加启动项(U盘常备grub4dos)。这点不太多说,有关grub4dos在u盘上的安装以及一代grub的使用请自行google。

安装语言选英文,debian不像ubuntu那样有中文字体,选中文的话需要自行对装好之后对着方块欲哭无泪的情况负责(这些都是我自己血淋淋的教训)。但是区域就不用选美国了,选other后再选亚洲、中国。

然后好像是蹦出了一些realtek的驱动并没有编译进去的提示,不管他,反正哥也算用了这么多年linux了,从来没听谁说没驱动不能用的。

选择网络。由于这一次安装的时候校园网其卡无比,连个apt update都要10分钟,所以我把网线拔了,先装基本系统,装好以后再设置apt。

root密码留空以禁用root帐号。如果安装时就开启了root帐号,则不会安装sudo,也不会赋予正常用户提权的权限,以后会死人的。

分区不多说,自己小心,慢点操作,确认的时候多检查几次,别手滑把整个硬盘废了。

为了得到最纯净的系统,选择组件的时候我把那个什么基本系统工具也给取消了。查了下这个包里面是有ftp、w3m这样的工具,想用的时候再装也不迟。这样直接结束安装硬盘应该只用掉500m。重启登陆。

设置root密码:sudo passwd root,然后su到root。

设置网络。插上网线,编辑/etc/network/interfaces。注意如果用vi的话这时候的vi是thin-vi,还不是vim,不支持退格键。将网卡设置为dhcp,然后重启网络:/etc/init.d/networking restart,此时就可以ping通了。

auto eth0

iface eth0 inet dhcp

设置apt。编辑/etc/apt/sources.list,添加软件包源:deb http://ftp.cn.debian.org/debian/ sid main contrib non-free,保存,然后apt-get update。

依据官方说明,daily build的iso好像并不区分发行版本,所以要做一次apt-get dist-upgrade把系统和仓库统一。好像会升级内核,这样的话就先重启一下吧。

三、安装桌面环境

桌面当然选择我觉得比较好看的gnome3咯,当然gdm也要装,因为startx和gdm的启动是有很大区别的,startx启动的桌面是没法获取sudo权限的,任何的系统操作如挂载分区都无法进行。apt-get install xorg gdm3 gnome-shell。x-window-system改名叫xorg了的说。。。半个小时的下载安装时间,去喝杯茶吧。

安装字体。apt-get install xfonts-intl-chinese xfonts-wqy ttf-droid ttf-wqy-*,这几个字体一般应用足够,需要更多字体可以以后去windows目录下拷盗版的。

添加中文区域。dpkg-reconfigure locales,选上zh_CN.UTF-8,但还是以en_US为默认区域,主要是因为字符界面的控制台是没法显示中文的。

接下来就可以重启进桌面了,以后的工作在桌面下通过sudo apt-get进行。下面是一些基础的软件:

gnome-shell-extensions:默认的一些桌面扩展

gnome-tweak-tool:tweak工具,不解释

gnome-screensaver:好像不装这个就没法锁屏

network-manager-gnome:gnome管理网络的

network-manager-pptp-gnome:上面的pptp vpn支持

vim:不解释

ssh:不解释

iceweasel:我一直不能理解debian的那群黑客们因为个firefox商标的问题就和mozilla闹翻

flashplugin-nonfree:上面的flash插件

ntp:自动对时

gedit:不解释

file-roller:gnome默认的压缩包查看软件

alsa-utils

gnome-session-canberra

freedesktop-sound-theme:这几个是和声音有关的,开始我的系统能出声,但是gnome调节音量啊,输入提示啊都没有声音,google一下有说装这几个包的,结果也没好,但重启后就莫名其妙好了,写在这里待议。

fcitx:传说中最nb的中文输入法框架。开始我用的ibus,直到用上了pidgin的gnome-shell插件,发现ibus没有gnome-shell的很好的前端(gnome-shell是在gtk之上的一个层,如果是在gnome-shell里输入中文,那么使用gtk前端的输入法选字窗口就会被挡住)

fcitx-googlepinyin:google拼音

fcitx-module-cloudpinyin:传说中很nb的云模块

四、配置与美化

用debian首先会发现触摸板怎么没法单击双击的说,这个不是bug,在系统设置中鼠标与触摸板设置中,有个enable mouse clicks with touchpad。

打开gnome tweak tool,一项项看,如desktop中可以设置桌面上放不放图标,files设置文件浏览器的要不要显示地址栏,shell设置窗口标题栏有没有最大化最小化按钮、以及笔记本合上盖子的操作(这个设置明明应该放到电源管理里的,莫名其妙的说)。

主要是fonts栏,刚才虽然安装了字体,但是没有设为系统默认,并不好看,并且看上去很大。这里把default font和document font都设为droid sans 11,window title设为droid sans bold 11,等宽设为droid sans mono 11。hinting和antialiasing两个是设置clear type,我个人设为full和rgba看着比较舒服。

弄主题一般要安装两个渲染引擎,分别是gtk3-engines-unico和gtk2-engines-murrine,本着linux功能分散原则,gnome的主题分为shell主题(需启用shell主题扩展)、窗口主题、gtk主题和图标主题等,一般gtk主题和窗口主题因为美术上依赖,所以一起发布,而shell主题和图标主题是另外发布的。图标主题我喜欢ppa:tiheum/equinox里的faience主题包、faience-azur主题,gtk主题目前用的是ppa:satyajit-happy/themes的ambiance blue,shell主题用的是satyajit的dark shine。搜索以上ppa可以找到ubuntu的ppa官网,可以在包列表页面中点击详细信息,然后手动下载deb安装包通过dpkg -i安装。satya同学的主题介绍与预览可以在satya164.deviantart.com找到。因为这坑爹的drivel没法上传图片,今天就不发最终效果了。

关于拷贝windows的盗版字体,直接拷贝到~/.fonts目录中即可,无需打开字体文件点安装。

前面提到的gnome-shell输入法前端,打开https://extensions.gnome.org/,输入kimpanel即可找到,安装之。当然许多扩展都蛮好的,如天气啊什么的。

目前纸上就记录了这么多,以后有想到的再补充。

五、常用软件、pidgin

首先是看视频的,个人测试表明smplayer最好。听音乐的我不常用,暂时装的ubuntu上有的rhythmbox。文档的libreoffice装着玩,virtualbox装上(特殊情况下跑另外个分区的windows,但是不推荐)。wine和winetricks以后慢慢研究。下面说下im软件。empathy和gnome-shell结合比较好,但是它很奇怪,xmpp协议的微博和校内就是登不上去,目测是bug。所以还是用pidgin了。简单说下,微博的域是xmpp.weibo.com,用户名就是登录名,如果其中有@字符要写成\40。校内的域是talk.renren.com,用户名是校内id。其他设置如5222端口都是默认的。

麻花疼的im是个比较头疼的东西,他的理念就是打死不开放接口,打死用自己的协议,并且频繁修改,并且一发现用户使用奇怪的客户端立即封号不解释。这个倒也怪不得他,90年代web技术还不给力,写client软件的为了统治用户都是这德行,包括我自己。目前经过测试以pidgin-lwqq最好,基于webqq协议的思路很好(无需做逆向),作者很勤奋,一直没有停止开发,项目地址github.com/xiehuc/pidgin-lwqq。项目页面上还送了个gnome-shell-extension-pidgin的介绍,非常时髦。

折腾这么多天终于有了个属于自己的linux了,也算完成了几年来的一个历史遗留问题——以后再也不怕娶了debian当老婆结果调教不好了~~~因人类记忆力有限,整理以上详细安装文档,供后人参考。

Liang Xiaofei / 2013.5.18

ASP.NET MVC折腾系列之(3)——有关在Debian 5上部署LaTaleDB的各种蛋疼的事儿

作为本人第一个ASP.NET MVC的程序,LaTaleDB的1.0版本准备当作业交了去,亦准备上线部署。

然后就是各种蛋疼至死的事情。。

首先,前面文章提到的mono-apache-server是用的mono 1.9版本,即.net 2.0,不含3.5的东西,于是当我把文件上传到服务器上时,访问时直接得到了个500,就说是出错了,如果要看详细信息,在Web.config中设置customErrors的mode为Off。。

然后错误信息是缺少引用。。就把DLL的多余引用去掉,重新编译传了下,再把再缺的DLL从Windows目录里拷出来上传上去。。

然后提示无法启动编译器进程,aspx要在第一次访问时编译的,但是mono没有带vb的编译器。。

然后我火了,上mono官网去看为嘛debian没有2.6版的mono,回答是2.6在debian 6.0中有,第五代的如果想装请添加backport安装源。。

好不容易从backport安装源安装了完整的mono,结果这下更好,直接apache报500,什么网站都打不开,查apache的log,Mono-WebServer2里的异常,Google了一下,有人说到这个bug,说问题在mscorlib.dll中,有时候官方的trunk里有bug。。

然后就把自己电脑上Windows下mono的mscorlib上传了去,结果继续500,这下log写的是执行了native代码引发了保护断言,即即便是mono,在Windows下和linux下的mscorlib是不同的实现。。

这个时候我连把这次装的卸载掉都搞不定了。。回宿舍在自己机子上的debian 6.0上装。。这下是含有.net 3.5的,看上去框架没有什么严重的bug,就把整个/usr/lib/mono打包上传到服务器上了。

这次没提示缺少文件什么的了,不过还是没有编译器。。服务器上debian5也没有vb编译器的包。。再在自己电脑上安装microsoft.visualbasic.dll和vbnc,打开deb文件,看是哪几个文件,手动上传到服务器上。。

以为好了的,结果编译错误。。错误基本出在System.Web.Extension里,弄了半天也没弄好,突然无意中就感觉是不是后来拷进去的缺少的dll是不是和mono框架冲突,就把传上去的那些dll改名掉。

这下OK了,提示的是routing错误,和上次提到的一样,是System.Web.Routing的bug,把这个改回来。。

然后就说mysql找不到数据库LaTaleDB,而数据库已经导入了啊,估计是大小写吧,在web.config中把connectionString中数据库名改为小写。。

这下数据库找到了,但说找不到表,肯定依旧是大小写问题,我可不至于一个一个改吧,网上Google了一下,修改/etc/mysql/my.cnf,在[mysqld]下加入一行:lower_case_table_names=1,重启mysql,这样就不区分大小写了。。

然后终于运行成功,但是wait,物品列表的图片怎么都不透明了。。仔细看了下,是有的透明有的不透明,和源图有关,Google了下,说是mono的一个bug,把微弱的System.Drawing.dll拷上去发现这个dll里是有调用Windows API的,不能用,看来只能将就了。。

整个下来估计花了5个小时。。崩溃。。

上线的站点将在下篇文章中公布,另外1.0版本将以压缩包的形式开源,至于功能的添加,将视心情而定 = =

ASP.NET MVC折腾系列之(1)——Linux下跑ASP.NET

近日因作业需要在捣腾php的模板,无意中注意到了ASP.NET MVC框架,直接被秒杀——半年来我一直在致力于的界面代码数据分离原来用MVC模式可以做的很完美,比我设想中的还要完美。。觉得自己大大的被BS了,软件工程看来还是有点用的。

ASP.NET怎么说呢。一年前帮S姐调大作业,就是ASP.NET的,觉得WebForm对HTML的封装过头了,太傻瓜了,完全不像Web开发了,所以一直很抵制它,又因为发誓不碰Java,所以这一年来还是在php中泡着。php是最方便的web语言,但项目一大,就会出现如速度慢等各种问题,最起码我不喜欢它的类,类这个东西我最喜欢.net,其次是ansi c++。在看到asp.net mvc的结构图时,感觉太帅啦!!这次就学它了!可以同时交三门课的作业呢~~

一直搞不定VS9中文版装MVC项目模板的问题,现在迅雷正挂着英文版的ISO,准备通宵。那边开始忙活VPS上服务器的配置。

大家都知道.net是萎软的东西,不过大家也有必要知道.net是部分开源的,并且现在有个叫mono的跨平台开源框架。自然而然,linux也并非不能跑asp.net。下面简单记录下我在VPS上装asp.net的步骤,以便日后查阅。

1,apt-get install libapache2-mod-mono mono-apache-server2

2,修改/etc/apache2/mods-available/mod_mono.conf,将mono-server2-hosts.conf取消注释,将mono-server-hosts.conf注释起来(据说是跑.net 2.0)

3,因为手头没有现成的asp.net程序,就down一个,apt-get install asp.net2-examples

4,重启apache,在http://www.gmsj.org/samples里就能看到了~(这个设置在/etc/mono-server2/mono-server2-hosts.conf中设置

根据mono官网中的介绍,mono会在后台驻留一个.net exe服务器进程用于处理apache传去的asp.net请求。这是用mod-mono做的,其实也可以用fastcgi做(因为我php就是用fcgi做的),回头可以一试。