質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
FreeBSD

FreeBSDは、Unix系のオープンソースのOSです。PC/AT互換機用ですが、他のプラットフォームにも移植されています。優れたネットワーク・セキュリティ・ストレージ機能で人気のOSです。ソースコードと共に無償で公開されており、多くの コミュニティによって長年に渡って開発されています。

Q&A

解決済

2回答

961閲覧

manコマンドの挙動がおかしい

ohyama

総合スコア29

FreeBSD

FreeBSDは、Unix系のオープンソースのOSです。PC/AT互換機用ですが、他のプラットフォームにも移植されています。優れたネットワーク・セキュリティ・ストレージ機能で人気のOSです。ソースコードと共に無償で公開されており、多くの コミュニティによって長年に渡って開発されています。

0グッド

0クリップ

投稿2019/10/15 14:48

編集2019/10/16 11:53

###前提・実現したい事
FreeBSD12.0でmanコマンド及びjmanコマンドを実行した時の挙動がおかしいです。man manというコマンドを実行すると、lessで空のファイルを開いたような感じになってしまいます。jman manというコマンドを実行した時も同様です。jman manというコマンドとjman jmanというコマンドを実行した時は両方とも日本語のマニュアルがちゃんと読めました。最終的にはmanでもjmanでも日本語マニュアルが読めるようになるのが理想なのですが、ひとまずはマニュアル自体が表示されないというこの状態を何とかしたいです。

###試したこと
which manというコマンドを実行してみると
man: aliased to env LC_C_ALL=ja_JP.eucJP jmanと表示されます。
which jmanを実行しても結果は同様でした。

###補足情報
.cshrcには
alias man env LC_ALL=ja_JP.eucJP jman
alias jman env LC_ALL=ja_JP.eucJP jman
と記述してあります。

###追記
日本語マニュアルを再度入れ直したりしているうちに色々改善されてきたのですが、まだ微妙に挙動がおかしいです。
.cshrcの設定はそのままです。
man man 日本語で表示
man jman 日本語で表示
man jman 日本語で表示
jman man 日本語で表示
となったのですが、man pkgやjman pkgを実行するとlessで空のファイルを開いたようになります。
まさかpkgはマニュアルが用意されてないなんてことがあるんでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

KoichiSugiyama

2019/10/15 15:42

問題点は判りましたが、実際にどう解決したいのでしょうか。 man man man jman jman man jman jman 全てで日本語でマニュアルが表示されることを望まれているのでしょうか。
ohyama

2019/10/16 11:20

完全な理想形態は仰る通りです。 でも第一はjmanコマンドでも英語でも文字化けでも何でもいいからマニュアルを表示させたいです。
guest

回答2

0

回答になっていないかもしれませんが、うちの環境(FreeBSD 11.2-RELEASE-p13)の.cshrcの関係ありそうなところを見ると

csh

1alias man 'env LC_ALL= LC_CTYPE=ja_JP.eucJP jman' 2: 3setenv EDITOR vim 4setenv PAGER lv 5setenv LV -Ou8 6setenv BLOCKSIZE K 7setenv LANG ja_JP.UTF-8 8setenv LC_CTYPE ja_JP.UTF-8 9setenv JLESSCHARSET japanese-utf-8 10

となっていました。

実行結果として
man man :日本語で表示
man jman :日本語で表示
jman man :文字化け
jman jman : 文字化け

なのですが、manで日本語マニュアルが表示できるので、jmanにはalias設定をしていないです。

LC_CTYPEの設定の違いくらいですかね。

投稿2019/10/15 15:57

KoichiSugiyama

総合スコア3041

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ohyama

2019/10/16 11:30

試した結果 man man :英語で表示 man jman :英語で表示 jman man :表示されず jman jman : 日本語で表示 となりました。
guest

0

ベストアンサー

man: aliased to env LC_C_ALL=ja_JP.eucJP jman

文字コードが合ってないのではと思います。
aliasを使わず、\man manとかでどうですか?

投稿2019/10/15 15:22

otn

総合スコア84499

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ohyama

2019/10/16 11:13

\man manコマンドを実行したおかげでmanコマンドは正常に英語で表示されるようになりました。 しかしjmanコマンドはjman jman以外は変化なしです。lessで空のファイルを開いたような画面が出るだけです。
otn

2019/10/16 11:41

> \man manコマンドを実行したおかげでmanコマンドは正常に英語で表示されるようになりました。 では、.cshrcにある man のalias定義を削除しましょう。 > jmanコマンドはjman jman以外は変化なしです \jman ls もですか? env LC_ALL=ja_JP.utf-8 jman ls はどうでしょうか?
ohyama

2019/10/16 12:29

あれから日本語マニュアルの再インストールをしたところ大体のマニュアルが日本語で表示されるようになってくれたのですが、man pkgやjman pkgだけ何も表示されません。(ひょっとしたら試してないだけで他にもあるかもしれませんけど) \man pkgだと英語が表示されます。\jman pkg だと何も表示されないです。 色々状況が移り変わってしまって大変申し訳ないです。
otn

2019/10/16 12:32

最初に書きましたが、おそらく、manファイルの文字コードが合ってないのでしょう。 変換して合わせましょう。
ohyama

2019/10/16 12:44

素人で申し訳ないです。「変換して合わせる」というのは alias man 'env LC_ALL= LC_CTYPE=ja_JP.eucJP jman' を使わず、 env LC_ALL=ja_JP.utf-8 jman pkg というコマンドを実行するということでよろしいでしょうか?
otn

2019/10/16 12:50

各manファイルの中身をあなたが使っているエンコーディングに書き換えるということです。
ohyama

2019/10/16 13:14

https://teratail.com/questions/149037 の質問を参考に/usr/local/man/ja/man1/配下にあるpkgと名の付くものを片っ端からnkfの-eオプションで eucJPに変えて、再度man pkgを実行してみたのですが、結果は変わりませんでした。 というか対処法はこれで合ってましたでしょうか?
otn

2019/10/16 13:25

はい。その対処をアドバイスしたつもりでした。 eucに統一したなら、env LC_ALL=ja_JP.eucjp jman pkg でいいはずなのですが。 ちょっと気になるのが、 > man1/配下にあるpkgと名の付くものを です。 pkg.1 ならそれでいいのですが、pkg.1.gz等、圧縮されているのが普通で、その場合はpkg.1に伸長してからエンコーディング変換です。
ohyama

2019/10/16 13:52

一応 zcat pkg_???.1.gz | nkf -e >pkg_???.1 という風にpkgと名の付くものを変換していきました。
otn

2019/10/16 14:06

そのあと、gzip pkg~.1 してpkg~.1.gzに戻していますか?
ohyama

2019/10/17 09:10 編集

戻してenv LC_ALL=ja_JP.eucjp jman pkgを実行してみても結果は同じで、空のファイルをlessで開いたようになりました。man pkg の結果も同じです。\man pkgだと英語マニュアルが表示されます。 ちなみにman1以下にあったpkgと名の付くものをの一覧は pkg_add.1.gz pkg_check.1.gz pkg_create.1.gz pkg_delete.1.gz pkg_info.1.gz pkg_sign.1.gz pkg_version.1.gz でした。
otn

2019/10/17 12:24

ふと疑問ですが、jman pkg と書きながら、ファイル一覧に pkg.1.gz が含まれていないのはなぜ? 実際には、jman pkg_add とかしているということですか?
ohyama

2019/10/17 12:52

私にもわかりません。pkg.1.gzというものが見つかりませんでした。mak1からman9まででpkgと名の付くものを探しても見つかったのはman1の下にある上記の7つだけでした。 実際にはjman pkg_addとかはしてません。jman pkgやman pkgを実行しています。 pkg.1.gzが出来るには何かインストールするものでもあるのでしょうか?
otn

2019/10/17 12:59

jman pkg の実行と、pkg_add.1.gz などのファイルは何の関係もありません。 /usr/local/man/ja/man1/じゃなくて、/usr/local/man/ 以下で pkg.数字 と pkg.数字.gz を探してください。 whereis pkg で場所がわかるかも。
ohyama

2019/10/18 04:04

whereis pkgの結果 pkg: /usr/sbin/pkg /usr/local/man/man8/pkg.8.gz /usr/src/usr.sbin/pkg と表示されpkg.8.gzが見つかったのでそれを /usr/local/man/man8/以下で zcat pkg.8.gz | nkf -e > pkg.8 rm pkg.8.gz gzip pkg.8 と実行したのですが結果は変わりませんでした。
otn

2019/10/18 11:34

zcat pkg.8.gz の中身は読めますか?
ohyama

2019/10/18 13:25

less pkg.8.gzを実行して読むことが出来ます。内容はすべて英語です。
otn

2019/10/18 13:37

ギブアップです。
ohyama

2019/10/18 14:16

長い間付き合っていただいてありがとうございました。結果的にはpkgのマニュアル以外は正常に動作し、かつ日本語で読めるようになったのでこのへんで妥協しようと思います。
ohyama

2019/10/18 16:49

あまり関係ないかもしれませんがman pkgを実行した後lessで空のファイルを開いたようになり、「q」で抜けた後にターミナルの上の方に遡ってみると、 sh: /usr/bin/tbl: not found sh: /usr/bin/groff: not found と表示されていました。
otn

2019/10/19 06:42

なんと!!! それが原因ですね。 groff パッケージをインストールしてください。
ohyama

2019/10/19 07:07

pkg install groff-1.22.4_2を実行したんですけど、途中で Installed packages to be REMOVED ja-groff-1.18.1_18 ja-man-1.1j_9 ja-man-doc-5.4.20050911_3 New packages to INSTALLED groff: 1.22.4_2 netpbm: 10.88.00 と出てきて何か今まで入れたのを削除して新しいのを入れようとしてるんですけど、これはYesを押しちゃっていいんでしょうか? ちなみにwhich groffを実行すると/usr/local/bin/groffと出てきて若干パスが違っていることが確認できました。
otn

2019/10/19 07:14

> これはYesを押しちゃっていいんでしょうか? わかりません。 > ちなみにwhich groffを実行すると/usr/local/bin/groff 別質問に回答しましたが、とりあえずシンボリックリンクで動くならそれで。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問