差分
このページの2つのバージョン間の差分を表示します。
| 両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
| freebsd [2021/10/16 22:13] – skk | freebsd [2024/09/09 13:41] (現在) – skk | ||
|---|---|---|---|
| 行 1: | 行 1: | ||
| - | = [[FreeBSD]] | + | = [[FreeBSD]] |
| + | ~~NOCACHE~~ | ||
| ====== pkg ====== | ====== pkg ====== | ||
| 行 5: | 行 6: | ||
| インストールされているパッケージ一覧,削除,version 情報,最新かどうか,セキュリティ勧告の出ているパッケージが入っていないかどうか,などができる. | インストールされているパッケージ一覧,削除,version 情報,最新かどうか,セキュリティ勧告の出ているパッケージが入っていないかどうか,などができる. | ||
| + | |||
| + | ===== pkg info ===== | ||
| + | |||
| + | パッケージに関する情報を表示してくれるコマンド | ||
| + | |||
| + | * パッケージによりインストールされた shared libraries を表示する< | ||
| + | % pkg info -b ja-FreeWnn-lib</ | ||
| + | * パッケージによりインストールされた全てのファイルを表示する< | ||
| + | % pkg info -l ja-FreeWnn-lib</ | ||
| + | |||
| ===== pkg audit ===== | ===== pkg audit ===== | ||
| 行 10: | 行 21: | ||
| セキュリティ勧告が出ていないかを確認するコマンド. | セキュリティ勧告が出ていないかを確認するコマンド. | ||
| - | * 現在ローカルに保持されている情報を元に,状況を確認する | + | * 現在ローカルに保持されている情報を元に,状況を確認する< |
| - | <code bash> | + | % pkg audit</ |
| - | % pkg audit | + | |
| - | </ | + | |
| - | * 最新の情報を取得した上で状況を確認する(要 root) | + | * 最新の情報を取得した上で状況を確認する(要 root)< |
| - | <code bash> | + | % sudo pkg audit -F </ |
| - | % sudo pkg audit -F | + | |
| - | </ | + | |
| ===== pkg shlib ===== | ===== pkg shlib ===== | ||
| 行 24: | 行 31: | ||
| .so のような共有ライブラリが,誰によってインストールされているのか,または,誰によって利用されているのか,を検索するためのコマンド. | .so のような共有ライブラリが,誰によってインストールされているのか,または,誰によって利用されているのか,を検索するためのコマンド. | ||
| - | * hogehoge.so.1.1.1 を提供しているパッケージ名を表示. | + | * hogehoge.so.1.1.1 を提供しているパッケージ名を表示.< |
| - | <code bash> | + | % pkg shlib -P hogehoge.so.1.1.1</ |
| - | % pkg shlib -P hogehoge.so.1.1.1 | + | |
| - | </ | + | |
| - | * hogehoge.so.1.1.1 を利用しているパッケージ名を表示. | + | * hogehoge.so.1.1.1 を利用しているパッケージ名を表示.< |
| - | <code bash> | + | % pkg shlib -R hogehoge.so.1.1.1</ |
| - | % pkg shlib -R hogehoge.so.1.1.1 | + | |
| - | </ | + | |
| * -q をつけることで,quiet 出力になる. | * -q をつけることで,quiet 出力になる. | ||
| 行 40: | 行 43: | ||
| インストールされているパッケージのバージョンが最新かどうかを確認する. | インストールされているパッケージのバージョンが最新かどうかを確認する. | ||
| - | * インストールされているパッケージのバージョンが最新かどうかを確認する. | + | * インストールされているパッケージのバージョンが最新かどうかを確認する.< |
| - | <code bash> | + | % pkg version</ |
| - | % pkg version | + | |
| - | </ | + | |
| ===== pkg delete ===== | ===== pkg delete ===== | ||
| 行 49: | 行 50: | ||
| インストールされているパッケージを削除する | インストールされているパッケージを削除する | ||
| - | * インストールされているパッケージを削除する.< | + | * インストールされているパッケージを削除する.< |
| + | % pkg delete <package name> </ | ||
| + | |||
| + | ------------------------------------------------------------ | ||
| + | ====== portmaster ====== | ||
| + | |||
| + | portmaster は,ports で make && make install とかするのを適当に自動化してくれるコマンド. | ||
| + | |||
| + | 昔は portupgrade というのがあったが,今は使われなくなっていると思われる.[2021-10-16] | ||
| + | |||
| + | ===== 新規 ports インストール ===== | ||
| + | |||
| + | * 新規に emacs をインストールする場合.< | ||
| + | % sudo portmaster -D editors/ | ||
| + | * -D:毎度毎度 distfiles を消しますか,の質問がなくなる. | ||
| + | * /usr/ports からの相対フォルダ名を指定する. | ||
| + | |||
| + | ===== 複数存在するバージョンの ports を,指定した方にする ===== | ||
| + | 例えば,lang/ | ||
| <code bash> | <code bash> | ||
| - | % pkg delete <package name> | + | % sudo portmaster -D -o lang/php74 lang/ |
| </ | </ | ||
| + | * -o:新しくインストールしたい ports 名を指定する | ||
| + | (php や perl のように,影響範囲が広い ports の場合,php74 で始まる ports を全て再インストールしたり, pkg shlib と組み合わせて再インストールするケースがある.) | ||
| + | ==== 例)(OLD) emacs のバージョンを下げる | ||
| + | * / | ||
| + | # portmaster -o editors/ | ||
| + | or | ||
| + | # env DISABLE_CONFLICTS=1 portupgrade -fo editors/ | ||
| + | or | ||
| + | # pkg set -o editors/ | ||
| + | |||
| + | * これをやった後、関連 elisp も再インストールする。apel あたりからはじめておくと関連する elisp をある程度再帰的にダウングレードしてくれる。< | ||
| + | # portupgrade -rf editors/ | ||
| + | # portupgrade -rf editors/ | ||
| ------------------------------------------------------------ | ------------------------------------------------------------ | ||
| - | ====== | + | |
| - | ===== java が以下のエラーで落ちる (keytool, jarsigner | + | ====== |
| + | |||
| + | ===== 概要 ===== | ||
| + | |||
| + | FreeBSD の linux emulation は,Linux バイナリのシステムコールの番号や引数の差異を(カーネル内で?)変換し,FreeBSD バイナリとして実行する,というのが基本の機能. | ||
| + | |||
| + | emulation で動作させる際に,Linux バイナリな libc.so などが必要になる.これらのバイナリは /usr/lib/ などに入れるわけにはいかないので,/ | ||
| + | |||
| + | ユーザランドとしては,CentOS ベースと,Debian/ | ||
| + | |||
| + | ===== 設定 ===== | ||
| + | |||
| + | 以下を行なうことで,linux emulation 環境がインストールされる. | ||
| + | |||
| + | * / | ||
| + | * # service ubuntu start | ||
| + | * kldstat にて,以下のカーネルモジュールがロードされているか確認.かっこ内は,確認しきれてないが linux emulation 設定後に増えているので怪しい module たち. | ||
| + | * linux_common.ko | ||
| + | * linux64.ko | ||
| + | * linux.ko | ||
| + | * fdfescfs.ko | ||
| + | * linprocfs.ko | ||
| + | * linsysfs.ko | ||
| + | * (netlink.ko) | ||
| + | * (pty.ko) | ||
| + | * (nullfs.ko) | ||
| + | * sysctl -a で出てくる compat.linux.emul_path に / | ||
| + | * ports/pkg にて sysutils/ | ||
| + | * debootstrap --arch=amd64 --no-check-gpg jammy / | ||
| + | * かなり時間がかかる. | ||
| + | * service ubuntu restart / onestop/ | ||
| + | |||
| + | ==== 使い方 ==== | ||
| + | |||
| + | === chroot して,linux 環境そのものに入る === | ||
| < | < | ||
| - | % java -version | + | # chroot / |
| - | Error occurred during initialization of VM | + | |
| - | Could not reserve enough space for object heap | + | |
| - | Could not create the Java virtual machine. | + | |
| </ | </ | ||
| - | * 原因は,どうも jvm をサーバーモードで立ち上げる際,大量のメモリを確保しようとして,メモリが足りなくなる?ことらしい.(mmapの実装上の問題,実メモリが 4GB あること,などなど原因らしきものは出てきたけど,いまいち不明.) | + | |
| - | * よって,クライアントモードで動かしてあげると動作するかも. | + | === linux binary |
| + | |||
| + | OS 側(?)に,当該バイナリが | ||
| < | < | ||
| - | % java -client -version | + | % brandelf |
| - | java version " | + | |
| - | 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 | + | * https:// |
| + | * https:// | ||
| + | |||
| + | ------------------------------------------------------------ | ||
| + | |||
| + | ====== svn での | ||
| + | |||
| + | SVN ベースでの ports tree を最新にする方法.ただし,今後は git になると思われる.[2021-10-16] | ||
| + | |||
| + | * 初回 | ||
| + | < | ||
| + | % portsnap fetch extract update | ||
| </ | </ | ||
| + | * 二回目 or /usr/ports に情報がある状態 以降 | ||
| + | <code bash> | ||
| + | % portsnap fetch update | ||
| + | </ | ||
| - | ====== | + | ------------------------------------------------------------ |
| - | ===== FreeWnn | + | |
| - | * ports で普通にインストール。 | + | ====== |
| - | * / | + | |
| - | < | + | ===== 新規の場合 [2024-09-05] [2022-11-04] |
| - | wnn_enable=" | + | まず,git レポジトリを全てとってくる. |
| - | wnn_flags=" | + | |
| + | < | ||
| + | sudo git clone -o freebsd https://git.FreeBSD.org/src.git /usr/src | ||
| </ | </ | ||
| - | * 2行目を書いておくことで、ホスト外から接続できるようになる。 | ||
| - | ===== python の取扱 (2012/11時点) | + | ===== stable/14 ===== |
| - | * python 2.x / 3.x の ports が二つともある. | + | stable/14 にしたい場合. |
| - | * 間違えて 3.x がデフォルトになっている場合,/ | + | |
| - | < | + | < |
| - | PYTHON_VERSION=2.7 | + | sudo git checkout stable/ |
| - | PYTHON_DEFAULT_VERSION=2.7 | + | |
| </ | </ | ||
| - | * これが無視されてしまう場合は,/ | ||
| - | * / | ||
| - | ===== emacs のバージョンを下げておく | + | ===== アップデート [2022-11-04] |
| - | * / | + | < |
| - | < | + | sudo git pull |
| - | # portmaster -o editors/ | + | |
| - | or | + | |
| - | # env DISABLE_CONFLICTS=1 portupgrade -fo editors/ | + | |
| - | or | + | |
| - | # pkg set -o editors/ | + | |
| </ | </ | ||
| - | * これをやった後、関連 elisp も再インストールする。apel あたりからはじめておくと関連する elisp をある程度再帰的にダウングレードしてくれる。 | + | |
| - | < | + | ====== svn での src tree の管理方法 [2021-10-16] [2014-11-25] ====== |
| - | # portupgrade -rf editors/apel | + | 古くは cvsup だったが,もう存在しないので svn のみ. |
| - | # portupgrade -rf editors/tamago | + | |
| + | (2021 年ごろ,git に移行したはずだけど,[2021-10-16]時点で追って追ってない) | ||
| + | |||
| + | * 参照先 url | ||
| + | * https:// | ||
| + | |||
| + | * 以下のコマンド | ||
| + | < | ||
| + | % svn checkout https://svn.FreeBSD.org/ | ||
| </ | </ | ||
| + | * mirror サイトは,以下を参照. | ||
| + | * https:// | ||
| + | * stable/9, stable/10, release/ | ||
| + | * release 番号は http:// | ||
| + | * base/ | ||
| + | * svn checkout https:// | ||
| + | * 一度,checkout したら後は update すれば OK. | ||
| + | |||
| + | |||
| + | ------------------------------------------------------------ | ||
| + | |||
| + | ====== その他設定 | ||
| + | ===== ユーザ情報の移行 [2022-09-26] ===== | ||
| + | - 元ネタ:http:// | ||
| + | |||
| + | <code bash> | ||
| + | / | ||
| + | </ | ||
| + | |||
| + | - /etc/group は移行されないので,別途手動でコピーする必要あり. | ||
| + | |||
| + | ===== FreeWnn の設定 | ||
| + | |||
| + | * ports でインストール。 | ||
| + | * / | ||
| + | |||
| + | < | ||
| + | wnn_enable=" | ||
| + | wnn_flags=" | ||
| + | </ | ||
| + | * 2行目を書いておくことで、ホスト外から接続できるようになる。 | ||
| + | * 上記設定は,グローバルにアクセス可能になってしまうので,やめた方が良いかと思われる.[2021-10-16] | ||
| ===== cpu 温度を知る | ===== cpu 温度を知る | ||
| 行 121: | 行 234: | ||
| # kldload coretemp | # kldload coretemp | ||
| # sysctl -a | grep temperature | # sysctl -a | grep temperature | ||
| + | or | ||
| + | # sysctl dev.cpu | grep temperature | ||
| </ | </ | ||
| * 別途, ipmi という機構もあるみたいだが,これはサーバマシン向け. | * 別途, ipmi という機構もあるみたいだが,これはサーバマシン向け. | ||
| 行 130: | 行 245: | ||
| * サーバー側では,xauth が必要. | * サーバー側では,xauth が必要. | ||
| * クライアントでは,ssh -XY. | * クライアントでは,ssh -XY. | ||
| + | |||
| ===== 一つのプロセスで利用できる最大メモリ容量を増やす | ===== 一つのプロセスで利用できる最大メモリ容量を増やす | ||
| / | / | ||
| 行 136: | 行 252: | ||
| </ | </ | ||
| 値の部分は適宜変更のこと. | 値の部分は適宜変更のこと. | ||
| + | |||
| ===== ホストの名前 | ===== ホストの名前 | ||
| * hostname コマンドで,完全名 (hoge.ht.sfc.keio.ac.jp) を指定. | * hostname コマンドで,完全名 (hoge.ht.sfc.keio.ac.jp) を指定. | ||
| 行 157: | 行 274: | ||
| ===== コマンド | ===== コマンド | ||
| + | ==== ゾンビプロセスの殺し方 [2023-09-07] ==== | ||
| + | 取り急ぎ:https:// | ||
| + | |||
| ==== プロセスごとに利用している port 番号を把握する | ==== プロセスごとに利用している port 番号を把握する | ||
| < | < | ||
| 行 193: | 行 313: | ||
| % tar cvf - hoge | (cd /tmp/backup ; tar xvf -) | % tar cvf - hoge | (cd /tmp/backup ; tar xvf -) | ||
| </ | </ | ||
| + | |||
| ==== portupgrade で、メジャーバージョンアップ | ==== portupgrade で、メジャーバージョンアップ | ||
| < | < | ||
| 行 214: | 行 335: | ||
| # tunefs -n disable /dev/ad0 | # tunefs -n disable /dev/ad0 | ||
| </ | </ | ||
| + | |||
| + | ------------------------------------------------------------ | ||
| + | ====== OLD(かなり古いメモ) | ||
| + | |||
| + | ===== python の取扱 (2012/ | ||
| + | * python 2.x / 3.x の ports が二つともある. | ||
| + | * 間違えて 3.x がデフォルトになっている場合,/ | ||
| + | < | ||
| + | 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. | ||
| + | </ | ||
| + | * 原因は,どうも jvm をサーバーモードで立ち上げる際,大量のメモリを確保しようとして,メモリが足りなくなる?ことらしい.(mmapの実装上の問題,実メモリが 4GB あること,などなど原因らしきものは出てきたけど,いまいち不明.) | ||
| + | * よって,クライアントモードで動かしてあげると動作するかも. | ||
| + | < | ||
| + | % java -client -version | ||
| + | java version " | ||
| + | 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 | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | このページへのアクセス | ||
| + | 今日: {{counter|today}} / 昨日: {{counter|yesterday}} | ||
| + | 総計: {{counter|total}} | ||