文書の過去の版を表示しています。
目次
= FreeBSD
pkg
pkg は,[2021-10-16] の時点で少なくとも基本的なパッケージ管理ツール.
インストールされているパッケージ一覧,削除,version 情報,最新かどうか,セキュリティ勧告の出ているパッケージが入っていないかどうか,などができる.
pkg audit
セキュリティ勧告が出ていないかを確認するコマンド.
- 現在ローカルに保持されている情報を元に,状況を確認する
% pkg audit
- 最新の情報を取得した上で状況を確認する(要 root)
% sudo pkg audit -F
pkg shlib
.so のような共有ライブラリが,誰によってインストールされているのか,または,誰によって利用されているのか,を検索するためのコマンド.
- hogehoge.so.1.1.1 を提供しているパッケージ名を表示.
% pkg shlib -P hogehoge.so.1.1.1
- hogehoge.so.1.1.1 を利用しているパッケージ名を表示.
% pkg shlib -R hogehoge.so.1.1.1
- -q をつけることで,quiet 出力になる.
pkg version
インストールされているパッケージのバージョンが最新かどうかを確認する.
- インストールされているパッケージのバージョンが最新かどうかを確認する.
% pkg version
pkg delete
インストールされているパッケージを削除する
- インストールされているパッケージを削除する.<package name> は,pkg version で確認できたパッケージ名から,バージョン番号を取り除いたものや,/usr/ports 以下のフォルダ名と同一.
% pkg delete <package name>
java
java が以下のエラーで落ちる (keytool, jarsigner も同様)
% java -version Error occurred during initialization of VM Could not reserve enough space for object heap Could not create the Java virtual machine.
- 原因は,どうも jvm をサーバーモードで立ち上げる際,大量のメモリを確保しようとして,メモリが足りなくなる?ことらしい.(mmapの実装上の問題,実メモリが 4GB あること,などなど原因らしきものは出てきたけど,いまいち不明.)
- よって,クライアントモードで動かしてあげると動作するかも.
% java -client -version java version "1.6.0_17" Java(TM) SE Runtime Environment (build 1.6.0_17-b04) Java HotSpot(TM) Client VM (build 14.3-b01, mixed mode)
jdk6 で jdk5 用のクラスファイルを生成したい。
% javac -target 1.5 *.java
設定
FreeWnn の設定
- ports で普通にインストール。
- /etc/rc.conf に以下の設定。
wnn_enable="YES" wnn_flags="-a 0.0.0.0"
- 2行目を書いておくことで、ホスト外から接続できるようになる。
python の取扱 (2012/11時点)
- python 2.x / 3.x の ports が二つともある.
- 間違えて 3.x がデフォルトになっている場合,/etc/make.conf に以下を記述しておくと良いらしい.
PYTHON_VERSION=2.7 PYTHON_DEFAULT_VERSION=2.7
- これが無視されてしまう場合は,/usr/local/bin/python を書き換える.
- /usr/local/bin/python は,/usr/local/bin/python3.1 or python2.7 への hard link なので,削除して ln コマンドでリンクを作ってやればOK.
emacs のバージョンを下げておく
- /usr/ports/UPDATING を見る。
# portmaster -o editors/emacs23 editors/emacs or # env DISABLE_CONFLICTS=1 portupgrade -fo editors/emacs23 editors/emacs or # pkg set -o editors/emacs:editors/emacs23
- これをやった後、関連 elisp も再インストールする。apel あたりからはじめておくと関連する elisp をある程度再帰的にダウングレードしてくれる。
# portupgrade -rf editors/apel # portupgrade -rf editors/tamago
cpu 温度を知る
# kldload coretemp # sysctl -a | grep temperature
- 別途, ipmi という機構もあるみたいだが,これはサーバマシン向け.
geom 使ってファイルシステム回りを便利に.
ssh で X を飛ばす
- サーバー側では,xauth が必要.
- クライアントでは,ssh -XY.
一つのプロセスで利用できる最大メモリ容量を増やす
/boot/loader.conf に以下の記述
kern.maxdsiz="2G"
値の部分は適宜変更のこと.
ホストの名前
- hostname コマンドで,完全名 (hoge.ht.sfc.keio.ac.jp) を指定.
- /etc/hosts には,hoge のみを記述.
- hosts に書きたければ,
133.27.xxx.xxx hoge.ht.sfc.keio.ac.jp
- のように,固定 IP と完全名をマッピングさせる.
- こうすることで,gethostname() あたりを使ったプログラミングが楽になる.
dummynet 設定
sysctl の値
net.link.ether.bridge.config: em0:1,dc0:1, net.link.ether.bridge_cfg: em0:1,dc0:1, net.inet.ip.forwarding: 1
リンク
コマンド
プロセスごとに利用している port 番号を把握する
% sockstat
package を使って,バイナリインストールしまくる
- ダウンロード先のサーバを指定してから,pkg_add コマンドでインストール.
% export PACKAGESITE=ftp2.jp.freebsd.org # pkg_add -r nkf
- package を探したいときは,pkg_search をインストールしてから,探す.
# pkg_search nkf
iso マウント方法
- mount
$ mdconfig -a -t vnode -f image.iso -u 0 $ mount -t cd9660 -o ro /dev/md0 /mount_point
- umount
$ umount /mount_point $ mdconfig -d -u 0
tar でファイルコピーの方法
% tar cvf - hoge | (cd /tmp/backup ; tar xvf -)
portupgrade で、メジャーバージョンアップ
# portupgrade -o www/apache22 apache
- (apache2.0 → apache2.2の例)
ports でセキュリティチェックを外して、とにかくインストールさせたい
DISABLE_VULNERABILITIES=yes
をMakefileに書いておく。
tunefs
- soft update を有効にする
# tunefs -n enable /dev/ad0
- soft update を無効にする
# tunefs -n disable /dev/ad0