使用 FreeBSD 作为桌面
歡迎訪問我的個人 Blog。
如果從沒有了解過 FreeBSD,請看如下:
- FreeBSD 簡介:
- 使用 FreeBSD 使用手冊繁體中文版,繁體中文版較之簡體中文版更新。
- 對于 FreeBSD 使用所需的一切知識,都可以在 FreeBSD 使用手冊中找到;對于 FreeBSD 使用過程中遇到的一切問題,都可以在 FreeBSD Forums 找到解答,或者提出問題。
- FreeBSD的現(xiàn)狀和未來
- FreeBSD 知乎話題
- FreeBSD 吧
- FreeBSD v2ex 主題
文章目錄
- Install Desktop Enviroment
- Binary 套件
- Port 套件
- Linux? Binary 相容性
- 手動安裝其他程式庫
- 自訂核心
- 為何要編譯自訂的核心?
- 偵測系統(tǒng)硬體
- 設(shè)定檔
- Others
- Screen resolution on FreeBSD on VirtualBox
- Disable the Forward/Back buttons on my mouse
- Install chinese font
- 設(shè)單使用模式為不安全
- No space left on device
- VirtualBox? guest additions
- Fish
- Run command on startup on FreeBSD
FreeBSD 計劃的目標(biāo)在於提供可作任意用途的軟體而不附帶任何限制條文。 我們之中許多人對程式碼 (以及計畫本身) 都有非常大的投入, 因此,當(dāng)然不介意偶爾有一些資金上的補(bǔ)償,但我們並沒打算堅決地要求得到這類資助。 我們認(rèn)為我們的首要“使命”是為任何人提供程式碼, 不管他們打算用這些程式碼做什麼, 因為這樣程式碼將能夠被更廣泛地使用,從而發(fā)揮其價值。 我認(rèn)為這是自由軟體最基本的,同時也是我們所倡導(dǎo)的一個目標(biāo)。
我們程式碼樹中,有若干是以 GNU 通用公共授權(quán)條款 (GPL) 或者 GNU 較寬鬆通用公共授權(quán)條款 (LGPL) 發(fā)佈的那些程式碼帶有少許的附加限制,還好只是強(qiáng)制性的要求開放程式碼而不是別的。 由於使用 GPL 的軟體在商業(yè)用途上會增加若干複雜性,因此,如果可以選擇的話, 我們會比較喜歡使用限制相對更寬鬆的 BSD 版權(quán)來發(fā)佈軟體。
-Jordan Hubbard
Install Desktop Enviroment
GhostBSD 是最好的 FreeBSD 桌面發(fā)行版,注意使用 Official 版本,不能直接使用 FreeBSD 源升級,沒有中國源。
X 最初設(shè)計是以網(wǎng)路為中心,採用 “client-server” 架構(gòu)。在此架構(gòu)下 “X 伺服器” 在有鍵盤、螢?zāi)弧⒒蟮碾娔X上運作。該伺服器負(fù)責(zé)的工作包含管理顯示、處理來自鍵盤、滑鼠的輸入及來自其他設(shè)備)的輸入或輸出。
每個 X 應(yīng)用程式,如 XTerm、Firefox 都是 “客戶端”。
視窗管理程式規(guī)定螢?zāi)簧系囊暣霸撻L什麼樣、要如何移動滑鼠指標(biāo)、 要用什麼鍵來在視窗切換、每個視窗的標(biāo)題列長相,及是否該有關(guān)閉按鈕,等等。視窗管理程式負(fù)責(zé)滑鼠指標(biāo)的聚焦政策。 聚焦政策指的是如何決定使用中及接收鍵盤輸入的視窗。通常較為人熟悉的聚焦政策叫做 “click-to-focus”,這個模式中,滑鼠點選到的視窗便會處於作用中 (Active) 的狀態(tài)。
KDE 與 GNOME 會被稱作桌面環(huán)境是因為包含了完整常用桌面作業(yè)的應(yīng)用程式。
-
Install X Window System
$ sudo pkg install xorg
顯示卡、顯示器以及輸入裝置會自動偵測,無須任何手動設(shè)置。除非自動設(shè)置失敗,否則請勿建立 xorg.conf 或執(zhí)行 -configure 步驟。
-
加入要執(zhí)行 Xorg 的使用者到 video 或 wheel 群組,以便在可用時能開啟 3D 加速。
$ sudo pw groupmod video -m jru || pw groupmod wheel -m jru -
較舊版的 FreeBSD 使用的 sc(4) 並不知到 KMS 系統(tǒng)的存在,這會導(dǎo)致關(guān)閉 X 之後即始仍在運作但系統(tǒng) Console 卻呈現(xiàn)空白。較新版的 vt(4) Console 可避免這個問題。加入此行到 /boot/loader.conf 來開啟 vt(4)
kern.vty=vt
在 FreeBSD 較建議使用 /usr/local/etc/X11/ 來存放設(shè)定檔,每個項目都需要設(shè)定。多檔完整路徑通常為 /usr/local/etc/X11/xorg.conf.d/。單檔路徑為/usr/local/etc/X11/xorg.conf
-
Install Desktop Environment
$ sudo pkg install gnome3 $ sudo pkg install gnome3-lite $ sudo pkg install x11/kde5 $ sudo pkg install xfce $ sudo pkg install mate -
Install/Enable Display Manager
$ sudo pkg install slim # xfce,mate $ sudo pkg install x11/sddm # kde -
Setting
$ sudo vi /etc/fstab gnome, kde proc /proc procfs rw 0 0 $ sudo vi /etc/rc.conf moused_enalbe="YES" dbus_enable="YES" # gnome, kde, xfce hald_enable="YES" # gnome, kde, mate gdm_enalbe="YES" # gnome啟動 sddm_enable="YES" # kde啟動 slim_enable="YES" # xfce,mate gnome_enable="YES" # gnome服務(wù) -
slim Usage:failed to execute login command
$ sudo vi ~/.xinitrc exec mate-session # mate exec xfce4-session # xfce
Binary 套件
USTC Mirrors:注意使用 Latest 源,有很多流行軟件。
因編譯選項不同,有些 Port 會有多個版本可使用。
-
使用 USTC MIRROR
$ sudo vi /usr/local/etc/pkg/repos/FreeBSD.conf FreeBSD: {url: "pkg+http://mirrors.ustc.edu.cn/freebsd-pkg/${ABI}/latest", } $ sudo pkg update -f # 更新索引 -
要啟動 (Bootstrap) 系統(tǒng),請執(zhí)行
$ sudo /usr/sbin/pkg -
當(dāng)升級原使用舊版 pkg_* 工具的既有系統(tǒng)時,必須將資料庫轉(zhuǎn)換成新的格式
$ sudo pkg2ng -
Update the available remote repositories as listed in pkg.conf
$ sudo pkg update -
Search for a package
$ sudo pkg search perl -
在指定要安裝的套件時,最好使用 Port 來源來指定該應(yīng)用程式,Port 來源是指應(yīng)用程式在 Port 樹中的路徑
$ sudo pkg search -o perl -
Install a package: Installing must specify a unique origin or version otherwise it will try installing all matches
$ sudo pkg install perl-5.14 -
列出已經(jīng)安裝的 Port 中有那些已過時
$ sudo pkg version -l "<" -
Upgrade from remote repository
$ sudo pkg upgrade -
Delete an installed package
$ sudo pkg delete perl-5.14 -
Remove unneeded dependencies
$ sudo pkg autoremove -
List installed packages
$ sudo pkg info -
Display information about installed packages
$ sudo pkg info perl-5.14 -
Show the pkg-message of a package
$ sudo pkg info -D perl-5.14 -
要查詢已安在系統(tǒng)上的軟體是否有任何已知的漏洞
$ sudo pkg audit -F -
因為相依所安裝的套件稱作自動 (Automatic) 套件,而非自動套件即套件被安裝的原因不是因為其他套件所相依
$ sudo pkg prime-list # deprecated -
Clean the local cache of fetched remote packages
$ sudo pkg clean
Port 套件
優(yōu)點:
- 可更改編譯選項
- 部份軟體的授權(quán)條款中禁止以 Binary 格式發(fā)佈。 這種軟體必須以原始碼發(fā)佈並由終端使用者編譯。
- 原始碼可套用自訂的修補(bǔ)。
Port 中並不含實際的原始碼,在編譯 Port 解壓縮時會自動下載的原始碼到 /usr/ports/distfiles。
-
安裝 Port 套件集:下載壓縮後的 Port 套件集快照 (Snapshot) 到 /var/db/portsnap
$ sudo portsnap fetch -
第一次執(zhí)行 Portsnap 時,要先解壓縮快照到 /usr/ports
$ sudo portsnap extract -
執(zhí)行以下指令來更新 /usr/ports
$ sudo portsnap fetch $ sudo portsnap update -
要找到 Port 所在的分類
$ sudo whereis lsof -
使用 Port 套件集內(nèi)建的搜尋機(jī)制來找軟體
$ sudo cd /usr/ports $ sudo make search name=lsof $ sudo make quicksearch name=lsof # 不接受多資訊 -
若要進(jìn)行更有深度的搜尋
$ sudo make search key=string $ sudo make quicksearch key=string -
一次設(shè)定所有Port 編譯選項
$ sudo make config-recursive -
重新進(jìn)入 Port 的編譯選項清單
$ sudo make config # or $ sudo make showconfig # or $ sudo make rmconfig -
編譯並安裝 Port
$ sudo cd /usr/ports/sysutils/lsof $ sudo make install -
編譯在 /usr/ports Port 並安裝到 /usr/home/example/local
$ sudo make WRKDIRPREFIX=../ports PREFIX=../local install -
安裝過程中會建立工作用的子目錄用來儲存編譯時暫存的檔案。可移除此目錄來節(jié)省磁碟空間並漸少往後升級新版 Port 時造成問題
$ sudo make clean -
移除已安裝的 Port
$ sudo cd /usr/ports/sysutils/lsof $ sudo make deinstall
安裝後的注意事項:
- 大部份應(yīng)用程式安裝會在 /usr/local/etc 安裝至少一個預(yù)設(shè)的設(shè)定檔。
- 應(yīng)用程式提供的文件會安裝到 /usr/local/share/doc。
- 部份應(yīng)用程式會以服務(wù)的方式執(zhí)行,在啟動應(yīng)用程式前前需要加入設(shè)定到 /etc/rc.conf。這些應(yīng)用程式通常會安裝啟動 Script 到 /usr/local/etc/rc.d。
Linux? Binary 相容性
FreeBSD 提供 Linux? Binary 的相容性,允許使用者在 FreeBSD 系統(tǒng)上不需要修改就可以安裝和執(zhí)行大部份的 Linux? Binary。
最好不要直接安裝 Linux 的軟件,而使用 FreeBSD 源中的 Linux 軟件,一般以 linux-package 命名。
-
載入 Linux? 核心模組
$ sudo kldload linux -
對 64-位元的相容性
$ sudo kldload linux64 -
確認(rèn)模組已載入
$ sudo kldstat -
安裝基本的 Linux? 程式庫和 Binary
$ sudo pkg install emulators/linux_base-c7 -
Add the following line
$ sudo vi /etc/fstab linprocfs /compat/linux/proc linprocfs rw 0 0 linsysfs /compat/linux/sys linsysfs rw 0 0 tmpfs /compat/linux/dev/shm tmpfs rw,mode=1777 0 0 -
開機(jī)時開啟 Linux? 相容性
$ sudo vi /etc/rc.conf linux_enable="YES" -
安裝 Linux? ELF Binary
$ sudo brandelf -t Linux my-linux-elf-binary -
安裝以 Linux? RPM 為基礎(chǔ)的應(yīng)用程式,需先安裝 archivers/rpm4 套件或 Port
$ sudo pkg install rpm4 $ sudo cd /compat/linux $ sudo rpm2cpio < /path/to/linux.archive.rpm | cpio -id
手動安裝其他程式庫
-
在 Linux? 系統(tǒng),可使用 ldd 來找出應(yīng)用程式需要哪個共用程式庫
% ldd linuxdoom libXt.so.3 (DLL Jump 3.1) => /usr/X11/lib/libXt.so.3.1.0 -
複製 Linux? 系統(tǒng)輸出結(jié)果中最後一欄需要的的檔案到 FreeBSD 系統(tǒng)的 /compat/linux。 複製完後,建立符號連結(jié) (Symbolic link) 至輸出結(jié)果第一欄的名稱
/compat/linux/usr/X11/lib/libXt.so.3.1.0 /compat/linux/usr/X11/lib/libXt.so.3 -> libXt.so.3.1.0
自訂核心
為何要編譯自訂的核心?
自訂核心有許多項優(yōu)點,如:
- 加速開機(jī),因為自訂的核心只需要偵測您系統(tǒng)上存在的硬體,所以讓啟動所花的過程更流暢快速。
- 減少記憶體使用,自訂的核心通常會比 GENERIC 核心使用更少的記憶體,這很重要,因為核心必須一直存放在實體記憶體內(nèi)。
- 支援額外的硬體,自訂的核心可以增加一些 GENERIC 核心沒有提供的硬體支援。
偵測系統(tǒng)硬體
-
dmesg or /var/run/dmesg.boot
-
pciconf -lv
-
在 man指令加上 -k 旗標(biāo)可列出有包含指定裝置品牌或名稱的手冊頁面清單:man -k Intel
設(shè)定檔
/usr/src/sys 下子目錄代表著支援的硬體架構(gòu) (Architecture),每個支援的硬體架構(gòu)中會有 conf 子目錄,裡面含有供該架構(gòu)使用的 GENERIC 核心設(shè)定檔。
說明在GENERIC 同目錄的 NOTES 檔案中。所有架構(gòu)通用選項,參考 /usr/src/sys/conf/NOTES。
Others
Screen resolution on FreeBSD on VirtualBox
問題描述:在virtualbox虛擬機(jī)下,無法改變桌面分辨率為1366x768
$ VBoxManage setextradata "FreeBSD" VBoxInternal2/EfiGraphicsResolution 1366x768Disable the Forward/Back buttons on my mouse
問題描述:瀏覽網(wǎng)頁時,鼠標(biāo)滑輪滾動瀏覽器就會前進(jìn)后退。
Salved:
-
執(zhí)行下面命令后,上下滑動鼠標(biāo)滑輪,看看映射到那些button,一般是buttons 8 and 9
$ sudo xev | grep -A2 ButtonPress -
then disable button 8 and 9(前提是有上面的問題,否則就不要禁)
$ sudo vi ~/.Xmodmap pointer = 1 2 3 4 5 6 7 0 0 0 0 0 -
test it with the command,command automatically when you log in; if yours doesn’t, arrange for it to run when X starts.
$ sudo xmodmap ~/.Xmodmap
Install chinese font
$ sudo pkg search cjk # CJK(中日韓統(tǒng)一表意文字)設(shè)單使用模式為不安全
$ sudo vi /etc/ttys console none unknown off insecureNo space left on device
問題描述:使用 pkg update 時提示這個問題。原因是 /tmp is too small。
Salved:
$ sudo vi /etc/fstab tmpfs /tmp tmpfs rw,size=256000000 0 0 # size 以Byte為單位VirtualBox? guest additions
$ sudo cd /usr/ports/emulators/virtualbox-ose-additions && make install clean $ sudo vi /etc/rc.conf vboxguest_enable="YES" vboxservice_enable="YES" vboxservice_flags="--disable-timesync" # 若有使用 ntpd或 ntpdate,便可關(guān)閉主機(jī)時間同步功能Fish
Fish 是"the friendly interactive shell"的簡稱,最大特點就是方便易用。
Fish 會自動在光標(biāo)后面給出建議,表示可能的選項,顏色為灰色。如果采納建議,可以按下→或Control + F。如果只采納一部分,可以按下Alt + →。
輸入命令時,Fish 會自動顯示匹配的上一條歷史記錄。如果沒有匹配的歷史記錄,Fish 會猜測可能的結(jié)果,自動補(bǔ)全各種輸入。
Run command on startup on FreeBSD
Salved:
one of the final stages of the automatic boot process is to read a script file called /etc/rc.local (if it exists). This file requires no special formatting or keywords, or the execute bit set.
總結(jié)
以上是生活随笔為你收集整理的使用 FreeBSD 作为桌面的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: RapidJSON v1.1.0 发布简
- 下一篇: 计算机视觉实验:边缘提取与特征检测