= FreeBSD / LM: [2024-09-05 19:13:19]
pkg は,[2021-10-16] の時点で少なくとも基本的なパッケージ管理ツール.
インストールされているパッケージ一覧,削除,version 情報,最新かどうか,セキュリティ勧告の出ているパッケージが入っていないかどうか,などができる.
パッケージに関する情報を表示してくれるコマンド
% pkg info -b ja-FreeWnn-lib
% pkg info -l ja-FreeWnn-lib
セキュリティ勧告が出ていないかを確認するコマンド.
% pkg audit
% sudo pkg audit -F
.so のような共有ライブラリが,誰によってインストールされているのか,または,誰によって利用されているのか,を検索するためのコマンド.
% pkg shlib -P hogehoge.so.1.1.1
% pkg shlib -R hogehoge.so.1.1.1
インストールされているパッケージのバージョンが最新かどうかを確認する.
% pkg version
インストールされているパッケージを削除する
% pkg delete <package name>
portmaster は,ports で make && make install とかするのを適当に自動化してくれるコマンド.
昔は portupgrade というのがあったが,今は使われなくなっていると思われる.[2021-10-16]
% sudo portmaster -D editors/emacs
例えば,lang/php72 と lang/php74 のように,複数 ports が存在していて,72 から 74 に明示的にアップグレードしたい場合.
% sudo portmaster -D -o lang/php74 lang/php72
(php や perl のように,影響範囲が広い ports の場合,php74 で始まる ports を全て再インストールしたり, pkg shlib と組み合わせて再インストールするケースがある.)
# 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
# portupgrade -rf editors/apel # portupgrade -rf editors/tamago
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 /compat/ubuntu /bin/bash
OS 側(?)に,当該バイナリが Linux バイナリであることを宣言する為の操作.これを実行しないと,ELF 番号がおかしいよ,というエラーが出てしまう.
% brandelf -t Linux <linux binary>
SVN ベースでの ports tree を最新にする方法.ただし,今後は git になると思われる.[2021-10-16]
% portsnap fetch extract update
% portsnap fetch update
まず,git レポジトリを全てとってくる.
sudo git clone -o freebsd https://git.FreeBSD.org/src.git /usr/src
stable/14 にしたい場合.
sudo git checkout stable/14
sudo git pull
古くは cvsup だったが,もう存在しないので svn のみ.
(2021 年ごろ,git に移行したはずだけど,[2021-10-16]時点で追って追ってない)
% svn checkout https://svn.FreeBSD.org/base/stable/9 /usr/src
- 元ネタ: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 は移行されないので,別途手動でコピーする必要あり.
wnn_enable="YES" wnn_flags="-a 0.0.0.0"
# kldload coretemp # sysctl -a | grep temperature or # sysctl dev.cpu | grep temperature
/boot/loader.conf に以下の記述
kern.maxdsiz="2G"
値の部分は適宜変更のこと.
133.27.xxx.xxx hoge.ht.sfc.keio.ac.jp
net.link.ether.bridge.config: em0:1,dc0:1, net.link.ether.bridge_cfg: em0:1,dc0:1, net.inet.ip.forwarding: 1
% sockstat
% export PACKAGESITE=ftp2.jp.freebsd.org # pkg_add -r nkf
# pkg_search nkf
$ 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 cvf - hoge | (cd /tmp/backup ; tar xvf -)
# portupgrade -o www/apache22 apache
DISABLE_VULNERABILITIES=yes
をMakefileに書いておく。
# tunefs -n enable /dev/ad0
# tunefs -n disable /dev/ad0
PYTHON_VERSION=2.7 PYTHON_DEFAULT_VERSION=2.7
% 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)
% javac -target 1.5 *.java
このページへのアクセス 今日: 2 / 昨日: 1 総計: 212