SST Lab Dokuwiki Header header picture

ユーザ用ツール

サイト用ツール


osx:commandlinetools

コマンドラインツールのインストール

 基本の手作業

例えばtreeをインストールすることを考えよう。

  1. ソースコードを入手する
  2. ロードモジュールを作る
  3. システムにインストールする

という手順が必要になる。

ソースコードの入手

treeみたいなあまりに基本的なコマンドはここのところが初心者には最もハードルが高い。もっとも私のようなロートルにとっても昔知ってたftpサイトの類がまったくつながらないなど、そこそこ面倒。そもそも最近のmacosには素のftpコマンドがついていない。今回はOregon State University Open Source Lab Mirrorsというところでたまたま見つけた。

ロードモジュールの作成

treeは単に階層ディレクトリ構造を読み取り、それをテキストベースで整形して出力するだけなので、特別なツールやライブラリは必要ないはず、と思ってここで取り上げている。いや正直に白状するととある理由でtreeコマンドがどうしても欲しかったのでインストールしようとしたところ、どのバッケージ管理システムを導入するかまだ決めかねていたので、ここは大昔のやりかたでやってみようと思い至っただけなのだけれど。

  1. ダウンロードしてきたtree-2.1.1.tgzを解凍し、
  2. 作成されたtree-2.1.1ディレクトリに移動し、
  3. 内容を確認する。
$ 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
$ 

ここでREADMEINSTALLを読みなさいというのが定石かつ必須なのだけれど、見るからにmake一発なので、ロートルは、

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 % 
$ 

なんてことをやってみる。makeかけるときは-nで様子を見るのは絶対。これなら問題なさそうなのでmakeする。

$ 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
$

ウォーニングがちょっと出てるけどほとんどがプロトタイプ宣言が無いという類なので、まあよかろう。後はコメントにUTF-8使ってるってやつで、だからプログラムはコメントまで含めて米語だけで書けといつも言ってるんだ。最後のやつは、まあ大丈夫だろう。

コマンドのインストール

$ 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 

make installも先ずは-n付きで確認する。単に/usr/local/以下にファイルを配置するだけなので管理者権限でmake installしておしまい。

試しに実行してみるとこんな感じ。

$ 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

MacPorts版

  1. MacPortsのインストール(Go official site.
  2. Selfupdate
    % sudo port -v selfupdate
    Password:
    --->  Updating MacPorts base sources using rsync
    .
    .
    .
    The ports tree has been updated. To upgrade your installed ports, you should run
      port upgrade outdated
    % sudo port upgrade outdated
    Nothing to upgrade.
    % 
  3. Search
    % port search wget
    .
    .
    .
    wget @1.20.3_3 (net, www)
        internet file retriever
    .
    .
    .
    % 
  4. Install
    % 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]...
     
    詳しいオプションは `wget --help' を実行してください。
    % which wget
    /opt/local/bin/wget
    % 

Homebrew版

  1. Homebrewのインストール(Go official site.

Fink版

  1. Xquartzのインストール
    1. finkのインストール
      1. sourceforgeからダウンロードする
      2. $ xcode-select –install
      3. ファイルを展開したディレクトリで $ ./bootstrap
      4. $ /sw/bin/pathsetup.sh
      5. $ fink selfupdate
      6. $ fink update-all
      7. 試しにwgetあたりをインストール $ fink install wget
  2. Gnu Compiler Collectionのインストール
  3. Atlasのインストール
  4. FFTWのインストール
osx/commandlinetools.txt · 最終更新: 2024/03/05 12:10 by kimi

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki