差分
このページの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}} | ||