文書の過去の版を表示しています。


= 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> 

portmaster

portmaster は,ports で make && make install とかするのを適当に自動化してくれるコマンド.

昔は portupgrade というのがあったが,今は使われなくなっていると思われる.[2021-10-16]

新規 ports インストール

  • 新規に emacs をインストールする場合.
% sudo portmaster -D editors/emacs 
  • -D:毎度毎度 distfiles を消しますか,の質問がなくなる.
  • /usr/ports からの相対フォルダ名を指定する.

複数存在するバージョンの ports を,指定した方にする

例えば,lang/php72 と lang/php74 のように,複数 ports が存在していて,72 から 74 に明示的にアップグレードしたい場合.

% sudo portmaster -D -o lang/php74 lang/php72 
  • -o:新しくインストールしたい ports 名を指定する

(php や perl のように,影響範囲が広い ports の場合,php74 で始まる ports を全て再インストールしたり, pkg shlib と組み合わせて再インストールするケースがある.)

例)(OLD) 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

svn での ports tree の管理方法 [2021-10-16]

SVN ベースでの ports tree を最新にする方法.ただし,今後は git になると思われる.[2021-10-16]

  • 初回
% portsnap fetch extract update 
  • 二回目 or /usr/ports に情報がある状態 以降
% portsnap fetch update 

git での ports tree の管理方法 [2022-09-26]

sudo git clone -o freebsd https://git.FreeBSD.org/src.git /usr/src-13-stable

/usr/src-13-stable の部分は,/usr/src が一般的.

svn でのベースソースコードの管理方法 [2021-10-16] [2014-11-25]

古くは cvsup だったが,もう存在しないので svn のみ.

(2021 年ごろ,git に移行したはずだけど,[2021-10-16]時点で追って追ってない)

  • 以下のコマンド
% svn checkout https://svn.FreeBSD.org/base/stable/9 /usr/src

その他設定

FreeWnn の設定

  • ports でインストール。
  • /etc/rc.conf に以下の設定。
wnn_enable="YES"
wnn_flags="-a 0.0.0.0" 
  • 2行目を書いておくことで、ホスト外から接続できるようになる。
  • 上記設定は,グローバルにアクセス可能になってしまうので,やめた方が良いかと思われる.[2021-10-16]

cpu 温度を知る

# kldload coretemp
# sysctl -a | grep temperature
or 
# sysctl dev.cpu | 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

OLD(かなり古いメモ)

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.

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 
freebsd.1664194576.txt.gz · 最終更新: 2022/09/26 21:16 by skk
文書の先頭へ
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0