Mac」タグアーカイブ

macOS Command Line Tools

今回は Mac ネタ。
macOS にコンパイラを入れたいけど Catarina の Xcode は 8.1GB もある。
ちょっと C を使うだけにこんな巨大なモンを入れるなんてイヤだ!
と思っていたけどコマンドラインツールというものがあるらしい。

日本語ブログにはロクな情報が無いので下記を見て。
How to Install Command Line Tools in Mac OS X (Without Xcode)

個別には選択できないのね、てかヘッダやライブラリ類の情報が無いけど。
筆者はぶっちゃけ CLang と標準ヘッダと Cocoa SDK だけでいいんだけど。
C 等の標準ヘッダは当然入ると思うけど何故かどこにも情報が無い。

インストールサイズも Xcode からいくつ減ったみたいなのしか出てこない。
よし疑問点は自分で導入して調べてみよう、まず現状 SSD 状況の確認。

i001

異様に少ないかも、ほぼスクリプトというかテキストファイルばかりだもん。
筆者は大量なデジイチ画像や動画は全部 Fedora メインマシンに入れているので。
とっととリンク先コマンドでインストールしたら。

i002

19.22 – 18.28 = 0.94
約 1 GB ってことね、Linux を知っているとコレでもデカい。

open /Library/Developer/CommandLineTools/

とコマンドを打って何がインストールされたか調べる。

i003

Cocoa どころか Metal, WebKit 等のヘッダは上記に普通にあったわ。
てか SDK 丸ごとかよ、そりゃこんなサイズになるってばさ。
標準ヘッダは usr/includes 以下にある、Linux の /usr/includes と同じ。
C/C++ ヘッダは共通位置に、拡張子の無いものが C++ 用なので共存している。

ところで解っていると思うけど、新たにパスを通す必要は無い。
最初から /usr/bin にあるゾンビコマンドが該当コマンドを実行する。
Linux の pkg-config 相当は clang のオプションだけでまかなえる。

#include <stdio.h>

// clang -o c_out test.c

int main(void) {
    // C99 対応チェックをついでに
    for (int i=0; i<3; i++) {
        printf("%d\n", i);
    }
    return 0;
}

#import <Foundation/NSString.h>

// clang -o m_out test.m -framework Foundation

int main(void) {
    const char *cstr = "スズキ";
    NSString *nstr = @(cstr);
    NSLog(@"%@", nstr);
    return 0;
}

をやってみると普通にビルドできた。
clang は gcc と -o オプションが共通なのね。

xcode-select -h で見るとアンインストールオプションが無い。

sudo rm -r /Library/Developer/CommandLineTools

だけでいいと思う、削除しないけど。

open -a URI

macOS の open -a に渡すのは URI でも良かった。

Finder Script を以下に書き換えしても普通に動くね。
Tips ページを又しても書き換えしなきゃ。

#!/usr/bin/osascript

let app = Application.currentApplication();
app.includeStandardAdditions = true;

let uri = Application('Finder').finderWindows()[0].target().url();
//let path = decodeURI(uri).slice(7);
//app.doShellScript(`open -a Terminal "${path}"`);
app.doShellScript(`open -a Terminal "${uri}"`);

ところで筆者はメインマシンが Fedora なので URI と主に書く。
macOS メインの人は URL と同じ意味だと思えばいい。
URLとURIの違いとは? パーツの構造・名称・意味も大解説! | 初代編集長ブログ―安田英久 | Web担当者Forum

ただし macOS 標準アプリは全部対応しているけどアプリによるみたい。
筆者自作の comipoli も対応しなきゃいけないんだけど。

Fedora and macOS sftp 2

前回の macOS から Fedora への ssh の件。
Fedora の共有設定で「リモートログイン」をオンにするだけだった。

ssh で macOS から接続の初回は警告が出るけど yes を選べば以降は普通に接続。
Fedora の ssh ポート(22) は最初から開いているし SELinux にも邪魔されない。
ログアウトは control+D でいいのね。

後は sftp だけど、よく考えたら Finder でやる必要はなかった。
普通にアプリを探せばいいじゃん。
GNOME だと Nautilus が便利すぎてそういう選択肢を忘れてしまう。
本サイトの macOS Tips ページも実は全部 Nautilus でアップロードしている。

てかフリーソフトをインストールしまくるなんて初心者しかやらないし。
homebrew とかいったい何故そんなのを使いたい人がいるのかも理解できない。
Xcode すら入れていない筆者がこんな Blog をヤレるのに。
脱線しそうなのでこのくらいにして。

多分アップデート以外で App Store を開くのは数年ぶり。
sftp で検索。
Transmit というのが定番と出るけど調べると年額 2800 円って、高いよ!
ForkLift というアプリが 8.5MB だし無料のようなので試してみる。
初回起動でメールアドレス入力が出るけど no, thanks! を選択でいいみたい。

普通に接続できた、DnD で問題なく双方向コピーできる。
思いっきり英語メニューだけど普通に使うぶんには問題ないかな。

でもサーバー側は日本語がバケる、コピーはバケたまま可能だけど。
W クリックでファイルを開くことも、ただし command+O は使えない。
Favorites に command+D で登録できない、てかどうやって登録するんだ?
サードパーティとはいえもっと統一感がほしい、って GNOME 使いは思う。

ところで macOS にも sftp コマンドが最初から入っているんだね。
ラッピングしてアプリを自作するのもアリかも。

Fedora and macOS sftp

macOS Catarina になって私的に一番困ったのが Fedora との接続です。
afp が使えなくなったので samba を使ってファイルのやりとりをしているのだけど。
Catarina にアップグレードした直後から唖然とするほど遅くなった。

初期化だけなら別にかまわないんだけど、すべてが遅い。
ディレクトリ移動毎にしょんぼりするほど待たされるってどうなのよ。

他の手段で Fedora から macOS のファイルにアクセスというと。
やっぱり UNIX 系 OS の基本は SSH ですよね。

ssh ユーザー名@macのコンピューター名.local/

ssh

普通に接続できた、しかもディレクトリ移動もまるでローカルのように早い。
ログインして cat コマンドで表示される文字列を端末エミュレーターからコピペ。
で大半の作業はイケるはず、てか Catarina になってからそうやっていた。

でもこれじゃファイルの転送はできない、何より面倒。
やっぱりファイルマネージャを使った GUI でやりたいよね。
sftp という ssh を使ったプロトコルがあったよな。
ものは試しのつもりで Nautilus で Ctrl+L を叩いて以下を打ち込む。

sftp://macのコンピューター名.local/

sftp

できるジャン、しかも感動するくらい早い!
Nautilus をもう一つ立ち上げ普通に DnD でコピペできる。
Gedit や eog で普通にファイルを開くこともできる。

てか、samba はコピーするとパーミッションが 600 になって困っていた。
コッチならパーミッションは維持される、すばらしい。

何故誰もこの方法を教えてくれなかったんだ!
ってしかたがないか、大半の人は Linux から macOS に接続なんて考えないし。
どちらかが Windows だと samba になってしまうよね。

mac sftp

ちなみに Finder からは sftp はできませんでした。
ssh すら、Firewall ポートは空けて SELinux を無効にしても駄目だった。
まだ何かやる必要があるみたいだけど Nautilus で全部やればいいから別にいいか。
だって Finder って使い辛いんだもん。

PrintScreen

突然だがデジイチを先日はじめて買った。
Nicon D3400 という型落ちだけど新品かつ望遠レンズとバッグ込みで五万ならばと。

理由はポケ GO をヤメたので別の歩き回る理由が欲しいというこで。
10 年前の IXY からの乗り換えなのでデジイチなら何でも満足できそう。
欠点は今のところ人前で出すのは結構勇気がいるということだけだ。

先日の十五夜に IXY や iPhone では話にならない満月を撮ってみた。
しかし 6000×4000 の JPEG って 6MB 以上もあるんだよね。
1920×1080 のフル HD に切り出そうと考えた。

eog で開く
Ctrl+0 で等倍にする
F11 でフルスクリーン
月を中心に動かして PrintScreen

スクロールバーも一緒に切り出し、ちょっとまて。
Fedora じゃ駄目だ、macOS でやってみよう。
macOS だと 1440×900 になるけど。

プレビューで開く
command+0 で等倍にする
command+control+F でフルスクリーン
command+shift+3 でスクリーンショット
Retina の場合 72dpi に変換

ド素人がフルオートで撮ってもそれなりなものに、流石デジイチだ。
何年かたった後自分で見て「こんなもん…」と言える人に私はなりたい。
しかし切り出し作業が面倒臭い、てかデスクトップの Fedora でやりたいし。
切り出しアプリでも作るか、その手順を考えている時が一番楽しい。