ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

FreeBSD 使用与常见问题

2020-11-23 22:03:08  阅读:331  来源: 互联网

标签:常见问题 sudo 程式 usr FreeBSD 使用 Port pkg


欢迎访问我的个人 Blog

文章目录

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.

标签:常见问题,sudo,程式,usr,FreeBSD,使用,Port,pkg
来源: https://blog.csdn.net/weixin_44609361/article/details/110008669

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有