欢迎访问我的个人 Blog。

如果从没有了解过 FreeBSD,请看如下:

  • FreeBSD 简介:

    • 使用 FreeBSD 使用手冊繁体中文版,繁体中文版较之简体中文版更新。
    • 对于 FreeBSD 使用所需的一切知识,都可以在 FreeBSD 使用手册中找到;对于 FreeBSD 使用过程中遇到的一切问题,都可以在 FreeBSD Forums 找到解答,或者提出问题。
  • FreeBSD的现状和未来
  • FreeBSD 知乎话题
  • FreeBSD 吧
  • FreeBSD v2ex 主题

文章目录

  • Install Desktop Enviroment
  • Binary 套件
  • Port 套件
  • Linux® Binary 相容性
    • 手動安裝其他程式庫
  • 自訂核心
    • 為何要編譯自訂的核心?
    • 偵測系統硬體
    • 設定檔
  • Others
    • Screen resolution on FreeBSD on VirtualBox
    • Disable the Forward/Back buttons on my mouse
    • Install chinese font
    • 设单使用模式为不安全
    • No space left on device
    • VirtualBox™ guest additions
    • Fish
    • Run command on startup on FreeBSD

FreeBSD 計劃的目標在於提供可作任意用途的軟體而不附帶任何限制條文。 我們之中許多人對程式碼 (以及計畫本身) 都有非常大的投入, 因此,當然不介意偶爾有一些資金上的補償,但我們並沒打算堅決地要求得到這類資助。 我們認為我們的首要“使命”是為任何人提供程式碼, 不管他們打算用這些程式碼做什麼, 因為這樣程式碼將能夠被更廣泛地使用,從而發揮其價值。 我認為這是自由軟體最基本的,同時也是我們所倡導的一個目標。

我們程式碼樹中,有若干是以 GNU 通用公共授權條款 (GPL) 或者 GNU 較寬鬆通用公共授權條款 (LGPL) 發佈的那些程式碼帶有少許的附加限制,還好只是強制性的要求開放程式碼而不是別的。 由於使用 GPL 的軟體在商業用途上會增加若干複雜性,因此,如果可以選擇的話, 我們會比較喜歡使用限制相對更寬鬆的 BSD 版權來發佈軟體。
-Jordan Hubbard

Install Desktop Enviroment

GhostBSD 是最好的 FreeBSD 桌面发行版,注意使用 Official 版本,不能直接使用 FreeBSD 源升级,没有中国源。

X 最初設計是以網路為中心,採用 “client-server” 架構。在此架構下 “X 伺服器” 在有鍵盤、螢幕、滑鼠的電腦上運作。該伺服器負責的工作包含管理顯示、處理來自鍵盤、滑鼠的輸入及來自其他設備)的輸入或輸出。

每個 X 應用程式,如 XTerm、Firefox 都是 “客戶端”。

視窗管理程式規定螢幕上的視窗該長什麼樣、要如何移動滑鼠指標、 要用什麼鍵來在視窗切換、每個視窗的標題列長相,及是否該有關閉按鈕,等等。視窗管理程式負責滑鼠指標的聚焦政策。 聚焦政策指的是如何決定使用中及接收鍵盤輸入的視窗。通常較為人熟悉的聚焦政策叫做 “click-to-focus”,這個模式中,滑鼠點選到的視窗便會處於作用中 (Active) 的狀態。

KDE 與 GNOME 會被稱作桌面環境是因為包含了完整常用桌面作業的應用程式。

  • Install X Window System

    $ sudo pkg install xorg
    

顯示卡、顯示器以及輸入裝置會自動偵測,無須任何手動設置。除非自動設置失敗,否則請勿建立 xorg.conf 或執行 -configure 步驟。

  • 加入要執行 Xorg 的使用者到 video 或 wheel 群組,以便在可用時能開啟 3D 加速。

    $ sudo pw groupmod video -m jru || pw groupmod wheel -m jru
    
  • 較舊版的 FreeBSD 使用的 sc(4) 並不知到 KMS 系統的存在,這會導致關閉 X 之後即始仍在運作但系統 Console 卻呈現空白。較新版的 vt(4) Console 可避免這個問題。加入此行到 /boot/loader.conf 來開啟 vt(4)

    kern.vty=vt
    

在 FreeBSD 較建議使用 /usr/local/etc/X11/ 來存放設定檔,每个项目都需要设定。多档完整路徑通常為 /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服务
    
  • 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) 系統,請執行

    $ sudo /usr/sbin/pkg
    
  • 當升級原使用舊版 pkg_* 工具的既有系統時,必須將資料庫轉換成新的格式

    $ sudo pkg2ng
    
  • Update the available remote repositories as listed in pkg.conf

    $ sudo pkg update
    
  • Search for a package

    $ sudo pkg search perl
    
  • 在指定要安裝的套件時,最好使用 Port 來源來指定該應用程式,Port 來源是指應用程式在 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
    
  • 列出已經安裝的 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
    
  • 要查詢已安在系統上的軟體是否有任何已知的漏洞

    $ sudo pkg audit -F
    
  • 因為相依所安裝的套件稱作自動 (Automatic) 套件,而非自動套件即套件被安裝的原因不是因為其他套件所相依

    $ sudo pkg prime-list     # deprecated
    
  • Clean the local cache of fetched remote packages

    $ sudo pkg clean
    

Port 套件

優點:

  • 可更改編譯選項
  • 部份軟體的授權條款中禁止以 Binary 格式發佈。 這種軟體必須以原始碼發佈並由終端使用者編譯。
  • 原始碼可套用自訂的修補。

Port 中並不含實際的原始碼,在編譯 Port 解壓縮時會自動下載的原始碼到 /usr/ports/distfiles

  • 安裝 Port 套件集:下載壓縮後的 Port 套件集快照 (Snapshot) 到 /var/db/portsnap

    $ sudo portsnap fetch
    
  • 第一次執行 Portsnap 時,要先解壓縮快照到 /usr/ports

    $ sudo portsnap extract
    
  • 執行以下指令來更新 /usr/ports

    $ sudo portsnap fetch
    $ sudo portsnap update
    
  • 要找到 Port 所在的分類

    $ sudo whereis lsof
    
  • 使用 Port 套件集內建的搜尋機制來找軟體

    $ sudo cd /usr/ports
    $ sudo make search name=lsof
    $ sudo make quicksearch name=lsof      # 不接受多資訊
    
  • 若要進行更有深度的搜尋

    $ sudo make search key=string
    $ sudo make quicksearch key=string
    
  • 一次設定所有Port 編譯選項

    $ sudo make config-recursive
    
  • 重新進入 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
    
  • 安裝過程中會建立工作用的子目錄用來儲存編譯時暫存的檔案。可移除此目錄來節省磁碟空間並漸少往後升級新版 Port 時造成問題

    $ sudo make clean
    
  • 移除已安裝的 Port

    $ sudo cd /usr/ports/sysutils/lsof
    $ sudo make deinstall
    

安裝後的注意事項:

  • 大部份應用程式安裝會在 /usr/local/etc 安裝至少一個預設的設定檔。
  • 應用程式提供的文件會安裝到 /usr/local/share/doc
  • 部份應用程式會以服務的方式執行,在啟動應用程式前前需要加入設定到 /etc/rc.conf。這些應用程式通常會安裝啟動 Script 到 /usr/local/etc/rc.d

Linux® Binary 相容性

FreeBSD 提供 Linux® Binary 的相容性,允許使用者在 FreeBSD 系統上不需要修改就可以安裝和執行大部份的 Linux® Binary。

最好不要直接安装 Linux 的软件,而使用 FreeBSD 源中的 Linux 软件,一般以 linux-package 命名。

  • 載入 Linux® 核心模組

    $ sudo kldload linux
    
  • 對 64-位元的相容性

    $ sudo kldload linux64
    
  • 確認模組已載入

    $ 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
    
  • 開機時開啟 Linux® 相容性

    $ sudo vi /etc/rc.conf
    linux_enable="YES"
    
  • 安裝 Linux® ELF Binary

    $ sudo brandelf -t Linux my-linux-elf-binary
    
  • 安裝以 Linux® RPM 為基礎的應用程式,需先安裝 archivers/rpm4 套件或 Port

    $ sudo pkg install rpm4
    $ sudo cd /compat/linux
    $ sudo rpm2cpio < /path/to/linux.archive.rpm | cpio -id
    
手動安裝其他程式庫
  • 在 Linux® 系統,可使用 ldd 來找出應用程式需要哪個共用程式庫

    % ldd linuxdoom
    libXt.so.3 (DLL Jump 3.1) => /usr/X11/lib/libXt.so.3.1.0
    
  • 複製 Linux® 系統輸出結果中最後一欄需要的的檔案到 FreeBSD 系統的 /compat/linux。 複製完後,建立符號連結 (Symbolic link) 至輸出結果第一欄的名稱

    /compat/linux/usr/X11/lib/libXt.so.3.1.0
    /compat/linux/usr/X11/lib/libXt.so.3 -> libXt.so.3.1.0
    

自訂核心

為何要編譯自訂的核心?

自訂核心有許多項優點,如:

  • 加速開機,因為自訂的核心只需要偵測您系統上存在的硬體,所以讓啟動所花的過程更流暢快速。
  • 減少記憶體使用,自訂的核心通常會比 GENERIC 核心使用更少的記憶體,這很重要,因為核心必須一直存放在實體記憶體內。
  • 支援額外的硬體,自訂的核心可以增加一些 GENERIC 核心沒有提供的硬體支援。
偵測系統硬體
  • dmesg or /var/run/dmesg.boot

  • pciconf -lv

  • 在 man指令加上 -k 旗標可列出有包含指定裝置品牌或名稱的手冊頁面清單:man -k Intel

設定檔

/usr/src/sys 下子目錄代表著支援的硬體架構 (Architecture),每個支援的硬體架構中會有 conf 子目錄,裡面含有供該架構使用的 GENERIC 核心設定檔。

說明在GENERIC 同目錄的 NOTES 檔案中。所有架構通用選項,參考 /usr/src/sys/conf/NOTES

Others

Screen resolution on FreeBSD on VirtualBox

问题描述:在virtualbox虚拟机下,无法改变桌面分辨率为1366x768

$ VBoxManage setextradata "FreeBSD" VBoxInternal2/EfiGraphicsResolution 1366x768
Disable the Forward/Back buttons on my mouse

问题描述:浏览网页时,鼠标滑轮滚动浏览器就会前进后退。

Salved:

  • 执行下面命令后,上下滑动鼠标滑轮,看看映射到那些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(中日韩统一表意文字)
设单使用模式为不安全
$ sudo vi /etc/ttys
console none    unknown off insecure
No 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,便可關閉主機時間同步功能
Fish

Fish 是"the friendly interactive shell"的简称,最大特点就是方便易用。

Fish 会自动在光标后面给出建议,表示可能的选项,颜色为灰色。如果采纳建议,可以按下Control + F。如果只采纳一部分,可以按下Alt + →

输入命令时,Fish 会自动显示匹配的上一条历史记录。如果没有匹配的历史记录,Fish 会猜测可能的结果,自动补全各种输入。

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.

使用 FreeBSD 作为桌面相关推荐

  1. trueOS能装linux软件,TrueOS 17.12发布下载,一款基于FreeBSD的桌面Linux系统

    TrueOS(formerly PC-BSD)的目标是成为一款基于 FreeBSD 的易于安装和使用的 Linux 桌面操作系统,目前最新版本为 TrueOS 17.12,已提供下载.同时,TrueO ...

  2. 打造FreeBSD桌面系统

    FreeBSD从发布之日起就作为一个优秀的网络操作系统而受到关注,但过于专业的操作以及缺少面向桌面的应用软件支持使它将很多用户拒之门外.但是随着Linux平台下桌面软件的逐渐丰富,以及gcc出众的移植 ...

  3. linux中_在 Linux 桌面中开始使用 Lumina | Linux 中国

    本文是 24 天 Linux 桌面特别系列的一部分.Lumina 桌面是让你使用快速.合理的基于 Fluxbox 桌面的捷径,它具有你无法缺少的所有功能.-- Seth Kenlon 多年来,有一个名 ...

  4. 主要Linux发行版和FreeBSD概述

    介绍 令人困惑的选择和数量不断增加的Linux发行版可能会使那些刚接触Linux的人感到困惑.这就是创建此页面的原因.它列出了10个Linux发行版(加上对FreeBSD的荣誉称号,到目前为止,它是所 ...

  5. 一个学习FreeBSD不错的中文网站

    https://wiki.freebsdchina.org/ 欢迎访问 FreeBSDChina Wiki ! 大家可以在wiki中尽情地写下好的重要的内容,分享给更多的人,让这个严谨而又富有活力的操 ...

  6. FreeBSD 13.0 正式版发布,已经可以下载

    请访问原文链接:https://sysin.org/article/freebsd-13/,查看最新版.原创作品,转载请保留出处. 根据 FreeBSD 13.0 官方发布计划,4 月 9 日 13. ...

  7. x86上的那些UNIX——BSD篇+主流桌面

    我想把古老编程环境系列完成,这是unix篇,其实从linux开始,该系列就有些变味了,变成了操作系统的介绍,本unix篇将分FreeBSD.Solaris.SCO等几个部分,unix的发行版不是很多, ...

  8. 几种主要的Linux版本之间的比较

    我们很难从大量Linux版本中选择一款正好适合某个特定环境的版本.每一个版本都有自己的侧重点,有一套自己的文件,安装方式和自己的Linux内核版本.本文我将比较四种主要的Linux版本--Debian ...

  9. 各linux版本比较

    来源:http://moccafe.blog.hexun.com/29956237_d.html 对Unix各大发行版本的总结 (CentOS, Debian, Redhat, Fedora Core ...

最新文章

  1. 配置管理小报100329:脚本中ftp命令无法自动输入密码怎么办?
  2. Linux/Unix 如何查看 man 搜索到的手册页(manual page)的位置及复制手册页的内容
  3. Oracle tips
  4. micropython教程nucleo-f767zi开发板_Micropython教程之TPYBoard开发板制作电子时钟(萝卜学科编程教育)...
  5. Android 实现计时器功能,Android实现倒计时30分钟功能
  6. matplotlib--python的数据可视化入门
  7. Android之AIDL跨进程通讯
  8. html如何上下滚动字幕,html页面实现滚动字幕
  9. xshell堡垒机_XShell运维工具之跳板机配置
  10. 手把手教你升级苹果ID为免费开发者帐号
  11. mysql tmp mysql.sock_MySQL搭建过程中的“/tmp/mysql.sock错误解决
  12. n维空间的欧氏距离公式_n维欧氏空间中球的体积公式与表面积公式之间的微分关系(论文资料).pdf...
  13. 实战八:美国人口普查数据进行收入预测分类
  14. GRP-U8怎么增加项目
  15. Typora免费安装使用
  16. 微信群骂人违法吗?怎么维权
  17. SAP License:SAP常见问题与解决办法(汇总帖)
  18. PHP使用web3还原助记词
  19. 使用ESP32驱动ST7789,效果很好的IPS显示屏
  20. WordPress阿里百秀XIU5.6主题模板 开源无任何限制版

热门文章

  1. 设备树学习(十七、番外篇-中断子系统之内核对中断控制器的解析)
  2. 算法复杂度简介以及排序算法简介
  3. 人生有太的无奈,才会充满期待
  4. Hadoop和Spark学习日记4
  5. 于魁智和李胜素将赴石演出
  6. LNMP环境搭建总结
  7. 解决office2003与office2007共存问题
  8. java 开源 server_simplewebserver: SimpleWebServer 是一款使用Java基于NIO编写的超轻量级开源Web Application Server...
  9. 设计模式笔记之二工厂方法模式
  10. linux不能识别pvcreate命令,ubuntu – pvcreate:找不到设备/ dev / sdXX(或通过过滤忽略)...