差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
freebsd [2021/10/16 22:13] skkfreebsd [2024/09/09 13:41] (現在) skk
行 1: 行 1:
-= [[FreeBSD]]+= [[FreeBSD]] / LM: [2024-09-05 19:13:19] 
 +~~NOCACHE~~
  
 ====== pkg ====== ====== pkg ======
行 5: 行 6:
  
 インストールされているパッケージ一覧,削除,version 情報,最新かどうか,セキュリティ勧告の出ているパッケージが入っていないかどうか,などができる. インストールされているパッケージ一覧,削除,version 情報,最新かどうか,セキュリティ勧告の出ているパッケージが入っていないかどうか,などができる.
 +
 +===== pkg info =====
 +
 +パッケージに関する情報を表示してくれるコマンド
 +
 +  * パッケージによりインストールされた shared libraries を表示する<code bash>
 +% pkg info -b ja-FreeWnn-lib</code>
 +  * パッケージによりインストールされた全てのファイルを表示する<code bash>
 +% pkg info -l ja-FreeWnn-lib</code>
 +
  
 ===== pkg audit ===== ===== pkg audit =====
行 10: 行 21:
 セキュリティ勧告が出ていないかを確認するコマンド. セキュリティ勧告が出ていないかを確認するコマンド.
  
-  * 現在ローカルに保持されている情報を元に,状況を確認する +  * 現在ローカルに保持されている情報を元に,状況を確認する<code bash> 
-<code bash> +% pkg audit</code>
-% pkg audit +
-</code>+
  
-  * 最新の情報を取得した上で状況を確認する(要 root) +  * 最新の情報を取得した上で状況を確認する(要 root)<code bash> 
-<code bash> +% sudo pkg audit -F </code>
-% sudo pkg audit -F  +
-</code>+
  
 ===== pkg shlib ===== ===== pkg shlib =====
行 24: 行 31:
 .so のような共有ライブラリが,誰によってインストールされているのか,または,誰によって利用されているのか,を検索するためのコマンド. .so のような共有ライブラリが,誰によってインストールされているのか,または,誰によって利用されているのか,を検索するためのコマンド.
  
-  * hogehoge.so.1.1.1 を提供しているパッケージ名を表示. +  * hogehoge.so.1.1.1 を提供しているパッケージ名を表示.<code bash> 
-<code bash> +% pkg shlib -P hogehoge.so.1.1.1</code>
-% pkg shlib -P hogehoge.so.1.1.1 +
-</code>+
  
-  * hogehoge.so.1.1.1 を利用しているパッケージ名を表示. +  * hogehoge.so.1.1.1 を利用しているパッケージ名を表示.<code bash> 
-<code bash> +% pkg shlib -R hogehoge.so.1.1.1</code>
-% pkg shlib -R hogehoge.so.1.1.1 +
-</code>+
  
   * -q をつけることで,quiet 出力になる.   * -q をつけることで,quiet 出力になる.
行 40: 行 43:
 インストールされているパッケージのバージョンが最新かどうかを確認する. インストールされているパッケージのバージョンが最新かどうかを確認する.
  
-  * インストールされているパッケージのバージョンが最新かどうかを確認する. +  * インストールされているパッケージのバージョンが最新かどうかを確認する.<code bash> 
-<code bash> +% pkg version</code>
-% pkg version +
-</code>+
  
 ===== pkg delete ===== ===== pkg delete =====
行 49: 行 50:
 インストールされているパッケージを削除する インストールされているパッケージを削除する
  
-  * インストールされているパッケージを削除する.<package name> は,pkg version で確認できたパッケージ名から,バージョン番号を取り除いたものや,/usr/ports 以下のフォルダ名と同一.+  * インストールされているパッケージを削除する.<package name> は,pkg version で確認できたパッケージ名から,バージョン番号を取り除いたものや,/usr/ports 以下のフォルダ名と同一.<code bash> 
 +% pkg delete <package name> </code> 
 + 
 +------------------------------------------------------------ 
 +====== portmaster ====== 
 + 
 +portmaster は,ports で make && make install とかするのを適当に自動化してくれるコマンド. 
 + 
 +昔は portupgrade というのがあったが,今は使われなくなっていると思われる.[2021-10-16] 
 + 
 +===== 新規 ports インストール ===== 
 + 
 +  * 新規に emacs をインストールする場合.<code bash> 
 +% sudo portmaster -D editors/emacs </code> 
 +    * -D:毎度毎度 distfiles を消しますか,の質問がなくなる. 
 +    * /usr/ports からの相対フォルダ名を指定する. 
 + 
 +===== 複数存在するバージョンの ports を,指定した方にする ===== 
 +例えば,lang/php72 と lang/php74 のように,複数 ports が存在していて,72 から 74 に明示的にアップグレードしたい場合. 
 <code bash> <code bash>
-pkg delete <package name> +sudo portmaster -D -o lang/php74 lang/php72 
 </code> </code>
 +  * -o:新しくインストールしたい ports 名を指定する
  
 +(php や perl のように,影響範囲が広い ports の場合,php74 で始まる ports を全て再インストールしたり, pkg shlib と組み合わせて再インストールするケースがある.)
  
 +==== 例)(OLD) emacs のバージョンを下げる  ====
 +  * /usr/ports/UPDATING を見る。<code>
 + # 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</code>
 +
 +  * これをやった後、関連 elisp も再インストールする。apel あたりからはじめておくと関連する elisp をある程度再帰的にダウングレードしてくれる。<code>
 + # portupgrade -rf editors/apel
 + # portupgrade -rf editors/tamago</code>
  
 ------------------------------------------------------------ ------------------------------------------------------------
-====== java  ====== + 
-===== java が以下のエラーで落ちる (keytool, jarsigner ) =====+====== 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 環境がインストールされる. 
 + 
 +  * /etc/rc.conf に ubuntu_enable="YES". 
 +  * # 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 に /compat/ubuntu が設定されているか確認. 
 +  * ports/pkg にて sysutils/debootstrap をインストールする 
 +  * debootstrap --arch=amd64 --no-check-gpg jammy /compat/ubuntu 
 +    * かなり時間がかかる. 
 +  * service ubuntu restart / onestop/onestart 
 + 
 +==== 使い方 ====  
 + 
 +=== chroot して,linux 環境そのものに入る ===  
 <code> <code>
-% java -version +# chroot /compat/ubuntu /bin/bash
-Error occurred during initialization of VM +
-Could not reserve enough space for object heap +
-Could not create the Java virtual machine.+
 </code> </code>
-  * 原因は,どうも jvm サーバーモード立ち上げ際,大量のメモリを確保しようとしてメモリが足りなくなことしい.(mmapの実装上の問題実メモリが 4GB あること,などなど原因らきものは出てきたけど,まいち不明.) + 
-  * ってイアントモドで動かてあげると動作するかも+=== linux binary を FreeBSD において実行るようにする === 
 + 
 +OS 側(?)に当該バイナリが Linux バイナリであることを宣言する為の操作.これを実行ELF 番号おかしいよ,というエラーが出てまう 
 <code> <code>
-java -client -version  +brandelf -t Linux <linux binary>
-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)+
 </code> </code>
  
-===== jdk6 で jdk5 用クラスファイルを生成したい。  ===== + 
-<code> +==== 参考 ==== 
-javac -target 1.5 *.java +  * https://www.zenarmor.com/docs/freebsd-tutorials/how-to-configure-linux-binary-compatibility-on-freebsd 
 +  * https://github.com/FlareSolverr/FlareSolverr/wiki/Installing-FlareSolverr-in-FreeBSD,-FreeNAS-or-TrueNAS-jail 
 + 
 +------------------------------------------------------------ 
 + 
 +====== svn での ports tree の管理方法 [2021-10-16]  =====
 + 
 +SVN ベースでの ports tree を最新にする方法.ただし,今後は git になると思われる.[2021-10-16] 
 + 
 +  * 初回 
 +<code bash
 +portsnap fetch extract update 
 </code> </code>
  
 +  * 二回目 or /usr/ports に情報がある状態 以降
 +<code bash>
 +% portsnap fetch update 
 +</code>
  
-====== 設定  ====== +------------------------------------------------------------ 
-===== FreeWnn 設定  ===== + 
-  * ports で普通にインスール。 +====== git での src tree の管理方法 [2022-09-26]  ====== 
-  * /etc/rc.conf に以下の設定。 + 
-<code> +===== 新規場合 [2024-09-05] [2022-11-04]  ===== 
-wnn_enable="YES" +まず,git レポジリを全てとってくる. 
-wnn_flags="-a 0.0.0.0" + 
 +<code bash
 +sudo git clone -o freebsd https://git.FreeBSD.org/src.git /usr/src
 </code> </code>
-  * 2行目を書いておくことで、ホスト外から接続できるようになる。 
  
-===== python の取扱 (2012/11時点)  ===== +===== stable/14 ===== 
-  * python 2.x 3.x の ports が二つともある. +stable/14 したい場合. 
-  * 間違えて 3.x がデフォルトなって場合,/etc/make.conf に以下を記述しておくと良いらしい. + 
-<code> +<code bash
-PYTHON_VERSION=2.7 +sudo git checkout stable/14 
-PYTHON_DEFAULT_VERSION=2.7+
 </code> </code>
-  * これが無視されてしまう場合は,/usr/local/bin/python を書き換える. 
-    * /usr/local/bin/python は,/usr/local/bin/python3.1 or python2.7 への hard link なので,削除して ln コマンドでリンクを作ってやればOK. 
  
-===== emacs のバジョンを下げておく  ===== +===== アップデト [2022-11-04]  ===== 
-  * /usr/ports/UPDATING を見る。 +<code bash
-<code> +sudo git pull 
- # 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+
 </code> </code>
  
-  * これをやった後、関連 elisp 再インストールする。apel ありからじめおくと関連する elisp をある程度再帰的にダウグレーしてくれる。 + 
-<code> +====== 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://www.freebsd.org/doc/handbook/synching.html 
 + 
 +  * 以下のコマンド 
 +<code bash
 +% svn checkout https://svn.FreeBSD.org/base/stable/9 /usr/src
 </code> </code>
  
 +  * mirror サイトは,以下を参照.
 +    * https://www.freebsd.org/doc/handbook/svn.html#svn-mirrors
 +  * stable/9, stable/10, release/9.3.0, release/10 などを選択
 +    * release 番号は http://svnweb.freebsd.org/base/release/ を参照
 +  * base/ports/doc を選択可能.
 +    * svn checkout https://svn0.us-west.FreeBSD.org/ports/head /usr/ports
 +  * 一度,checkout したら後は update すれば OK.
 +
 +
 +------------------------------------------------------------
 +
 +====== その他設定  ======
 +===== ユーザ情報の移行 [2022-09-26] =====
 +- 元ネタ:http://www.lifewithunix.jp/notes/2015/09/21/freebsd-10-2-how-to-move-all-accounts-to-new-system/
 +
 +<code bash>
 +/usr/sbin/pwd_mkdb -p /etc/master.passwd
 +</code>
 +
 +- /etc/group は移行されないので,別途手動でコピーする必要あり.
 +
 +===== FreeWnn の設定  =====
 +
 +  * ports でインストール。
 +  * /etc/rc.conf に以下の設定。
 +
 +<code>
 +wnn_enable="YES"
 +wnn_flags="-a 0.0.0.0" 
 +</code>
 +  * 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 
 </code> </code>
   * 別途, ipmi という機構もあるみたいだが,これはサーバマシン向け.   * 別途, ipmi という機構もあるみたいだが,これはサーバマシン向け.
行 130: 行 245:
   * サーバー側では,xauth が必要.   * サーバー側では,xauth が必要.
   * クライアントでは,ssh -XY.   * クライアントでは,ssh -XY.
 +
 ===== 一つのプロセスで利用できる最大メモリ容量を増やす  ===== ===== 一つのプロセスで利用できる最大メモリ容量を増やす  =====
 /boot/loader.conf に以下の記述 /boot/loader.conf に以下の記述
行 136: 行 252:
 </code> </code>
 値の部分は適宜変更のこと. 値の部分は適宜変更のこと.
 +
 ===== ホストの名前  ===== ===== ホストの名前  =====
   * hostname コマンドで,完全名 (hoge.ht.sfc.keio.ac.jp) を指定.   * hostname コマンドで,完全名 (hoge.ht.sfc.keio.ac.jp) を指定.
行 157: 行 274:
  
 ===== コマンド  ===== ===== コマンド  =====
 +==== ゾンビプロセスの殺し方 [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 番号を把握する  ==== ==== プロセスごとに利用している port 番号を把握する  ====
 <code> <code>
行 193: 行 313:
 % tar cvf - hoge | (cd /tmp/backup ; tar xvf -) % tar cvf - hoge | (cd /tmp/backup ; tar xvf -)
 </code> </code>
 +
 ==== portupgrade で、メジャーバージョンアップ  ==== ==== portupgrade で、メジャーバージョンアップ  ====
 <code> <code>
行 214: 行 335:
 # tunefs -n disable /dev/ad0 # tunefs -n disable /dev/ad0
 </code> </code>
 +
 +------------------------------------------------------------
 +====== OLD(かなり古いメモ)  ======
 +
 +===== python の取扱 (2012/11時点)  =====
 +  * python 2.x / 3.x の ports が二つともある.
 +  * 間違えて 3.x がデフォルトになっている場合,/etc/make.conf に以下を記述しておくと良いらしい.
 +<code>
 +PYTHON_VERSION=2.7
 +PYTHON_DEFAULT_VERSION=2.7
 +</code>
 +  * これが無視されてしまう場合は,/usr/local/bin/python を書き換える.
 +    * /usr/local/bin/python は,/usr/local/bin/python3.1 or python2.7 への hard link なので,削除して ln コマンドでリンクを作ってやればOK.
 +
 +===== java  =====
 +==== java が以下のエラーで落ちる (keytool, jarsigner も同様) ====
 +<code>
 +% java -version
 +Error occurred during initialization of VM
 +Could not reserve enough space for object heap
 +Could not create the Java virtual machine.
 +</code>
 +  * 原因は,どうも jvm をサーバーモードで立ち上げる際,大量のメモリを確保しようとして,メモリが足りなくなる?ことらしい.(mmapの実装上の問題,実メモリが 4GB あること,などなど原因らしきものは出てきたけど,いまいち不明.)
 +  * よって,クライアントモードで動かしてあげると動作するかも.
 +<code>
 +% 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)
 +</code>
 +
 +==== jdk6 で jdk5 用のクラスファイルを生成したい。  ====
 +<code>
 +% javac -target 1.5 *.java 
 +</code>
 +
 +----
 +このページへのアクセス
 +今日: {{counter|today}} / 昨日: {{counter|yesterday}}
 +総計: {{counter|total}}
  
freebsd.1634389989.txt.gz · 最終更新: 2021/10/16 22:13 by skk
文書の先頭へ
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0