Arch Linux--定制自己的Linux操作系統
----乙-國際化&桌面安裝篇
相信大家看了《甲-安裝篇》之後,Arch Linux系統已經可以正常運行了吧?不過,Arch Linux默認是不支持任何locale的,因此系統默認是英文環境。咱是漢人吶,當然得講漢語、寫漢字啦。別慌,慢慢來。
一、設置locale
編輯/etc/locale.gen文件,你可以看到裡面已經預設了很多locale,只不過全部都註釋了,我們需要做的就是找到自己需要的locale,去掉前面的"#",保存退出。我把en_US和zh_CN、zh_TW、zh_HK、zh_SG打頭的全部取消註釋了。如果你只需要支持簡體中文則只需要把zh_CN gb2312去掉註釋即可,想支持繁體中文的就去掉zh_TW big5前面的註釋。當然你有可能對utf8支持很感興趣,你應該知道怎麼做了。
編輯好locale.gen文件後,運行locale-gen來生成選擇的locale。這個過程很慢,特別是生成中文locale那是相當的慢啊!你可以去喝杯茶或是去趟五谷輪回之所。
完成locale-gen之後,可以運行locale -a看看系統現在支持哪些locale了。選擇一個你所希望的設置成系統默認locale,我選擇的是zh_CN.utf8。編輯/etc/rc.conf文件,找到LOCALE那一行,改成:LOCALE = "zh_CN.utf8",找到TIMEZONE,改成TIMEZONE = "Asia/Shanghai",亞洲上海,這是系統所支持的時區之一。設置完畢後,reboot,再次用root登錄,locale看看,是不是已經變成了zh_CN.utf8。
二、安裝xorg
以前XFree86是Linux系統下最流行的X WINDOW環境,隨著時代的發展,很多Linux發行版都已經不用XFree86了,改用更為強勁的xorg做為X服務,我們也就與時俱進吧!
執行pacman -Sy xorg,系統將會從預設的Arch軟件源網站下載並安裝xorg,如果你是用ADSL上網的話,那麼趁這個機會去洗個澡吧。
(注:如果在安裝時基本軟件包選擇不全的話,還需要安裝xorg-server包,否則進不了桌面,會提示xorg服務沒有啟動)
三、安裝一個你感興趣的桌面系統
Linux的桌面系統可以說是多如牛毛,最著名的要屬GNOME和KDE了,但是越是著名體積就越龐大,啟動、運行的速度就越慢,既然我們安裝的是Arch Linux,那麼簡潔、快速、高效就是我們的目標,我看中了xfce4,它是一個輕量級的桌面系統,就用它吧。
執行pacman -Sy xfce4 xfce4-goodies 這又是一個漫長的過程,打個盹先。。。
四、安裝顯示驅動包
因為我是用vmware虛擬機安裝,所以就安裝xf86-video-vmware顯示驅動包。
pacman -Sy xf86-video-vmware
(注:現在用virtualbox了,不需要這麼做了,直接mount virtualbox的增強功能ISO文件,mount後運行VBoxLinuxAdditions.run文件就搞掂了)
(注:目前archlinux源中提供了virtualbox的相關軟件包了,因此可以這麼做:
安装VirtualBox的插件包(这里是VirtualBox独有的,只有在VirtualBox中安装ArchLinux时才会用到)
# pacman –Svirtualbox-archlinux-additions
裝入VirtualBox相关模块
# modprobe -a vboxguest vboxsf vboxvideo 或 # vi /etc/rc.conf
MODULES=(... vboxguest vboxsf vboxvideo)
启动VboxClient-all
# vi /usr/bin/VBoxClient-all
--clipboard 启动剪贴板共享
--display 启动显示管理
--checkhostversion 启动主机版本通知
--seamless 启动无缝窗口模式
注意,请将VboxClient-all命令加入到~/.xinitrc文件中,要加在桌面启动命令的前面,要以后台模式运行:VboxClient-all &
)
五、自動檢測硬件並配置xorg經過以上步驟之後,一個可用的桌面環境已經具備,再經過一些小的調整就可以正常工作了。
安裝硬件自動檢測軟件包hwd:
pacman -Sy hwd
檢測硬件並生成xorg主配置文件,執行hwd -xa 將生成/etc/X11/xorg.conf文件,編輯此文件,找到如下部分:
Section "Device"
Identifier "Card0"
Driver "vesa"
VendonName "All"
BoardName "All"
EndSection
將其中的vesa改成vmware即可,意思是讓X桌面環境使用vmware這個顯示驅動程序。
(注:現在archlinux的軟件源中都沒有hwd了,如果你想繼續使用它自動偵測硬件和生成xorg.conf文件,那麼你得加入一個yaourt軟件源,詳細過程後面會說)
六、將xfce4設定為默認啟動的桌面如果想將當前用戶的默認桌面系統設置成xfce4,則需要在當前用戶主目錄下創建兩個文件,.xinitrc和.xsession,有一個比較好的做法,先增加一個普通用戶系統會自動在該用戶的主目錄下生成這兩個文件,將之複製到當前用戶主目錄下即可。
useradd -md /home/shine shine
useradd為添加新用戶,d參數指定要添加的用戶的主目錄,m參數創建該目錄。我建的新用戶名叫shine,當然取什麼名你們自己決定。
修改.xinitrc文件,去掉exec startxfce4前面的#號。
好了,現在可以敲入startx進入xfce4的桌面環境了。
每次手敲startx進桌面很麻煩,我選了一款很小巧的登錄管理器--slim,下面來安裝配置它:1)安装登录管理器
pacman -S slim # 常用的登录管理器有gdm、kdm、slim。由于我现在用的是xfce,所以我安的slim,你自己用gdm/kdm替换就行。
2)配置
编辑/etc/inittab文件,修改以下两个地方:
id:3:initdefault: # 将其中的数字3改为5。如果你用的vi编辑器,将光标移到3上面直接r5再保存就行了。
X:5:respawn:/usr/sbin/* # 在倒数几行,你可以看到这些,*为具体的登录管理器,根据你自己使用的是什么登录管理器,将相应行前的#号去掉就行了,同时把没用登录管理器行前加上#号。
七、安裝字體
進了桌面,是不是感覺字體看著不舒服?不要緊,趕緊裝一個新字體吧!執行pacman -Sy ttf-fireflysung 這是一個開源字體,arch的軟件源裡頭就有,我圖省事,就用這個吧。
八、安裝輸入法
執行pacman -Sy scim scim-chewing scim-pinyin scim-tables 輸入法也是多如牛毛,我之所以選擇scim,僅僅是個人習慣問題,scim-chewing是繁體中文輸入法,scim-pinyin是拼音輸入法,scim-tables則是一個多語言輸入法支持包,裡面包括了我所習慣使用的五筆輸入法,還有簡繁轉換功能,打簡體出繁體正是我所需要的,我喜歡繁體。
輸入法安裝了,還需要配置一下才能使用。我是用root用戶登錄的,因此我在root的根目錄中找到.xinitrc文件並編輯它:vi ~.xinitrc,在exec startxfce4的上一行加入如下內容:
XMODIFIERS=@IM=scim
GTK_IM_MODULE=scim
QT_IM_MODULE=scim
export XMODIFIERS GTK_IM_MODULE QT_IM_MODULE
scim -d
第一行是指定要使用的輸入法,當然是scim了,第二行指定GTK程序使用scim輸入法,第三行指定QT程序使用scim輸入法,第四行使定義的系統環境變量生效,第五行以後台偵聽模式啟動scim。這樣在進入xfce4桌面之後就可以使用輸入法了。
(注:现在可能会出现进了桌面发现scim没能正确启动的问题,可以把以上配置注释掉,然后编辑全局的xinitrc文件,详见下面第九节)
注意!我目前使用ibus做为系统的输入法引擎了,具体安装配置过程如下:
ibus这个输入法平台好是好,然而在archlinux下装好ibus后,发现竟然没有五笔输入法,这怎么得了……于是试着在AUR上搜索,还好有人打包好放上去了。于是很顺利地用yaourt来下载编译安装了,在ibus官网上,五笔输入法包括在ibus-table-chinese软件包里。安装步骤:
第一步先安装ibus: pacman -Sy ibus
第二步安装ibus-table: pacman -S ibus-table
第三步安装yaourt(前面已经讲过如何安装配置yaourt,此处略过)
第四步安装五笔输入法: yaourt ibus-table-wubi
注意:在编译安装之前要确保gcc/make/automake/autoconf已经安装好了,否则会出错。
最新发现,在用yaourt安装ibus-table-wubi时发现它已经废弃了,我们可以使用yaourt ibus-table-wubi-git,直接从git版本库里拉下来编译,结果也过不了,好在yaourt中有一个新的中文输入法项目ibus-table-chinese,安装它时要注意先pacman -Sy pkg-config,然后就能正常安装了。装完之后,发现五笔词库有两个,一个是是海峰五笔,另一个是我在win下使用的极点五笔,不过只是码表文件而已。在google源码库里也有一个ibus的五笔输入法项目,而且码表文件也是极点五笔的,有兴趣可以去那弄一个。
在google code的ibus项目里,找到文件名类似于ibus-table-chinese-x.x.x-Source.tar.gz的文件,你可以试一下看看最新的版本是什么。这里我们假设你保存为/path/to/file/ibus-table-chinese-1.x.x-Source.tar.gz。解压后找到码表文件,具体可能根据版本不同目录不同,我的是tables/wubi-jidian/wubi-jidian86.txt。居然是我在win下最喜欢使用的极点五笔啊!
cd ibus-table-chinese-1.x.x-Source/table/wubi-jidian ,给码表文件编码,得到wubi-jidian86.db文件。ibus-table-createdb -s wubi-jidian86.txt,把这个编码后的文件复制/移动到ibus码表目录:cp wubi-jidian86.db /usr/share/ibus-table/tables
好了,注销桌面,重新登陆进来,打开ibus设置,看到了吗?带图标的极点!
九、讓所有的系統用戶都使用同一個桌面和輸入法前面六和八所說的桌面系統和輸入法的安裝只是針對系統當前用戶的,如果想讓系統中所有的用戶都默認使用xfce4桌面和scim輸入法,可以修改/etc/X11/xinit/xinitrc文件,該文件的內容如下:
#!/bin/sh
# $Xorg: xinitrc.cpp,v 1.3 2000/08/17 19:54:30 cpqbld Exp $
userresources=$HOME/.Xresources
usermodmap=$HOME/.Xmodmap
sysresources=/etc/X11/xinit/.Xresources
sysmodmap=/etc/X11/xinit/.Xmodmap
#merge in defaults and keymaps
...
...
後面的內容就不列出來了,我們將設置和啟動scim輸入法以及啟動xfce4桌面的語句加到userresources這一行之前:
XMODIFIERS=@IM=scim
GTK_IM_MODULE=scim
QT_IM_MODULE=scim
export XMODIFIERS GTK_IM_MODULE QT_IM_MODULE
scim -d
exec startxfce4 &
保存退出,刪除當前用戶主目錄下的.xinitrc和.xsession兩個文件。reboot一次,然後再startx看看能不能正確的進入桌面?我startx之後就停在桌面初始化界面不動了,不知道是不是exec startxfce4 &後面加了一個&符號後台運行的緣故,反正我去掉這個&就可以了。
如果發現設置了scim的簡繁轉換過濾器之後,工具條上不出現簡繁轉換的按鈕,那麼請locale -a看一下,你的系統中安裝了支持簡體中文和繁體中文的locale沒有?最近兩天我就被這個問題攪得頭疼,後來想到這個locale上面來了,經過一番試驗果然是這個問題。先前我裝了一個archlinux,將所有的中文locale都裝上了,scim的簡繁轉換按鈕自然很正常的出來了,後來我又裝了一個arch系統,這次我不想要那麼多的locale了,只裝了zh_CN.utf8和zh_TW.utf8,這問題就來了,因為utf8是一個大字符集,包括了所有的簡體漢字、繁體漢字以及拉丁字母和其他一些多字節的文字,所以即使你在scim裡設置了簡繁轉換過濾器也沒用,是不會出現那個按鈕的。我試著將zh_TW.utf8裝上,重啟X後,果然發現簡繁轉換按鈕出現了,只不過只有繁體到簡體轉換的功能鈕,接著我又將zh_CN.gbk裝上,再重啟X,發現scim的簡體到繁體的轉換功能鈕也出來了。
(注:现在我们可以不直接编辑xinitrc文件,因为现在有一个/etc/X11/xinit/xinitrc.d目录,这个目录下的所有文件都是自动被xinitrc文件调用的,因此只需要在这个目录下新建一个文件并写入输入法的配置信息即可,具体内容如下:
vi /etc/X11/xinit/xinitrc.d/xinput
#!/bin/bash
GTK_IM_MODULE=SCIM
QT_IM_MODULE="scim"
export GTK_IM_MODULE QT_IM_MODULE
/usr/bin/scim -d
chmod +x /etc/X11/xinit/xinitrc.d/xinput
)
十、安裝firefox瀏覽器
桌面和輸入法都裝好了,可以上網看文章發貼子了。等等,貌似還沒有瀏覽器吧!Linux系統可沒有IE的,咱就裝另外一個大名鼎鼎的瀏覽器吧,它就是firefox,咱們都稱它為火狐。
pacman -Sy firefox firefox-i18n arch-firefox-search
firefox是firefox主程序包,firefox-i18n是firefox的國際化包,另外一個應該是arch系統下firefox搜索引擎插件吧。
裝完之後,點擊屏幕下方面板上的那個地球,然後定位到firefox執行文件所在路徑,默認的應該是/opt/mozilla/bin/firefox,這樣每次要瀏覽網頁的時候就點一下這個地球就行了。
可能你已經發現firefox的界面字體很難看吧?去http://addons.mozine.cn/firefox/484/下個插件吧!這是個編輯userChrom的插件,裝上之後要重啟firefox,然後到菜單項“工具-->chromEdit plus-->chromEdit”就可以編輯userChrom.css和userContent.css兩個文件,在這兩個文件的最後加上以下內容:
* {
font-family: AR PL SungtiL GB !important;
font-size: 9pt !important;
}
保存退出,重啟firefox,再看看,firefox的界面已經都是漂亮的宋體字了,任意打開一個網頁,看看頁面上的文本框、下拉框和按鈕的文字是不是也都變成了漂亮的宋體?如果還沒有話,請打開firefox的字體設置選項,將所有的字體都設置成宋體,大小為9pt,保存重啟firefox,應該就可以了。
(注:僅安裝firefox-i18n包還不足以使firefox界面和菜單以中文顯示,還必須安裝firefox-i18n-zh-cn,想要顯示繁體的話就需要firefox-i18n-zh-tw,換成繁體界面的前提是系統locale要先換成zh-TW)
十一、安裝設置Linux下的QQ
1、 eva
eva是一個linux平台下的QQ客戶端,在我看來,它是目前linux系統下最好的QQ客戶端軟件了。但是我在Arch Linux的軟件源裡沒有找到它,但是我在其他地方找到了for Arch Linux的pkg.tar.gz包,地址:http://www.linuxfans.org/bbs/archiver/tid-145225.html
不過我還是上最著名的一個開源軟件站去下載了一個編譯包:
http://sourceforge.net/projects/evaq/
我下載的是最新的0.41版,文件名是 eva-0.4.1.tar.bz2,先解壓:
bunzip2 eva-0.4.1.tar.bz2
tar -xvf eva-0.4.1.tar
解壓完成後,會在當前目錄下看到一個eva目錄,到這個目錄下運行:
./configure --prefix=/usr/local/eva
--prefix參數是指定安裝目錄,想裝到哪裡隨便你。
如果這一步沒有出現什麼錯誤的話,就可以運行make;make install進行編譯、安裝了。我在./configure時出現了一個錯誤,如下:
checking for Qt... configure: error: Qt(>= Qt 3.0) (headers and libraries) not found. Please check your installation!
For more details about this problem, look at the end of config.log.
這個錯誤提示是告訴我eva配置程序沒有檢測到Qt 3.0版本以上的圖形開發庫。因此安裝一下Qt 3.0再重新./configure就可以了。
安裝Qt:
pacman -Sy qt
重新編譯/安裝eva:
./configure --prefix=/usr/local/eva
make
make install
如果還說找不到QT,可以手動指定一下位置,一般用pacman安裝的QT,其headers文件在/opt/qt/include下,libraries文件在/opt/qt/lib下,像如下所示方法編譯即可:
./configure --with-qt-includes=/opt/qt/include --with-qt-libs=/opt/qt/lib --prefix=/usr/local/eva
安裝完後,/usr/local/eva/bin/eva啟動eva,要是運氣不好,界面上的漢字全都是方框,令人吐血!不過經過一番琢磨,我認為是中文字體安裝的問題,此前我只裝了ttf-fireflysung,於是用pacman -Ss ttf又搜索了一下,又找到兩個字體:ttf-arphic-uming和ttf-arphic-ukai,將之裝上。再啟動eva,漢字正常顯示了,不過與先前的firefox一樣是醜陋的楷體,這次就不能依樣畫葫蘆了。eva的GUI界面是用QT圖形庫開發的,是一個在KDE桌面環境下運行的軟件,現在我要讓它在xfce4桌面下完美的運行,xfce4是基於gtk2圖形庫的,因此沒法更改QT應用程序的字體,手工改吧!找到~/.kde/share/config/kdeglobals文件,這是一個KDE全局配置文件,將以下內容添加到文件末尾:
[General]
XftHintStyle=hintmedium
XftSubPixel=
fixed=文鼎PL新宋,9,-1,5,50,0,0,0,0,0
font=文鼎PL新宋,9,-1,5,50,0,0,0,0,0
menuFont=文鼎PL新宋,9,-1,5,50,0,0,0,0,0
taskbarFont=文鼎PL新宋,9,5,50,0,0,0,0,0
toolBarFont=文鼎PL新宋,9,-1,5,50,0,0,0,0,0
[KFileDialog Settings]
Automatically select filename extension=true
Height 768=306
LocationCombo Completionmode=5
PathCombo Completionmode=5
Recent URLs=$HOME/webdoc/
Separate Directories=false
Show Bookmarks=false
Show Speedbar=true
Show hidden files=false
Sort by=Name
Sort case insensitively=true
Sort directories first=true
Sort reversed=false
View Style=Simple
Width 1024=752
關鍵是[General]小節,其他的部分不用管。“文鼎PL新宋”就是剛剛新裝上的字體,後面的數字“9”表示字體大小為9pt。
現在好了,啟動eva已經可以正常顯示9pt的漂亮宋體字了。不過我總是希望系統的其他用戶在使用eva時不用像我這樣很麻煩的重新配置自己的字體,因此我將這個文件中的內容剪切到了/opt/kde/share/config/kdeglobals文件中,而當前用戶主目錄中的這個文件內容恢復到初始狀態。
我的eva在正常使用了幾天之後,突然調不出scim輸入法了,原因是eva是一個Qt程序,與scim有衝突,不過,令我想不通的是本來用得好好的,突然就不行了,按說有衝突的話,一開始就應該不行的。不過,既然有問題就想辦法解決吧。在/etc/X11/xinit/xinitrc文件頭部加入如下語句:
export XMODIFIERS="@im=SCIM"
export XIM="scim"
export XINPUT="xim"
export XIM_PROGRAM="scim -d"
export GTK_IM_MODULE="xim"
export QT_IM_MODULE="xim"
scim -d
再試一下,居然就好了,這個方法是linxusir.org上的朋友告訴我的。據我分析,這樣的寫法應該可以解決絕大多數軟件與scim衝突的問題。在此基礎上我又試驗了一下,要使scim在eva中正常使用,只需要如下幾行就可以了:
export XMODIFIERS="@im=SCIM"
export GTK_IM_MODULE="scim"
export QT_IM_MODULE="scim"
scim -d
第一行的SCIM一定要大寫才行,不過我先前寫的小寫也是可以的,不知道其他朋友情況如何。最後一行的scim -d一定不能掉。有很多資料都說在使用gnome和xfce時,不用寫這一行,進了桌面後會自動啟動,我試了一下,果然如此,但是啟動eva後就調不出scim了,看來這一行是不能省的。2、gtkqq和pidgin + libqq-pidgin-svn
我在用yaourt安裝gtkqq時遇到了如下錯誤:
==> 正在测定最新 git 的修订...
-> 找到版本:20120426
==> 正在创建软件包:gtkqq-git 20120426-1 (2012年 04月 26日 星期四 14:18:48 CST)
==> 正在检查运行时依赖关系...
==> 正在检查编译时依赖关系
==> 获取源代码...
==> 解压缩源码...
==> 正在开始 build()...
==> Connecting to the GIT server....
正克隆到 'gtkqq'...
remote: Counting objects: 2841, done.
remote: Compressing objects: 100% (957/957), done.
remote: Total 2841 (delta 1994), reused 2707 (delta 1860)
Receiving objects: 100% (2841/2841), 8.48 MiB | 127 KiB/s, done.
Resolving deltas: 100% (1994/1994), done.
==> GIT checkout done
==> Starting configure...
+ aclocal
+ autoconf
configure.ac:20: error: possibly undefined macro: AC_PROG_LIBTOOL
If this token and others are legitimate, please use m4_pattern_allow.
See the Autoconf documentation.
configure.ac:37: error: possibly undefined macro: AC_CHECK_LIB
configure.ac:79: error: possibly undefined macro: AC_DEFINE
configure.ac:80: error: possibly undefined macro: AC_SUBST
configure.ac:219: error: possibly undefined macro: AC_MSG_RESULT
configure.ac:222: error: possibly undefined macro: AC_MSG_ERROR
==> 错误: 在 build() 中发生一个错误。
正在放弃...
==> ERROR: Makepkg was unable to build gtkqq-git.
==> Restart building gtkqq-git ? [y/N]
後來搞清楚了,需要先裝好autoconf、automake、libtool 和 cmake。但是裝好這些工具之後仍然報這個錯誤,一時之間不得其解,只先換pidgin + libqq-pidgin-svn先用著再說了,結果在編譯安裝libqq-pidgin-svn時,也報了個錯:PKG_PROG_PKG_CONFIG: command not found
看這個錯誤感覺是PKG_PROG_PKG_CONFIG這個變量指向的某個命令沒有找到,猜測應該是pkg-config,於是用pacman找了一下,果然有這麼個命令,但系統裡沒裝,趕緊裝了一下,再安裝就好。
回過頭來再裝gtkqq也OK了。
希望碰到同樣問題的朋友們不要再被這問題給困擾了。
十二、普通用戶不能關機/重啟的問題
Linux系統權限控制很嚴格,一般情況下普通用戶沒有權限關機和重啟,在console環境下也就罷了,但是在X桌面下也如此就顯得不夠友好了。在xfce4的下面一個面板上有一個關機按鈕,點擊之後有三個選項--退出、重啟、關機,但是後面兩個選項是灰的,沒法選。解決這個問題的辦法有好幾種,不過我是這麼辦的:
pacman -Sy sudo
先裝上sudo,這是一個允許普通用戶以root或是其他系統用戶身份執行指令的工具,安裝後以root身份執行visudo編輯sudo的配置文件,在root ALL=(ALL) SETENV: ALL這一行下面加上如下內容:
%users localhost=(root) NOPASSWD: /usr/lib/xfce4/xfsm-shutdown-helper
下面來解釋一下,這一行的意思是“允許users用戶組的所有用戶在主機名為localhost的主機上以root身份、不需要密碼的執行/usr/lib/xfce4/xfsm-shutdown-helper命令”。
(注:現在xfsm-shutdown-helper文件的路徑變了,在/usr/lib/xfce4/session目錄下了)我指定的用戶組是users,前面加上%是指明這是一個用戶組,不加%則表示users是一個用戶;localhost是我指定的主機名,如果你指定為ALL則表示所有主機;root是我指定以root身份執行,如果指定成ALL則表示以所有系統用戶的身份執行;NOPASSWD意思是執行的時候無需密碼,否則系統會提示用戶輸入密碼,注意這個密碼是當前用戶的而不是root的;最後一個部分則是要執行的指令,多個指令需要用逗號隔開,而且每個指令的路徑要寫全。
好了,設置完成後別忘了檢查一下你的系統中有沒有users用戶組,以及你的當前用戶是否在該組中。
more /etc/group看一下,如果沒有users就groupadd users添加一下;查看當前用戶在不在users組裡頭,請執行groups,系統會列出當前用戶所屬組的清單,如果沒看到users請執行gpasswd -a users ,這樣就大功造成了!普通用戶已經可以在面板中點擊關機按鈕正常的退出、重啟和關機了。
(注:現在不管你怎麼做,關機和重啟按鈕始終都是灰的,哪怕是root用戶登錄也是一樣!解決辦法看下面)
先查看系統中有沒有下面這個文件!!沒有就創建一下,有就修改一下。。
~/.config/xfce4/xfconf/xfce-perchannel-xml/xfce4-power-manager.xml
內容如下:
保存,啟動xfce4,進入桌面再看,啥按鈕都出來了,不僅僅是注銷、關機和重啟,掛起和休眠也出來了,xfce4電源管理器也可以用了,不過,試了下,在virtualbox虛擬機裡頭掛起不起作用,休眠就是關機,不知道在筆記本上安裝這兩個按鈕會不會起作用。。另外還發現在系統啟動的菜單上多了“reset”和“power off”選項,這個倒是不錯的。。sudo已經成了浮雲,當然了你要運行一些只有root用戶才能運行的軟件和命令時,還得請sudo來解決。
最近又發現sudo的方法又可以了,不過我的主機名設定為ArchLinux,因此sudo裡不能寫localhost,否則重啟和關機按鈕會提示輸入密碼,然而不管你輸入當前用戶的密碼還是root的密碼都會提示錯誤,因而重啟和關機失敗。所以主機名應該寫ArchLinux或者乾脆寫ALL,當然了這不太安全。
要注意的是不管是以前的方法還是現在的方法,掛起和休眠按鈕都出不來了,xfce4電源管理器也用不了嘍。
最新的xfce4 4.8版的解決方案:
请确保以下:
dbus必须写在/etc/rc.confDAEMONS中,确保~/.xinitrc使用了exec ck-launch-session startxfce4或者 兼容 ConsoleKit/PolicyKit 的登陆管理器。為了讓每個普通用戶都使用xfce4并且都能關機、重啟,我在/etc/X11/xinit/xinitrc.d目錄中建了一個腳本文件,內容如下:
#!/bin/bash
GTK_IM_MODULE=SCIM
QT_IM_MODULE="scim"
export GTK_IM_MODULE QT_IM_MODULE
/usr/bin/scim -d
exec ck-launch-session startxfce4
最後一句是帶ck-launch-session參數啟動xfce4桌面,帶上這個參數普通用戶就可以重啟、關機、休眠了。比起以前的種種解決方案簡單多了,最後不要忘將用戶加入power組:gpasswd -a username power,如果不加照樣無法重啟、關機。但是我發現即使按這個最新的解決方案也不是什麼時候都奏效的,關機、重啟時靈時不靈,不知道是為什麼。另外休眠也沒有作用,休眠後再啟動直接就是全新開機,並不會恢復到休眠前的狀態,要採用如下辦法解決:
vim /boot/grub/menu.lst
在kernel行的那个root= 项和ro之间加上你的Swap区位置就行了,以下是我的
kernel /boot/vmlinuz26 root=/dev/sda5 resume=/dev/sda8 ro
/dev/sda8是我的swap分區。
但是這麼做了好像仍然沒有效果。
十三、收工
至此,一個最基本、可用的Linux桌面環境就誕生了。至於其他日常辦公、學習所需要用到的電子郵件、文字處理、各類專業化的設計軟件等等就隨各人喜好隨便裝吧,在xfce4桌面下,基於QT的軟件就像設置eva字體一樣如法炮制,大同小異,應該說設置了/opt/kde/share/config/kdeglobals文件之後,所有基於QT的軟件中文字體都應該很漂亮了。
十四、添加yaourt源
前面說到現在hwd要在yaourt軟件中才能找到,現在就來添加這個源。編輯/etc/pacman.conf文件,在最後加入如下內容:
[archlinuxfr]
Include = /etc/pacman.d/mirrorlist
然後編輯/etc/pacman.d/mirrorlist文件,在最後加入如下內容:
然後就可以使用yaourt安裝hwd了,直接運行yaourt hwd就可以了,然後按照提示一步步做就行了,碰到提示編輯選N,提示安裝選Y就可了。
十五、安裝了virtualbox增強工具包之後鼠標錯位的問題
在安裝virtualbox增強工具包之後,進入桌面會發現鼠標錯位很嚴重,點東邊,西邊反應,點西邊東邊反應,完全沒法用。後來查看了一下/etc/X11/xorg.conf文件,發現virtualbox自動添加了顯卡的設置、顯示器的設置、鍵盤的設置等等,就是沒有添加鼠標的設置,那麼我們自己來加上吧,在xorg.conf文件的最後加下以下片段,保存退出,重啟X桌面即可:
Section "InputDevice"
Identifier "vboxmouse"
Driver "vboxmouse"
Option "CorePointer"# pacman -Syu
后出现上面错误以及类似下面的错误:
error: failed to commit transaction (conflicting files)
glibc: /usr/bin/tzselect exists in filesystem
glibc: /usr/bin/zdump exists in filesystem
glibc: /usr/bin/zic exists in filesystem 首先检查上面报错的文件是否被其他的包所使用:
# pacman -Qo full_file_path
如果出现:
xxx is owned by xxx
可以报 bug 了;如果没有,可以直接把他们给删除或者强制升级包。
I forced the update of glibc and then it went from there. I don't know how safe that was tho, but since I run this on a VM I'm very careless.
Pacman -S glibc --force
remember say "N" to upgrading pacman first when you force the update of glibc.
Option "Device" "/dev/input/mice"
EndSection
十六、其他問題
1、由於我在安裝時基本軟件包沒有選全,結果安裝好後發現ifconfig沒有,hostname也沒有。。。最後發現這兩個命令在net-tools包和coreutils包中,pacman -Sy net-tools coreutils裝上就好了。。(注意,目前hostname命令已经从net-tools包中移到inetutils包中了)
2、運行startx進不了桌面,查看/var/log/boot日誌文件,發現有如下錯誤信息:
** (gdm-binary:756): WARNING **: Couldn't connect to system bus: Failed to connect to socket /var/run/dbus/system_bus_socket: 没?\234\211?\202?个?\226\207件?\210\226?\233??\225
這個錯誤是因為dbus服務沒有啟動造成的,先用pacman -Ss dbus-core看一下dbus核心軟件包有沒有安裝,沒有就pacman -Sy dbus-core安裝一下。然後編輯/etc/rc.conf文件,把dbus服務加入到自動啟動中去,具體如下:
vi /etc/rc.conf
找到最後一行:DAEMONS=(sshd hwclock syslog-ng network netfs crond gdm alsa),加上dbus,DAEMONS=(sshd hwclock dbus syslog-ng network netfs crond gdm alsa),大功告成!
3、无线网络的问题:
4、pacman更新和安裝軟件包時的問題:
(1)# pacman -Syu后出现类似15章节中所提到过的错误:
error: failed to commit transaction (conflicting files)
glibc: /usr/bin/tzselect exists in filesystem
glibc: /usr/bin/zdump exists in filesystem
glibc: /usr/bin/zic exists in filesystem
请按照15章节中的办法进行处理即可。
(2)下载的包不完整导致pacman 更新出错:failed to commit transaction (invalid or corrupted package)
[root@huangye etc]# pacman -Su:: Starting full system upgrade...
resolving dependencies...
warning: dependency cycle detected:
warning: util-linux will be installed before its udev dependency
looking for inter-conflicts...
Targets (22): bluez-4.99-2 chromium-18.0.1025.151-1 dhcpcd-5.5.6-1 filesystem-2012.2-4 git-1.7.10-1 gnutls-3.0.18-1 kmod-7-2 libgpod-0.8.2-4 libmtp-1.1.2-2 libpng-1.5.10-1 libraw-0.14.6-1 linux-3.2.14-1 linux-headers-3.2.14-1 lm_sensors-3.3.2-2 mkinitcpio-0.8.6-2 pcmciautils-018-4 syslog-ng-3.3.4-5 system-config-printer-common-1.3.9-2 tzdata-2012c-1 udev-181-9 udisks-1.0.4-3 util-linux-2.21.1-2Total Installed Size: 248.05 MiB
Net Upgrade Size: -1.19 MiB
Proceed with installation? [Y/n] y
(22/22) checking package integrity [###################] 100%error: failed to commit transaction (invalid or corrupted package)
Errors occurred, no packages were upgraded.
[root@huangye etc]#
疑是下载的包不完整,于是:
[root@huangye pkg]# cd /var/cache/pacman/pkg[root@huangye pkg]# ls *.part*package-query-1.0.1-1-i686.pkg.tar.xz.part.st
util-linux-2.21.1-2-i686.pkg.tar.xz.part
util-linux-2.21.1-2-i686.pkg.tar.xz.part.st
yaourt-1.0.1-1-any.pkg.tar.xz.part.st
[root@huangye pkg]#[root@huangye pkg]# rm *.part[root@huangye pkg]# rm *.part.st
或者乾脆全刪除。
再Syu 一下,OK了。
发现一条用于查看所有已经安装包的命令:
comm -23 pkglist
5、修改系统时钟
mount -n -o remount,rw /
重启后到bios把时间改后进入系统把系统时间设成localtime,把系统时间调好:date -s "yyyy-MM-dd hh:mm:ss"
再同步到系统硬件时钟:hwclock --systohc
最后运行一下 fsck /dev/sdax (sda1、sda2... sdax)
6、启动出错:FILESYSTEM CHECK FAILED
现在发现一个很严重的问题,每次安装好archlinux后,没多久启动时就出错了,提示如下:
***************** FILESYSTEM CHECK FAILED ****************
* *
* Please repair manually and reboot. Note that the root *
* file system is currently mounted read-only. To remount *
* it read-write type: mount -n -o remount,rw / *
* When you exit the maintenance shell the system will *
* reboot automatically. *
* *
*******************************************************
根据以上提示操作毫无效果,怎么办?后来按shift + PgUp键一屏屏向上翻,仔细查看整个启动过程,发现有一系列如下错误提示:
mountpoint: command not found上网一搜索,发现是需要安装util-linux包,但系统中已经安装过这个包了,难道是因为这个包版本过低了的缘故?archlinux号称是升级最快的发行版,也许会有部分软件包升级更新后相应的关联包却未升级的问题吧,重新用pacman再装一次吧,但是此时在系统维护窗口下,运行pacman报错,此时需要按照/etc/fstab文件中的内容将每个分区再mount一下,如果有提示已经mount的分区就用mount -o remount,rw /dev/sdax /xxx这样的命令重新mount一下。最后再次运行pacman -Sy util-linux,此时会有提示此包升级安装完成。看样子情况貌似与我所猜测的一样啊。
最后再按照16章第5小节所说的修改、同步一下系统时间,完成后reboot,此时系统终于能正常启动了!为什么要修改、同步一下系统时间呢?因为我查到有很多人说这个问题是由系统时钟不一致所引起的,不过看上去这是没有道理的,因为我没做这一步系统也恢复正常了。
7、xfce4-mixer不能運行的問題,以及無聲音、視頻播放不了等問題
我裝的xfce4桌面,系統菜單中有一個調節聲音的小工具叫做混音器(xfce4-mixer),但是一運行它就彈個框框出來提示“Gstreamer沒有安裝,或是當前用戶沒有訪問聲音設備的權限”,這個問題經過一番研究,這麼解決:
(1)安裝alsa-firmware:
pacman -Sy alsa-firmware
這個很重要,不裝這個不僅xfce4-mixer運行不了,而且系統無聲音(比如在mp3.baidu.com聽音樂,一點開始馬上就停止了)、視頻播放不了(比如在網易視頻可以看到進度條在走,但畫面就是不動)。
(2)安裝alsa-plugins和alsa-lib
這兩個軟件包也必須安裝,否則音視頻也沒法播放。
(3)如果你用普通用戶登錄系統,那你還得將這個用戶加入到audio和video組中才能正常使用音頻和視頻設備:
gpasswd -a current-user audio
gpasswd -a current-user video
不過,我在另外一台archlinux機器上只加入了audio組,沒有加入video,視頻也一樣沒問題,暫時無法理解為啥。
8、xfce4下自動掛載移動硬盤的問題在thunar中使用自动挂载移动磁盘,已經安装了Not authorized to perform operation
看這字面意思是未被授權的執行操作。
但是我已經按照如下內容修改過相關授權了:
If the mount/unmount is with an internal drive then you can achieve this by editing the "/usr/share/polkit-1/actions/org.freedesktop.udisks.policy" file.
Find the line which reads ""
scroll down a few more lines and change the line "auth_admin_keep" to "yes"
This should stop the prompting for the root password every time you want to mount a partition. You will need to remember to change this again if you update the udisks package.
後來發現dbus不僅要在/etc/rc.conf文件中自動加載,而且還需要在X啟動文件中加載一下,具體如下:
exec dbus-launch startxfce4
即在啟動xfce4桌面的命令中加上“dbus-launch”參數,讓dbus在xfce4桌面中生效。再進桌面掛載移動硬盤就能正常打開了,但是打開速度相當的慢,據說是因為系統採用的locale是zh_CN.UTF-8的緣故,這是個大字符集,因此讀取移動設備分區時要花好長時間掃描,如何解決這個問題後面再講。
9、xfce4桌面全黑、桌面圖標全部消失的問題
我發現這個問題出現的機率還是挺高的,雖然不是啥大問題,但出現了問題終歸是不好的。估計出現這個問題是因為xfce4的桌面管理進程掛掉了,於是按照這個思路去找xfce4的相應管理工具,還真搜索到了,名叫xfdesktop,開一個終端窗口手動運行它:xfdesktop &
下次再啟動xfce4桌面時就恢復正常了。
10、啟動後如何開啟小鍵盤
安装numlockx
#pacman -S numlockx
用xtartx启动X的话在~/.initrc 加入
/usr/bin/numlockx on
/etc/rc.local加入以下代码 ,在终端就能用小键盘
for tty in /dev/tty[1-6]
do setleds -D +num < $tty
done
11、xfce4如何鎖屏的問題
关于锁屏的问题不是个啥大问题,但在xfce4中就是找不到锁屏按钮的所在。本来Gnome下可以在退出界面找到锁屏按钮,或者直接使用Ctrl+Alt+L的快捷键,但是xfce4下都没有用。但是xfce4屏幕锁定可以通过呼叫xflock4命令来实现,该命令包含在一个名为xfce4-utils的软件包里。xflock4命令呼叫两个程序。首先执行screensaver程序(包含于xscreensaver软件包),就是屏幕保护;然后执行xlock程序(包含于xlockmore和xlockmore-gl),就是锁屏和密码验证。
所以,要成功执行锁屏,必须确定安装以上软件包。也可以安装xlockmore-gl,但xlockmore和xlockmore-gl只能任选其一。
以上条件满足后,可以有两种方式执行锁屏:
1.执行命令:xflock4
2.快捷键:ctrl + alt + del
这个是xfce4默认快捷键,可以鼠标点击:applications->Settings->Settings Manager->按钮标签|键盘->快捷键 查看默认快捷键。