FreeBSD ports system dv 許邱翔 @ NCTU

前情提要 有來上次社課的話 應該已經裝好一個自己的 FreeBSD 了

前情提要 (cont'd) 沒有自己的 FreeBSD 可以用的話 馬上舉手 0.0/ (我們有備好虛擬機可以用)

前情提要 (cont'd) 現在請先開好自己的 FreeBSD

說明 以下投影片中 # 開頭的都是指令

說明 (cont'd) 在修改系統設定檔、安裝軟體時 需要 root 權限

\社課正式開始/

一般軟體安裝 Click, Click, Click

FreeBSD 軟體安裝 use command !!!

ports tree ports tree 是 FreeBSD 上的 軟體列表 而且是有經過檢驗的 而放在裡面的軟體就被稱為 ports

ports tree (cont'd) 接下來將教你如何藉由 ports tree 來安裝軟體

ports tree (cont'd) Ports tree is what you need before installing ports Path: /usr/ports/

ports tree (cont'd) 請先 cd 進去 /usr/ports/ 看看裡面是不是空的 如果你安裝時沒有勾選 ports 的話 應該是空的 現在來教如何抓 ports tree ~

portsnap 更新、管理 ports tree 的工具

portsnap (cont'd) First time # edit /etc/portsnap.conf SERVERNAME=portsnap.FreeBSD.org

SERVERNAME=portsnap.tw.FreeBSD.org

portsnap (cont'd) First time # portsnap fetch # portsnap extract merge => # portsnap fetch extract

portsnap (cont'd) After the first use # portsnap fetch # portsnap update merge => # portsnap fetch update

Search - whereis # whereis NAME # whereis rsync rsync: /usr/ports/net/rsync

Search - echo (using wildcard) # echo /usr/ports/*/NAME # echo /usr/ports/*/rsync /usr/ports/net/rsync # echo /usr/ports/*/*NAME*

INDEX # make fetchindex (the files are INDEX-*) For make search & make quicksearch

Search - make search # cd /usr/ports/ # make search name=NAME # make search key=KEYWORD If names or keywords have multiple words, use ' ' or " "

Search - make search (cont'd) Port: rsync-3.0.9_3 Path: /usr/ports/net/rsync Info: Network file distribution/synchronization utility Maint: [email protected] B-deps: R-deps: WWW: http://rsync.samba.org/

B-deps B-deps means Build dependencies

R-deps R-deps means Run dependencies

Search - make quicksearch # cd /usr/ports/ # make quicksearch name=NAME

Port: rsync-3.0.9_3 Path: /usr/ports/net/rsync Info: Network file distribution/synchronization utility

Search - psearch ports-mgmt/psearch # psearch NAME

# psearch rsync net/rsync Network file distribution...

in the ports 請先 cd 到 /usr/ports/security/sudo

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

in the ports (cont'd) other files ● pkg-message - msg to user (after installed)

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}

make # cd /path/to/your/ports # make # make install # make clean merge => # make install clean

make (cont'd) # make deinstall delete software anyway even if it is required by other packages

make (cont'd) change config again # make config

make your make faster # edit /etc/make.conf FORCE_MAKE_JOBS=yes MAKE_JOBS_NUMBER=6

portmaster ports-mgmt/portmaster # portmaster PORTS_PATH ex: # portmaster security/sudo

portmaster (cont'd) check upgrade (all installed software) # portmaster -a

portmaster (cont'd) ● -a 確認所有的ports有沒有可以升級的 ● -d 升級或移除ports的時候自動將用不到的 distfiles砍掉 ● -B 升級時,不將舊的套件備份起來 ● -f 強制編譯升級ports ex: # portmaster -dB security/sudo

portmaster (cont'd) ● ● ● ● ●

-G 不跳出 make config 選擇視窗 -y 對所有問題都回答yes --clean-distfiles 移除不需要的distfiles --clean-packages 移除不需要的packages --check-depends 確認目前所有的ports相 依性

ports & package ports ● Build from source ● Install slower than package, but run faster ● more flexibility ● easier to modify code

package ● Install faster, but run slower (binary) ● less flexibility ● save the time building from source

pkg_add, pkg_delete # pkg_add LOCAL_PACKAGE_FILES # pkg_add -r PACKAGE_NAME

(remote)

pkg_add, pkg_delete (cont'd) # pkg_delete NAME-VERSION pkg_delete need specific version

pkg_add, pkg_delete (cont'd) # pkg_delete NAME\*

pkg_add, pkg_delete (cont'd) # pkg_delete -r -v PACKAGE_NAME ● -r : Recursive removal ● -v : Turn on verbose output ● -f : force

pkgng ports-mgmt/pkg a replacement for pkg_* tools convert the package database # pkg2ng (This step is not reversible)

pkgng (cont'd) # pkg install NAME # pkg delete NAME

pkgng (cont'd) earlier than FreeBSD 10.X require this line in /etc/make.conf WITH_PKGNG = YES

pkgng notice 不要在使用 pkg2ng 來轉成使用 pkgng 前 在 make.conf 加入 WITH_PKGNG = YES

Other command list and describe installed packages # pkg_info # pkg info (pkgng)

Other command (cont'd) compares the package version to the current version found in the ports tree # pkg_verson # pkg version (pkgng)

Rehash # rehash

Updating check /usr/ports/UPDATING it documents some of the problems you may encounter when upgrading your ports

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

Updating (cont'd) list installed software and search for updates # portmaster -L upgrade all ports that can be upgraded # portmaster -a

Portaudit ports-mgmt/portaudit check if installed ports are listed in a database of published security vulnerabilities

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

pkg audit Fetch the database before checking # pkg audit -F # pkg audit ● -F Fetch the database

Task Today install below software ● ● ● ● ● ●

screen vim-lite sudo subversion git python

Reference ● ● ● ● ● ● ●

FreeBSD handbook NCTU SA - Install Applications FreeBSD Ports - pellaeon FreeBSD wiki - pkgng FreeBSD wiki - Pkg Primer portmaster - Hsian Studio command manual

This is the end of today's course Thanks for everyone

More things

PKGSITE 如果想改用其他 FreeBSD Packages Mirror 就得設定此環境變數 # setenv PKGSITE PACKAGES_MIRROR_URL

PKGSITE (cont'd) 如果之後想移除此環境變數時 可下此指令 # unsetenv PKGSITE

portconf 一次設定好編譯參數 以後裝新機就不用重新勾選

portconf (cont'd) /usr/local/etc/ports.conf net/rsync: WITH_ICONV

Wildcard can be used.

ports tree (cont'd) ● distfiles/ 預設會把安裝軟體時所需要下載的檔案 存到 /usr/ports/distfiles/ 底下

ports tree (cont'd) ● CHANGES major changes to ports and the ports infrastructure (for ports committers, maintainers and other developers)

ports tree (cont'd) ● MOVED A list of (recently) moved or removed ports

FreeBSD ports system - GitHub

Search - make search (cont'd). Port: rsync-3.0.9_3. Path: /usr/ports/net/rsync. Info: Network file distribution/synchronization utility. Maint: [email protected].

426KB Sizes 9 Downloads 359 Views

Recommend Documents

}~TERTIARY PORTS
Mar 4, 2009 - yielded varying degrees of success. Until recently it has not ... computers, now permits the accurate, comprehensive, and economical testing of ...

routine management system - GitHub
10. Figure 4 - Sample Data Set of Routine Management System . .... platform apps, conventional software architectural design patterns may be adopted and ...

System Requirements Specification - GitHub
This section describes the scope of Project Odin, as well as an overview of the contents of the SRS doc- ument. ... .1 Purpose. The purpose of this document is to provide a thorough description of the requirements for Project Odin. .... Variables. â€

System Requirements Specification - GitHub
System Requirements Specification. Project Odin. Kyle Erwin. Joshua Cilliers. Jason van Hattum. Dimpho Mahoko. Keegan Ferrett. Note: This document is constantly under revision due to our chosen methodology, ... This section describes the scope of Pro

CodaLab Worker System - GitHub
The worker system consists of 3 components: • REST server: ... a ”check out” call which is used to tell the server that a worker is shutting down and prevent it from.

CBIR System - GitHub
Final result was a Matlab built software application, with an image database, that utilized ... The main idea is to integrate the strengths of content- and keyword-based image ..... In the following we present some of the best search results.

Open Vehicle Monitoring System - GitHub
Aug 14, 2013 - 10. CONFIGURE THE GPRS DATA CONNECTION (NEEDED FOR ...... Using the OVMS smartphone App (Android or Apple iOS), set Feature ...

Historical Query/Response System - GitHub
Feb 12, 2010 - developer website. Tick Query Examples. In order to query all the ticks for Google between 9 am and 12 pm on February 3, 2009, execute:.

Open Vehicle Monitoring System - GitHub
Feb 5, 2017 - GITHUB. 10. COMPILE AND FLASH YOUR FIRST FIRMWARE. 10. CHIPS USED .... If your laptop already has a RS232 port, then you can ... download your own forked repository from github to your local computer. Detailed ...

The Dissident File System - GitHub
Preferably compressed data like media files. Cryptographically secure ... Analysis of Adversary and Threats. Some attack ... Store sensitive data in free space?

Six-Ports - Del Mar North
the name) and can be used as a modulator, demodulator, network analyzer, or ..... Wideband, small, and cheap digital transceivers are in great demand.

What System Issues? System Issues General Structure - GitHub
First we make a domain ob ect. here we ... in this case, we specify a regular 100x100 grid over the .... ...and generally making your code assumption-free. Hence ...

IOV: a Blockchain Communication System - GitHub
to send a transaction or to query several different blockchains. We propose a solution to empower the end-user and remove the need to download multiple wallets, by providing a system that includes: 1. Blockchain Communication Protocol: a set of stand

System V Application Binary Interface - GitHub
pdf. The C++ object model that is expected to be followed is described in http: · 6. Intel386 ABI 1.2 – June ... Table 2.1 shows the correspondence between ISO C scalar types and the proces- sor scalar types. ... android.com/. 9. Intel386 ABI 1.2 .

System V Application Binary Interface - GitHub
pdf. The C++ object model that is expected to be followed is described in http: .... In addition to registers, each function has a frame on the run-time stack.

IOV: A Universal Value System - GitHub
Abstract. A Universal Value System would allow users to store and exchange multiple types of values without the need to download an electronic wallet each time a new blockchain is being created. The decentralization of blockchains has created a diver

Confusion Network Based System Combination for ... - GitHub
segmentation is not the best word segmentation for SMT,. ➢P-C Chang, et al. optimized ... 巴基斯坦说死不投诚. ➢ 巴基斯坦说死于投诚. 5. ' ' ' ( | ). ( | ) (1 ). ( | ) j i sem j i sur ... the output into words by different CWS too

DiFUSE - A Dissident File System - GitHub
Jun 6, 2016 - OS X, Linux, and FreeBSD [10]. The dissident file sys ..... ing bad areas in flash memory, July 10 2001. US Patent ... Analysing android's full disk.

The summary of Tibbo Project System - GitHub
To achieve an economical basic unit price, we kept the onboard circuitry to the necessary minimum. For example, there is no built-in power supply – the boards directly accept only regulated +5V power. Real- world power processing (12V, 24V, PoE, et

System V Application Binary Interface - GitHub
Jun 17, 2016 - X87, the 16-bit exponent plus 6 bytes of padding belongs to class X87UP. ..... Basically code models differ in addressing (absolute versus.

System V Application Binary Interface - GitHub
Jan 28, 2018 - 0.98 Various clarifications and fixes according to feedback from Sun, thanks to ...... and the signals specified by signal (BA_OS) as shown in table 3.1. ...... same as the result of R_X86_64_DTPMOD64 for the same symbol. 5This documen

System V Application Binary Interface - GitHub
Jul 3, 2015 - Intel MCU ABI 0.7 – July 3, 2015 – 7:58 .... devspecs/abi386-4.pdf, which describes the ABI for processors compati- ble with the Intel MCU ...

Six-Ports - Del Mar North
All of the wave is reflected back with no phase change.1. The zeroes and ones of the input data translate the. LO into a modulated waveform (RF) by using the reflection coefficients held by the reflection states. 1. As you might expect, G = zero is a

External Localization System for Mobile Robotics - GitHub
... the most known external localization reference is GPS; however, it ... robots [8], [9], [10], [11]. .... segments, their area ratio, and a more complex circularity .... The user just places ..... localization,” in IEEE Workshop on Advanced Robo