Skip to content

Instantly share code, notes, and snippets.

@tomoh1r
Last active December 29, 2015 03:09
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save tomoh1r/7606149 to your computer and use it in GitHub Desktop.
Save tomoh1r/7606149 to your computer and use it in GitHub Desktop.
FreeBSD

FreeBSD

目次

FreeBSD

リリース

build config

ports のビルド時の設定を /etc/make.conf で設定可能。

記法

インデントはできない。半角スペースもハードタブも。

Makefile で設定する値を設定する。

設定例

# 対象の ports ディレクトリ
PORTSDIR=/usr/ports

# GCC に限定する ports {{{
GCC_BUILD_PORTS_LIST = \
emulators/virtualbox-ose-additions \
sysutils/lsof \
devel/kBuild
# }}}

# Clang の設定をしない ports {{{
CLANG_NO_USE_LIST =\
lang/gcc
# }}}

### Clang {{{
.for _DIR in ${CLANG_NO_USE_LIST}
.if ! ${.CURDIR} == ${PORTSDIR}/${_DIR}
CC=clang
CXX=clang++
CPP=clang-cpp
NO_WERROR=
WERROR=
.endif
.endfor
# }}}

### GCC {{{
.for _DIR in ${GCC_BUILD_PORTS_LIST}
.if ${.CURDIR} == ${PORTSDIR}/${_DIR}
USE_GCC=4.6+
CC=gcc46
CXX=g++46
CPP=cpp46
.undef NO_WERROR
.undef WERROR
.endif
.endfor
# }}}

# pkgng
WITH_PKGNG=yes

参考

ccache / distcc

ccache とは、 C または C++ コンパイラが出力するデータをキャッシュするソフトウェア開発ツールである。

distcc とは、 コンピュータネットワーク上での分散コンピューティングを利用し、 ソースコードのコンパイル速度を改善するツールである。

buildworld

  1. svnup
$ sudoedit /usr/local/etc/svnup.conf
$ sudo svnup stable -4
  1. kernel config
# cd /usr/src/sys/amd64/conf
# mkdir /root/kernels
# cp GENERIC /root/kernels/MYKERNEL
# ln -s /root/kernels/MYKERNEL
# vi /root/kernels/MYKERNEL
  1. kernel build / install
# cd /usr/src
# make buildkernel KERNCONF=MYKERNEL
# make installkernel KERNCONF=MYKERNEL

ports / pkg

FreeBSD のプログラム管理のシステムとして、 ports/pkg*/pkg がある。

ports はソースコードからコンパイルする。 pkg*/pkg はネイティブファイルをダウンロードし、インストールする。

以下で記述する portmaster は ports 向け管理ツール。 また、 pkg は pkg 向け管理ツール。

プログラムの検索方法

port:

unknown

pkg:

pkg search <query>

portmaster

portmaster -L インストール、アップデート可能な一覧
portmaster -a インストール済の port 全部アップデート
portmaster -af 再構築
portmaster shells/bash インストールなど
env BATCH=yes PAGER=cat portmaster -D -G --no-confirm -a 全自動更新
portmaster -e アンインストール

pkg

pkg update リモートリポジトリ取得
pkg search <query> 検索
pkg install <program_name> インストール
pkg stat 統計情報
pkg audit セキュリティ情報

参考

Linux emulation

$ sudo portmaster emulators/linux_base-gentoo-stage3
$ sudo sh -c "echo 'linux_enable=\"YES\"' >> /etc/rc.conf"
$ sudo mkdir -p /compat/linux/proc
$ sudo sh -c "echo 'linprocfs /compat/linux/proc linprocfs rw 0 0' >> /etc/fstab"
$ sudo sh -c "echo 'proc     /proc     proc     rw     0     0' >> /compat/linux/etc/fstab"

Desktop

LXDE のインストール

$ sudo pkg install xorg ja-font-std ja-font-vlgothic ja-font-takao ja-scim-anthy
$ sudo pkg install lxde-meta
$ sudo pkg install slim

設定

# Xorg -configure
# cp ~/xorg.conf.new /etc/X11/xorg.conf

# cp ~/xorg.conf.new /etc/X11/xorg.conf

「Section "Module"」
Load  "freetype"
「Section "Files"」
FontPath  "/usr/local/lib/X11/fonts/bitstream-vera/"

/etc/rc.conf
dbus_enable="YES"
hald_enable="YES"
polkitd_enable="YES"
slim_enable="YES"

/usr/local/etc/PolicyKit/PolicyKit.conf
<match user="root|(追加するユーザー名)">
  <return result="yes"/>
</match>

startx

Virtualbox GUEST Addon のインストール

emulators/virtualbox-ose-additions が入らないので飛ばす

sudo pkg install virtualbox-ose

参照

jail

仮想 FreeBSD マシンを作成する機能。

mount_nullfs

シンボリックリンクみたいにディレクトリを別のディレクトリとしてマウントできる。

シンボリックリンクと異なり、通常のディレクトリと同様に扱うことができる。

ports を共有するために利用するけど、 readonly なのか不明。

参考

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment