SST Lab Dokuwiki Header header picture

ユーザ用ツール

サイト用ツール


osx:commandlinetools

差分

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

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
osx:commandlinetools [2020/12/31 20:00] – [MacPorts版] kimiosx:commandlinetools [2024/03/05 12:10] (現在) – [MacPorts版] kimi
行 1: 行 1:
 ====== コマンドラインツールのインストール ====== ====== コマンドラインツールのインストール ======
 +===== 基本の手作業 =====
 +
 +例えば''tree''をインストールすることを考えよう。
 +  - ソースコードを入手する
 +  - ロードモジュールを作る
 +  - システムにインストールする
 +という手順が必要になる。
 +==== ソースコードの入手 ====
 +''tree''みたいなあまりに基本的なコマンドはここのところが初心者には最もハードルが高い。もっとも私のようなロートルにとっても昔知ってたftpサイトの類がまったくつながらないなど、そこそこ面倒。そもそも最近のmacosには素のftpコマンドがついていない。今回は[[https://ftp2.osuosl.org/|Oregon State University Open Source Lab Mirrors]]というところでたまたま見つけた。
 +
 +==== ロードモジュールの作成 ====
 +''tree''は単に階層ディレクトリ構造を読み取り、それをテキストベースで整形して出力するだけなので、特別なツールやライブラリは必要ないはず、と思ってここで取り上げている。いや正直に白状するととある理由でtreeコマンドがどうしても欲しかったのでインストールしようとしたところ、どのバッケージ管理システムを導入するかまだ決めかねていたので、ここは大昔のやりかたでやってみようと思い至っただけなのだけれど。
 +
 +  - ダウンロードしてきた''tree-2.1.1.tgz''を解凍し、
 +  - 作成された''tree-2.1.1''ディレクトリに移動し、
 +  - 内容を確認する。
 +<code sh>
 +$ tar zxf tree-2.1.1.tgz
 +$ cd tree-2.1.1
 +$ ls
 +CHANGES README file.c info.c tree.c
 +INSTALL TODO filter.c json.c tree.h
 +LICENSE color.c hash.c list.c unix.c
 +Makefile doc html.c strverscmp.c xml.c
 +
 +</code>
 +ここで''README''や''INSTALL''を読みなさいというのが定石かつ必須なのだけれど、見るからにmake一発なので、ロートルは、
 +<code sh>
 +kimi@persimmon tree-2.1.1 % make -n 
 +gcc -ggdb -std=c11 -pedantic -Wall -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -c -o tree.o tree.c
 +gcc -ggdb -std=c11 -pedantic -Wall -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -c -o list.o list.c
 +.
 +.
 +.
 +gcc -ggdb -std=c11 -pedantic -Wall -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -c -o html.o html.c
 +gcc -ggdb -std=c11 -pedantic -Wall -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -c -o strverscmp.o strverscmp.c
 +gcc  -o tree tree.o list.o hash.o color.o file.o filter.o info.o unix.o xml.o json.o html.o strverscmp.o
 +kimi@persimmon tree-2.1.1 % 
 +
 +</code>
 +なんてことをやってみる。''make''かけるときは''-n''で様子を見るのは絶対。これなら問題なさそうなので''make''する。
 +<code sh>
 +$ make
 +gcc -ggdb -std=c11 -pedantic -Wall -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -c -o tree.o tree.c
 +In file included from tree.c:19:
 +./tree.h:211:17: warning: a function declaration without a prototype is deprecated in all versions of C [-Wstrict-prototypes]
 +char *gnu_getcwd();
 +                ^
 +                 void
 +./tree.h:275:22: warning: a function declaration without a prototype is deprecated in all versions of C [-Wstrict-prototypes]
 +.
 +.
 +.
 +2 warnings generated.
 +gcc -ggdb -std=c11 -pedantic -Wall -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -c -o strverscmp.o strverscmp.c
 +strverscmp.c:4:28: warning: invalid UTF-8 in comment [-Winvalid-utf8]
 +   Contributed by Jean-Fran<E7>ois Bignolles <bignolle@ecoledoc.ibp.fr>, 1997.
 +                           ^
 +strverscmp.c:160:7: warning: no newline at end of file [-Wnewline-eof]
 +#endif
 +      ^
 +2 warnings generated.
 +gcc  -o tree tree.o list.o hash.o color.o file.o filter.o info.o unix.o xml.o json.o html.o strverscmp.o
 +$
 +</code>
 +ウォーニングがちょっと出てるけどほとんどがプロトタイプ宣言が無いという類なので、まあよかろう。後はコメントにUTF-8使ってるってやつで、だからプログラムはコメントまで含めて米語だけで書けといつも言ってるんだ。最後のやつは、まあ大丈夫だろう。
 +
 +==== コマンドのインストール ====
 +
 +<code sh>
 +$ make install -n
 +install -d /usr/local/bin
 +install -d /usr/local/man/man1
 +install tree /usr/local/bin/tree; \
 + install -m 644 doc/tree.1 /usr/local/man/man1/tree.1
 +$ sudo make install 
 +</code>
 +''make install''も先ずは''-n''付きで確認する。単に''/usr/local/''以下にファイルを配置するだけなので管理者権限で''make install''しておしまい。
 +
 +試しに実行してみるとこんな感じ。
 +<code sh>
 +$ tree tree-2.1.1
 +tree-2.1.1
 +├── CHANGES
 +├── INSTALL
 +├── LICENSE
 +├── Makefile
 +├── README
 +├── TODO
 +├── color.c
 +├── doc
 +│   ├── global_info
 +│   ├── tree.1
 +│   └── xml.dtd
 +├── file.c
 +├── filter.c
 +├── hash.c
 +├── html.c
 +├── info.c
 +├── json.c
 +├── list.c
 +├── strverscmp.c
 +├── tree.c
 +├── tree.h
 +├── unix.c
 +└── xml.c
 +
 +2 directories, 22 files
 +</code>
 +
 ===== MacPorts版 ===== ===== MacPorts版 =====
   - MacPortsのインストール([[https://www.macports.org/install.php|Go official site.]])   - MacPortsのインストール([[https://www.macports.org/install.php|Go official site.]])
行 23: 行 133:
 . .
 % </code> % </code>
-  - Install+  - Install<code sh>% sudo port  install wget 
 +Password: 
 +--->  Computing dependencies for wget 
 +The following dependencies will be installed:  
 +
 +
 +
 +  wget has the following notes: 
 +    To customize wget, you can copy /opt/local/etc/wgetrc.sample to 
 +    /opt/local/etc/wgetrc and then make changes. 
 +% wget
  
 +wget: URLがありません
 +使い方: wget [オプション]... [URL]...
  
-===== MacPorts版 =====+詳しいオプションは `wget --help' を実行してください。 
 +% which wget 
 +/opt/local/bin/wget 
 +% </code> 
 + 
 + 
 + 
 +===== Homebrew版 =====
   - Homebrewのインストール([[https://brew.sh/index_ja|Go official site.]])   - Homebrewのインストール([[https://brew.sh/index_ja|Go official site.]])
 ===== Fink版 ===== ===== Fink版 =====
osx/commandlinetools.1609412455.txt.gz · 最終更新: 2022/08/23 13:34 (外部編集)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki