FreeBSD ports
-
Upload
wdv4758h -
Category
Technology
-
view
731 -
download
5
description
Transcript of FreeBSD ports
![Page 1: FreeBSD ports](https://reader034.fdocuments.net/reader034/viewer/2022042601/5556ca82d8b42abb428b53f2/html5/thumbnails/1.jpg)
FreeBSD ports systemdv
許邱翔
@ NCTU
![Page 2: FreeBSD ports](https://reader034.fdocuments.net/reader034/viewer/2022042601/5556ca82d8b42abb428b53f2/html5/thumbnails/2.jpg)
前情提要
有來上次社課的話
應該已經裝好一個自己的 FreeBSD 了
![Page 3: FreeBSD ports](https://reader034.fdocuments.net/reader034/viewer/2022042601/5556ca82d8b42abb428b53f2/html5/thumbnails/3.jpg)
前情提要 (cont'd)
沒有自己的 FreeBSD 可以用的話
馬上舉手 0.0/
(我們有備好虛擬機可以用)
![Page 4: FreeBSD ports](https://reader034.fdocuments.net/reader034/viewer/2022042601/5556ca82d8b42abb428b53f2/html5/thumbnails/4.jpg)
前情提要 (cont'd)
現在請先開好自己的 FreeBSD
![Page 5: FreeBSD ports](https://reader034.fdocuments.net/reader034/viewer/2022042601/5556ca82d8b42abb428b53f2/html5/thumbnails/5.jpg)
說明
以下投影片中
# 開頭的都是指令
![Page 6: FreeBSD ports](https://reader034.fdocuments.net/reader034/viewer/2022042601/5556ca82d8b42abb428b53f2/html5/thumbnails/6.jpg)
說明 (cont'd)
在修改系統設定檔、安裝軟體時
需要 root 權限
![Page 7: FreeBSD ports](https://reader034.fdocuments.net/reader034/viewer/2022042601/5556ca82d8b42abb428b53f2/html5/thumbnails/7.jpg)
\社課正式開始/
![Page 8: FreeBSD ports](https://reader034.fdocuments.net/reader034/viewer/2022042601/5556ca82d8b42abb428b53f2/html5/thumbnails/8.jpg)
一般軟體安裝
Click, Click, Click
![Page 9: FreeBSD ports](https://reader034.fdocuments.net/reader034/viewer/2022042601/5556ca82d8b42abb428b53f2/html5/thumbnails/9.jpg)
FreeBSD 軟體安裝
use command !!!
![Page 10: FreeBSD ports](https://reader034.fdocuments.net/reader034/viewer/2022042601/5556ca82d8b42abb428b53f2/html5/thumbnails/10.jpg)
ports tree
ports tree 是 FreeBSD 上的 軟體列表
而且是有經過檢驗的
而放在裡面的軟體就被稱為 ports
![Page 11: FreeBSD ports](https://reader034.fdocuments.net/reader034/viewer/2022042601/5556ca82d8b42abb428b53f2/html5/thumbnails/11.jpg)
ports tree (cont'd)
接下來將教你如何藉由 ports tree 來安裝軟體
![Page 12: FreeBSD ports](https://reader034.fdocuments.net/reader034/viewer/2022042601/5556ca82d8b42abb428b53f2/html5/thumbnails/12.jpg)
ports tree (cont'd)
Ports tree is what you need before installing ports
Path: /usr/ports/
![Page 13: FreeBSD ports](https://reader034.fdocuments.net/reader034/viewer/2022042601/5556ca82d8b42abb428b53f2/html5/thumbnails/13.jpg)
ports tree (cont'd)
請先 cd 進去 /usr/ports/ 看看裡面是不是空的
如果你安裝時沒有勾選 ports 的話
應該是空的
現在來教如何抓 ports tree ~
![Page 14: FreeBSD ports](https://reader034.fdocuments.net/reader034/viewer/2022042601/5556ca82d8b42abb428b53f2/html5/thumbnails/14.jpg)
portsnap
更新、管理 ports tree 的工具
![Page 15: FreeBSD ports](https://reader034.fdocuments.net/reader034/viewer/2022042601/5556ca82d8b42abb428b53f2/html5/thumbnails/15.jpg)
portsnap (cont'd)
First time
# edit /etc/portsnap.conf
SERVERNAME=portsnap.FreeBSD.org
SERVERNAME=portsnap.tw.FreeBSD.org
![Page 16: FreeBSD ports](https://reader034.fdocuments.net/reader034/viewer/2022042601/5556ca82d8b42abb428b53f2/html5/thumbnails/16.jpg)
portsnap (cont'd)
First time
# portsnap fetch# portsnap extract
merge => # portsnap fetch extract
![Page 17: FreeBSD ports](https://reader034.fdocuments.net/reader034/viewer/2022042601/5556ca82d8b42abb428b53f2/html5/thumbnails/17.jpg)
portsnap (cont'd)
After the first use
# portsnap fetch# portsnap update
merge => # portsnap fetch update
![Page 18: FreeBSD ports](https://reader034.fdocuments.net/reader034/viewer/2022042601/5556ca82d8b42abb428b53f2/html5/thumbnails/18.jpg)
Search - whereis
# whereis NAME
# whereis rsyncrsync: /usr/ports/net/rsync
![Page 19: FreeBSD ports](https://reader034.fdocuments.net/reader034/viewer/2022042601/5556ca82d8b42abb428b53f2/html5/thumbnails/19.jpg)
Search - echo
(using wildcard)# echo /usr/ports/*/NAME
# echo /usr/ports/*/rsync/usr/ports/net/rsync
# echo /usr/ports/*/*NAME*
![Page 20: FreeBSD ports](https://reader034.fdocuments.net/reader034/viewer/2022042601/5556ca82d8b42abb428b53f2/html5/thumbnails/20.jpg)
INDEX
# make fetchindex
(the files are INDEX-*)
For make search & make quicksearch
![Page 21: FreeBSD ports](https://reader034.fdocuments.net/reader034/viewer/2022042601/5556ca82d8b42abb428b53f2/html5/thumbnails/21.jpg)
Search - make search
# cd /usr/ports/# make search name=NAME# make search key=KEYWORD
If names or keywords have multiple words, use ' ' or " "
![Page 22: FreeBSD ports](https://reader034.fdocuments.net/reader034/viewer/2022042601/5556ca82d8b42abb428b53f2/html5/thumbnails/22.jpg)
Search - make search (cont'd)
Port: rsync-3.0.9_3Path: /usr/ports/net/rsyncInfo: Network file distribution/synchronization utilityMaint: [email protected]: R-deps: WWW: http://rsync.samba.org/
![Page 23: FreeBSD ports](https://reader034.fdocuments.net/reader034/viewer/2022042601/5556ca82d8b42abb428b53f2/html5/thumbnails/23.jpg)
B-deps
B-deps means Build dependencies
![Page 24: FreeBSD ports](https://reader034.fdocuments.net/reader034/viewer/2022042601/5556ca82d8b42abb428b53f2/html5/thumbnails/24.jpg)
R-deps
R-deps means Run dependencies
![Page 25: FreeBSD ports](https://reader034.fdocuments.net/reader034/viewer/2022042601/5556ca82d8b42abb428b53f2/html5/thumbnails/25.jpg)
Search - make quicksearch
# cd /usr/ports/# make quicksearch name=NAME
Port: rsync-3.0.9_3Path: /usr/ports/net/rsyncInfo: Network file distribution/synchronization utility
![Page 26: FreeBSD ports](https://reader034.fdocuments.net/reader034/viewer/2022042601/5556ca82d8b42abb428b53f2/html5/thumbnails/26.jpg)
Search - psearch
ports-mgmt/psearch
# psearch NAME
# psearch rsyncnet/rsync Network file distribution...
![Page 27: FreeBSD ports](https://reader034.fdocuments.net/reader034/viewer/2022042601/5556ca82d8b42abb428b53f2/html5/thumbnails/27.jpg)
in the ports
請先 cd 到 /usr/ports/security/sudo
![Page 28: FreeBSD ports](https://reader034.fdocuments.net/reader034/viewer/2022042601/5556ca82d8b42abb428b53f2/html5/thumbnails/28.jpg)
in the ports (cont'd)
● Makefile ● distinfo - info about files and checksums
● files/ - some patches and files
● pkg-descr - more descriptions
● pkg-plist - all files that port will install
![Page 29: FreeBSD ports](https://reader034.fdocuments.net/reader034/viewer/2022042601/5556ca82d8b42abb428b53f2/html5/thumbnails/29.jpg)
in the ports (cont'd)
other files
● pkg-message - msg to user (after installed)
![Page 30: FreeBSD ports](https://reader034.fdocuments.net/reader034/viewer/2022042601/5556ca82d8b42abb428b53f2/html5/thumbnails/30.jpg)
Before getting the source
# edit /etc/make.conf
MASTER_SITE_BACKUP?= \ http://freebsd.cs.nctu.edu.tw/distfiles/${DIST_SUBDIR}/
MASTER_SITE_OVERRIDE?= ${MASTER_SITE_BACKUP}
![Page 31: FreeBSD ports](https://reader034.fdocuments.net/reader034/viewer/2022042601/5556ca82d8b42abb428b53f2/html5/thumbnails/31.jpg)
make
# cd /path/to/your/ports
# make
# make install
# make clean
merge => # make install clean
![Page 32: FreeBSD ports](https://reader034.fdocuments.net/reader034/viewer/2022042601/5556ca82d8b42abb428b53f2/html5/thumbnails/32.jpg)
make (cont'd)
# make deinstall
delete software anyway even if it is required by other packages
![Page 33: FreeBSD ports](https://reader034.fdocuments.net/reader034/viewer/2022042601/5556ca82d8b42abb428b53f2/html5/thumbnails/33.jpg)
make (cont'd)
change config again# make config
![Page 34: FreeBSD ports](https://reader034.fdocuments.net/reader034/viewer/2022042601/5556ca82d8b42abb428b53f2/html5/thumbnails/34.jpg)
make your make faster
# edit /etc/make.conf
FORCE_MAKE_JOBS=yesMAKE_JOBS_NUMBER=6
![Page 35: FreeBSD ports](https://reader034.fdocuments.net/reader034/viewer/2022042601/5556ca82d8b42abb428b53f2/html5/thumbnails/35.jpg)
portmaster
ports-mgmt/portmaster
# portmaster PORTS_PATH
ex: # portmaster security/sudo
![Page 36: FreeBSD ports](https://reader034.fdocuments.net/reader034/viewer/2022042601/5556ca82d8b42abb428b53f2/html5/thumbnails/36.jpg)
portmaster (cont'd)
check upgrade (all installed software)# portmaster -a
![Page 37: FreeBSD ports](https://reader034.fdocuments.net/reader034/viewer/2022042601/5556ca82d8b42abb428b53f2/html5/thumbnails/37.jpg)
portmaster (cont'd)
● -a 確認所有的ports有沒有可以升級的● -d 升級或移除ports的時候自動將用不到的
distfiles砍掉● -B 升級時,不將舊的套件備份起來● -f 強制編譯升級ports
ex:# portmaster -dB security/sudo
![Page 38: FreeBSD ports](https://reader034.fdocuments.net/reader034/viewer/2022042601/5556ca82d8b42abb428b53f2/html5/thumbnails/38.jpg)
portmaster (cont'd)
● -G 不跳出 make config 選擇視窗● -y 對所有問題都回答yes● --clean-distfiles 移除不需要的distfiles ● --clean-packages 移除不需要的packages● --check-depends 確認目前所有的ports相
依性
![Page 39: FreeBSD ports](https://reader034.fdocuments.net/reader034/viewer/2022042601/5556ca82d8b42abb428b53f2/html5/thumbnails/39.jpg)
ports & package
package● Install faster, but
run slower (binary)
● less flexibility
● save the time building from source
ports● Build from source
● Install slower than package, but run faster
● more flexibility● easier to modify
code
![Page 40: FreeBSD ports](https://reader034.fdocuments.net/reader034/viewer/2022042601/5556ca82d8b42abb428b53f2/html5/thumbnails/40.jpg)
pkg_add, pkg_delete
# pkg_add LOCAL_PACKAGE_FILES
# pkg_add -r PACKAGE_NAME (remote)
![Page 41: FreeBSD ports](https://reader034.fdocuments.net/reader034/viewer/2022042601/5556ca82d8b42abb428b53f2/html5/thumbnails/41.jpg)
pkg_add, pkg_delete (cont'd)
# pkg_delete NAME-VERSION
pkg_delete need specific version
![Page 42: FreeBSD ports](https://reader034.fdocuments.net/reader034/viewer/2022042601/5556ca82d8b42abb428b53f2/html5/thumbnails/42.jpg)
pkg_add, pkg_delete (cont'd)
# pkg_delete NAME\*
![Page 43: FreeBSD ports](https://reader034.fdocuments.net/reader034/viewer/2022042601/5556ca82d8b42abb428b53f2/html5/thumbnails/43.jpg)
pkg_add, pkg_delete (cont'd)
# pkg_delete -r -v PACKAGE_NAME
● -r : Recursive removal● -v : Turn on verbose output
● -f : force
![Page 44: FreeBSD ports](https://reader034.fdocuments.net/reader034/viewer/2022042601/5556ca82d8b42abb428b53f2/html5/thumbnails/44.jpg)
pkgng
ports-mgmt/pkg
a replacement for pkg_* tools
convert the package database# pkg2ng (This step is not reversible)
![Page 45: FreeBSD ports](https://reader034.fdocuments.net/reader034/viewer/2022042601/5556ca82d8b42abb428b53f2/html5/thumbnails/45.jpg)
pkgng (cont'd)
# pkg install NAME
# pkg delete NAME
![Page 46: FreeBSD ports](https://reader034.fdocuments.net/reader034/viewer/2022042601/5556ca82d8b42abb428b53f2/html5/thumbnails/46.jpg)
pkgng (cont'd)
earlier than FreeBSD 10.X require this line in /etc/make.conf
WITH_PKGNG = YES
![Page 47: FreeBSD ports](https://reader034.fdocuments.net/reader034/viewer/2022042601/5556ca82d8b42abb428b53f2/html5/thumbnails/47.jpg)
pkgng notice
不要在使用 pkg2ng 來轉成使用 pkgng 前
在 make.conf 加入 WITH_PKGNG = YES
![Page 48: FreeBSD ports](https://reader034.fdocuments.net/reader034/viewer/2022042601/5556ca82d8b42abb428b53f2/html5/thumbnails/48.jpg)
Other command
list and describe installed packages# pkg_info# pkg info (pkgng)
![Page 49: FreeBSD ports](https://reader034.fdocuments.net/reader034/viewer/2022042601/5556ca82d8b42abb428b53f2/html5/thumbnails/49.jpg)
Other command (cont'd)
compares the package version to the current version found in the ports tree
# pkg_verson# pkg version (pkgng)
![Page 50: FreeBSD ports](https://reader034.fdocuments.net/reader034/viewer/2022042601/5556ca82d8b42abb428b53f2/html5/thumbnails/50.jpg)
Rehash
# rehash
![Page 51: FreeBSD ports](https://reader034.fdocuments.net/reader034/viewer/2022042601/5556ca82d8b42abb428b53f2/html5/thumbnails/51.jpg)
Updating
check /usr/ports/UPDATING
it documents some of the problems you may encounter when upgrading your ports
![Page 52: FreeBSD ports](https://reader034.fdocuments.net/reader034/viewer/2022042601/5556ca82d8b42abb428b53f2/html5/thumbnails/52.jpg)
Updating (cont'd)
# pkg_updating# pkg updating (pkgng)
# pkg_updating NAME_OF_SOFTWARE# pkg updating NAME_OF_SOFTWARE (pkgng)
print the ${PORTSDIR}/UPDATING entries that concern your installed packages
![Page 53: FreeBSD ports](https://reader034.fdocuments.net/reader034/viewer/2022042601/5556ca82d8b42abb428b53f2/html5/thumbnails/53.jpg)
Updating (cont'd)
list installed software and search for updates# portmaster -L
upgrade all ports that can be upgraded# portmaster -a
![Page 54: FreeBSD ports](https://reader034.fdocuments.net/reader034/viewer/2022042601/5556ca82d8b42abb428b53f2/html5/thumbnails/54.jpg)
Portaudit
ports-mgmt/portaudit
check if installed ports are listed in a database of published security vulnerabilities
![Page 55: FreeBSD ports](https://reader034.fdocuments.net/reader034/viewer/2022042601/5556ca82d8b42abb428b53f2/html5/thumbnails/55.jpg)
Portaudit (cont'd)
# portaudit -Fda# portaudit
● -F Fetch the current database● -d Print the creation date of the database● -a Print a vulnerability report for all installed
packages
![Page 56: FreeBSD ports](https://reader034.fdocuments.net/reader034/viewer/2022042601/5556ca82d8b42abb428b53f2/html5/thumbnails/56.jpg)
pkg audit
Fetch the database before checking# pkg audit -F# pkg audit
● -F Fetch the database
![Page 57: FreeBSD ports](https://reader034.fdocuments.net/reader034/viewer/2022042601/5556ca82d8b42abb428b53f2/html5/thumbnails/57.jpg)
Task Today
install below software
● screen● vim-lite● sudo● subversion● git● python
![Page 58: FreeBSD ports](https://reader034.fdocuments.net/reader034/viewer/2022042601/5556ca82d8b42abb428b53f2/html5/thumbnails/58.jpg)
Reference
● FreeBSD handbook● NCTU SA - Install Applications● FreeBSD Ports - pellaeon● FreeBSD wiki - pkgng● FreeBSD wiki - Pkg Primer● portmaster - Hsian Studio● command manual
![Page 59: FreeBSD ports](https://reader034.fdocuments.net/reader034/viewer/2022042601/5556ca82d8b42abb428b53f2/html5/thumbnails/59.jpg)
This is the end of today's course
Thanks for everyone
![Page 60: FreeBSD ports](https://reader034.fdocuments.net/reader034/viewer/2022042601/5556ca82d8b42abb428b53f2/html5/thumbnails/60.jpg)
More things
![Page 61: FreeBSD ports](https://reader034.fdocuments.net/reader034/viewer/2022042601/5556ca82d8b42abb428b53f2/html5/thumbnails/61.jpg)
PKGSITE
如果想改用其他 FreeBSD Packages Mirror就得設定此環境變數
# setenv PKGSITE PACKAGES_MIRROR_URL
![Page 62: FreeBSD ports](https://reader034.fdocuments.net/reader034/viewer/2022042601/5556ca82d8b42abb428b53f2/html5/thumbnails/62.jpg)
PKGSITE (cont'd)
如果之後想移除此環境變數時
可下此指令
# unsetenv PKGSITE
![Page 63: FreeBSD ports](https://reader034.fdocuments.net/reader034/viewer/2022042601/5556ca82d8b42abb428b53f2/html5/thumbnails/63.jpg)
portconf
一次設定好編譯參數
以後裝新機就不用重新勾選
![Page 64: FreeBSD ports](https://reader034.fdocuments.net/reader034/viewer/2022042601/5556ca82d8b42abb428b53f2/html5/thumbnails/64.jpg)
portconf (cont'd)
/usr/local/etc/ports.conf
net/rsync: WITH_ICONV
Wildcard can be used.
![Page 65: FreeBSD ports](https://reader034.fdocuments.net/reader034/viewer/2022042601/5556ca82d8b42abb428b53f2/html5/thumbnails/65.jpg)
ports tree (cont'd)
● distfiles/
預設會把安裝軟體時所需要下載的檔案
存到 /usr/ports/distfiles/ 底下
![Page 66: FreeBSD ports](https://reader034.fdocuments.net/reader034/viewer/2022042601/5556ca82d8b42abb428b53f2/html5/thumbnails/66.jpg)
ports tree (cont'd)
● CHANGES
major changes to ports and the ports infrastructure (for ports committers, maintainers and other developers)
![Page 67: FreeBSD ports](https://reader034.fdocuments.net/reader034/viewer/2022042601/5556ca82d8b42abb428b53f2/html5/thumbnails/67.jpg)
ports tree (cont'd)
● MOVED
A list of (recently) moved or removed ports