目次

= FreeBSD / LM: [2024-09-05 19:13:19]

pkg

pkg は,[2021-10-16] の時点で少なくとも基本的なパッケージ管理ツール.

インストールされているパッケージ一覧,削除,version 情報,最新かどうか,セキュリティ勧告の出ているパッケージが入っていないかどうか,などができる.

pkg info

パッケージに関する情報を表示してくれるコマンド

pkg audit

セキュリティ勧告が出ていないかを確認するコマンド.

pkg shlib

.so のような共有ライブラリが,誰によってインストールされているのか,または,誰によって利用されているのか,を検索するためのコマンド.

pkg version

インストールされているパッケージのバージョンが最新かどうかを確認する.

pkg delete

インストールされているパッケージを削除する


portmaster

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

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

新規 ports インストール

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

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

% sudo portmaster -D -o lang/php74 lang/php72 

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

例)(OLD) emacs のバージョンを下げる


linux emulation [2023-09-07]

概要

FreeBSD の linux emulation は,Linux バイナリのシステムコールの番号や引数の差異を(カーネル内で?)変換し,FreeBSD バイナリとして実行する,というのが基本の機能.

emulation で動作させる際に,Linux バイナリな libc.so などが必要になる.これらのバイナリは /usr/lib/ などに入れるわけにはいかないので,/compat/ 以下に設置される.LD_LIBRARY_PATH を書き換えまくるのも大変なので,chroot/jail を使うケースが多い.LD_LIBRARY_PATH の書き換えでも動作しているようにも見える.

ユーザランドとしては,CentOS ベースと,Debian/Ubuntu ベースのものが両方ある模様.CentOS の方が昔からあるらしく,検索すると多く記述が出てくるが,Debian/Ubuntu ベースの方が最近は活発?なのか,今回は最終的に Ubuntu ベースで準備をした.

設定

以下を行なうことで,linux emulation 環境がインストールされる.

使い方

chroot して,linux 環境そのものに入る

# chroot /compat/ubuntu /bin/bash

linux binary を FreeBSD において実行できるようにする

OS 側(?)に,当該バイナリが Linux バイナリであることを宣言する為の操作.これを実行しないと,ELF 番号がおかしいよ,というエラーが出てしまう.

% brandelf -t Linux <linux binary>

参考


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

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

% portsnap fetch extract update 
% portsnap fetch update 

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

新規の場合 [2024-09-05] [2022-11-04]

まず,git レポジトリを全てとってくる.

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

stable/14

stable/14 にしたい場合.

sudo git checkout stable/14 

アップデート [2022-11-04]

sudo git pull 

svn での src tree の管理方法 [2021-10-16] [2014-11-25]

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

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

% svn checkout https://svn.FreeBSD.org/base/stable/9 /usr/src

その他設定

ユーザ情報の移行 [2022-09-26]

- 元ネタ:http://www.lifewithunix.jp/notes/2015/09/21/freebsd-10-2-how-to-move-all-accounts-to-new-system/

/usr/sbin/pwd_mkdb -p /etc/master.passwd

- /etc/group は移行されないので,別途手動でコピーする必要あり.

FreeWnn の設定

wnn_enable="YES"
wnn_flags="-a 0.0.0.0" 

cpu 温度を知る

# kldload coretemp
# sysctl -a | grep temperature
or 
# sysctl dev.cpu | grep temperature 

geom 使ってファイルシステム回りを便利に.

ssh で X を飛ばす

一つのプロセスで利用できる最大メモリ容量を増やす

/boot/loader.conf に以下の記述

kern.maxdsiz="2G"

値の部分は適宜変更のこと.

ホストの名前

133.27.xxx.xxx hoge.ht.sfc.keio.ac.jp 

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

リンク

http://ino-www.jaist.ac.jp/members/isogaki/fbsd-dummynet.html

コマンド

ゾンビプロセスの殺し方 [2023-09-07]

取り急ぎ:https://xn--v1tz8a.jp/2013/02/12/freebsd%E3%81%A7%E3%82%BE%E3%83%B3%E3%83%93%E3%83%97%E3%83%AD%E3%82%BB%E3%82%B9%E3%82%92%E6%AE%BA%E3%81%99/

プロセスごとに利用している port 番号を把握する

% sockstat 

package を使って,バイナリインストールしまくる

% export PACKAGESITE=ftp2.jp.freebsd.org
# pkg_add -r nkf
# pkg_search nkf

iso マウント方法

$ mdconfig -a -t vnode -f image.iso -u 0
$ mount -t cd9660 -o ro /dev/md0 /mount_point
$ umount /mount_point
$ mdconfig -d -u 0

tar でファイルコピーの方法

% tar cvf - hoge | (cd /tmp/backup ; tar xvf -)

portupgrade で、メジャーバージョンアップ

# portupgrade -o www/apache22 apache 

ports でセキュリティチェックを外して、とにかくインストールさせたい

DISABLE_VULNERABILITIES=yes 

をMakefileに書いておく。

tunefs

# tunefs -n enable /dev/ad0
# tunefs -n disable /dev/ad0

OLD(かなり古いメモ)

python の取扱 (2012/11時点)

PYTHON_VERSION=2.7
PYTHON_DEFAULT_VERSION=2.7

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.
% 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 

このページへのアクセス 今日: 2 / 昨日: 1 総計: 212