20210110のMacに関する記事は7件です。

【Mac初心者向け】.DS_Storeとは?

どうも、MacBook Air利用歴1年目の三町哲平です。

最近ふと、GitHubではなくMacBook内のローカル環境のディレクトリに保存していたRailsアプリを使う機会がありまして、Visual Studio Codeで開いてみたところ、

...何これ?となりましたので、早速調べてみました。

.DS_Storeとは?

分からない事はWikipediaが一番詳しく載ってそうなので今回は、Wikipediaを使用しましたが、なんとビックリ!
日本語の「.DS_Store」のページが無いみたいなので、今回は、英語のページを日本語訳で紹介します。

アップル のMacOSオペレーティングシステム、.DS_Storeは店がカスタムその含むの属性というファイルでフォルダなどの位置として、アイコンや背景画像の選択が。名前はDesktopServices Storeの略語であり、その目的を反映しています。それが作成され、維持されることにより、ファインダーのすべてのフォルダ内のアプリケーション、およびファイルと同様の機能があるdesktop.iniをでのMicrosoft Windowsを。ピリオド(ピリオド)文字で始まり、Finderや多くのUnixユーティリティでは 非表示になっています。その内部構造は独自仕様ですが、その後リバースエンジニアリングされています。macOS 10.12 16A238m以降、Finderは.DS_Storeファイルを表示しません(com.apple.finder AppleShowAllFiles YESが設定されている場合でも)。

↑Finder絡みのファイルで、デフォルトは非常時な訳ですね。

目的と場所

ファイル.DS_Storeは、ファイルを共有するサーバーからマウントされたリモートファイルシステム(サーバーメッセージブロック(SMB)プロトコルやApple Filing Protocol(AFP)など)でも、Finderアプリケーションがアクセスする任意のディレクトリ(フォルダー)に作成されます。ただし、リモートファイルシステムは、オペレーティングシステムの設定(アクセス許可など)によって除外される可能性があります。これらのファイルは主にFinderで使用されますが、アイコンの位置や表示設定など、フォルダーの表示オプションに関するメタデータのより汎用的なストアとして想定されていました。たとえば、Mac OS X 10.4「Tiger」以降では、「.DS_Store」ファイルにSpotlightが含まれていますフォルダのファイルのコメント。これらのコメントはまたに格納されている拡張ファイル属性、が、Finderは、それらを読んでいません。
以前のAppleオペレーティングシステムでは、Finderアプリケーションは同様のファイルを作成しましたが、外部ファイルシステムを含め、アクセスされるボリュームのルートで、ボリューム上のすべてのファイルのすべての設定を収集しました(それぞれのフォルダごとに個別のファイルを用意するのではありません)。

↑Finderが自動的にアクセスしてディレクトリ内に自動で生成される様です。

問題

多くのユーザーの苦情により、Appleは、リモートでマウントされたネットワークファイルシステムでこれらのファイルの作成を無効にする手段を公開するようになりました。macOS High Sierra(10.13)以降、Appleは、ブラウジング速度を向上させるために、アルファベット順にソートされたフォルダーの.DS_Storeのメタデータ収集を遅らせています。ただし、いくつかの回避策はありますが、これらの手順はUSBフラッシュドライブを含むローカルドライブには適用されません。Mac OS X 10.5より 前は、.DS_Storeファイルはリモートファイルシステムに表示されていました。
.DS_Storeファイルは頻繁に変更されるため、特に除外されない限り、コミットに表示される可能性があるため、リビジョン管理プロセスに追加の負担がかかる可能性があります。
.DS_Storeファイルは、OS Xユーザーによって作成されたZIPなどのアーカイブに、AppleDoubleなどの他の隠しファイルやディレクトリとともに含まれています。
.DS_Storeファイルは、コピー操作に悪影響を与えることが知られています。ファイル転送用に複数のファイルが選択されている場合、コピー操作は(重複した).DS_Storeファイルに到達すると、すべての進行状況をさかのぼってキャンセルし、ユーザーにコピー操作を最初から再開するように強制します。

↑.DS_Storeは、メタデータ収集が目的で、ユーザーの苦情もあり、対策もあるにはあるらしいです。

.DS_Store邪魔なんですが...

DS_Storeを間違ってGitHubにpushしてしまうかも知れないし、目障りだし、そもそもメタデータの収集とかされたくないから消そうと思ったあなた!

確かに消すことは、出来ますが、また復活するみたいです。

Finderの設定などを格納する一時ファイルなので、作らない設定にするとFinderの振る舞いがおかしくなったりするなんていうウワサもある。
引用元:macOS の .DS_Store を一括削除する - Qiita

上記の引用にもある様に作らない設定にもできるのは、できる。(Wikipediaにも記載されています。)
しかし、私含め初心者であればある程、Finder含め、OS廻りの設定変更は極力避けたいという気持ちになりませんか?私は、なります。それで、一部のアプリが立ち上がらなくなったりしても困ります。※普通に考えたらこの程度のFinderの設定変更でOS等への不具合は考えづらいですが...(汗)

お部屋の掃除を定期的にするような感覚で、もしくはに気になった時にサッと消せる様に

$ find . -name '.DS_Store' -type f -ls -delete

↑コチラのコードでサクッと消すことが出来ます。

スクリーンショット 2020-12-21 13.28.35.png


無事、削除する事ができました。

.DS_Storeが邪魔で気になった時にぜひお試しあれ!

参考及び引用記事

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

【Mac初心者向け】.DS_Storeを消したい!

どうも、MacBook Air利用歴1年目の三町哲平です。

最近ふと、GitHubではなくMacBook内のローカル環境のディレクトリに保存していたRailsアプリを使う機会がありまして、Visual Studio Codeで開いてみたところ、

...何これ?となりましたので、早速調べてみました。

.DS_Storeとは?

分からない事はWikipediaが一番詳しく載ってそうなので今回は、Wikipediaを使用しましたが、なんとビックリ!
日本語の「.DS_Store」のページが無いみたいなので、今回は、英語のページを日本語訳で紹介します。

アップル のMacOSオペレーティングシステム、.DS_Storeは店がカスタムその含むの属性というファイルでフォルダなどの位置として、アイコンや背景画像の選択が。名前はDesktopServices Storeの略語であり、その目的を反映しています。それが作成され、維持されることにより、ファインダーのすべてのフォルダ内のアプリケーション、およびファイルと同様の機能があるdesktop.iniをでのMicrosoft Windowsを。ピリオド(ピリオド)文字で始まり、Finderや多くのUnixユーティリティでは 非表示になっています。その内部構造は独自仕様ですが、その後リバースエンジニアリングされています。macOS 10.12 16A238m以降、Finderは.DS_Storeファイルを表示しません(com.apple.finder AppleShowAllFiles YESが設定されている場合でも)。

↑Finder絡みのファイルで、デフォルトは非常時な訳ですね。

目的と場所

ファイル.DS_Storeは、ファイルを共有するサーバーからマウントされたリモートファイルシステム(サーバーメッセージブロック(SMB)プロトコルやApple Filing Protocol(AFP)など)でも、Finderアプリケーションがアクセスする任意のディレクトリ(フォルダー)に作成されます。ただし、リモートファイルシステムは、オペレーティングシステムの設定(アクセス許可など)によって除外される可能性があります。これらのファイルは主にFinderで使用されますが、アイコンの位置や表示設定など、フォルダーの表示オプションに関するメタデータのより汎用的なストアとして想定されていました。たとえば、Mac OS X 10.4「Tiger」以降では、「.DS_Store」ファイルにSpotlightが含まれていますフォルダのファイルのコメント。これらのコメントはまたに格納されている拡張ファイル属性、が、Finderは、それらを読んでいません。
以前のAppleオペレーティングシステムでは、Finderアプリケーションは同様のファイルを作成しましたが、外部ファイルシステムを含め、アクセスされるボリュームのルートで、ボリューム上のすべてのファイルのすべての設定を収集しました(それぞれのフォルダごとに個別のファイルを用意するのではありません)。

↑Finderが自動的にアクセスしてディレクトリ内に自動で生成される様です。

問題

多くのユーザーの苦情により、Appleは、リモートでマウントされたネットワークファイルシステムでこれらのファイルの作成を無効にする手段を公開するようになりました。macOS High Sierra(10.13)以降、Appleは、ブラウジング速度を向上させるために、アルファベット順にソートされたフォルダーの.DS_Storeのメタデータ収集を遅らせています。ただし、いくつかの回避策はありますが、これらの手順はUSBフラッシュドライブを含むローカルドライブには適用されません。Mac OS X 10.5より 前は、.DS_Storeファイルはリモートファイルシステムに表示されていました。
.DS_Storeファイルは頻繁に変更されるため、特に除外されない限り、コミットに表示される可能性があるため、リビジョン管理プロセスに追加の負担がかかる可能性があります。
.DS_Storeファイルは、OS Xユーザーによって作成されたZIPなどのアーカイブに、AppleDoubleなどの他の隠しファイルやディレクトリとともに含まれています。
.DS_Storeファイルは、コピー操作に悪影響を与えることが知られています。ファイル転送用に複数のファイルが選択されている場合、コピー操作は(重複した).DS_Storeファイルに到達すると、すべての進行状況をさかのぼってキャンセルし、ユーザーにコピー操作を最初から再開するように強制します。

↑.DS_Storeは、メタデータ収集が目的で、ユーザーの苦情もあり、対策もあるにはあるらしいです。

.DS_Store邪魔なんですが...

DS_Storeを間違ってGitHubにpushしてしまうかも知れないし、目障りだし、そもそもメタデータの収集とかされたくないから消そうと思ったあなた!

確かに消すことは、出来ますが、また復活するみたいです。

Finderの設定などを格納する一時ファイルなので、作らない設定にするとFinderの振る舞いがおかしくなったりするなんていうウワサもある。
引用元:macOS の .DS_Store を一括削除する - Qiita

上記の引用にもある様に作らない設定にもできるのは、できる。(Wikipediaにも記載されています。)
しかし、私含め初心者であればある程、Finder含め、OS廻りの設定変更は極力避けたいという気持ちになりませんか?私は、なります。それで、一部のアプリが立ち上がらなくなったりしても困ります。※普通に考えたらこの程度のFinderの設定変更でOS等への不具合は考えづらいですが...(汗)

お部屋の掃除を定期的にするような感覚で、もしくはに気になった時にサッと消せる様に

$ find . -name '.DS_Store' -type f -ls -delete

↑コチラのコードでサクッと消すことが出来ます。

スクリーンショット 2020-12-21 13.28.35.png


無事、削除する事ができました。

.DS_Storeが邪魔で気になった時にぜひお試しあれ!

参考及び引用記事

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Failure while executing; git config --replace-all homebrew.analyticsmessage true was terminated by uncaught signal KILL.

brew installをしたらタイトルのエラーが出た。

環境

  • M1 Mac mini
  • Big Sur 11.1
  • HomeBrew 2.7.2(ARM版)

解決法

以下の2つのコマンドを実行

$ brew reinstall gettext
$ brew reinstall pcre2

エラー全文

Warning: git 2.29.2 is already installed and up-to-date
To reinstall 2.29.2, run `brew reinstall git`
/opt/homebrew/Library/Homebrew/cmd/update.sh: line 18:  5855 Killed: 9               "$GIT_EXECUTABLE" "$@"
/opt/homebrew/Library/Homebrew/cmd/update.sh: line 18:  5863 Killed: 9               "$GIT_EXECUTABLE" "$@"
/opt/homebrew/Library/Homebrew/cmd/update.sh: line 18:  5864 Killed: 9               "$GIT_EXECUTABLE" "$@"
/opt/homebrew/Library/Homebrew/cmd/update.sh: line 18:  5882 Killed: 9               "$GIT_EXECUTABLE" "$@"
/opt/homebrew/Library/Homebrew/cmd/update.sh: line 18:  5883 Killed: 9               "$GIT_EXECUTABLE" "$@"
==> Homebrew has enabled anonymous aggregate formula and cask analytics.
Read the analytics documentation (and how to opt-out) here:
  https://docs.brew.sh/Analytics
No analytics have been recorded yet (or will be during this `brew` run).

Error: Failure while executing; `git config --replace-all homebrew.analyticsmessage true` was terminated by uncaught signal KILL.
==> Installing git
Warning: git 2.29.2 is already installed and up-to-date
To reinstall 2.29.2, run `brew reinstall git`
Error: Git is unavailable

雑談的な解決までのあれこれ

brew reinstall gitしても何も解決せず。。。
「よくわからん!」と思って、特段困ってはなかったので、保留にしてた汗
忘れた頃にbrew installしたらエラーが出たので、ググったら以下の記事にたどり着いて無事解決。

https://github.com/Homebrew/discussions/discussions/439

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Xcode デバッグのログを表示させる方法

あれ、ログはどうやったら表示されるの?

スクリーンショット 2021-01-10 18.07.17.jpg
久しぶりにXcodeで開発しようとすると、ログが表示されないことに気がついた。。。

どこをどうやったらログが表示されるのか?
僕みたいにそういう操作で結構手間取る人も多いかと:joy:

ログの表示方法

スクリーンショット 2021-01-10 17.52.27.jpg
View>Debug Area>Activate Console

これで表示されました。

表示系は基本的にViewの項目から選べると覚えておこう

スクリーンショット 2021-01-10 17.52.37.jpg

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

【macOS】goenvを使用したGo(Go言語)のインストール

概要

macOSGo(Go言語)をインストールする手順を記載しています。
GoのインストールにはGoのバージョン管理ツールであるgoenvを使用しました。
また、goenvのインストールにはHomebrewを使用しています。
PATHを通す部分でつまずいたので、そこの解説も後半に記載しています。

[参考] 公式

実行環境

  • macOS Big Sur 11.1
  • Homebrew 2.7.2

インストール手順

1. Homebrewをアップデートする。

Homebrewをインストールできていない方は、こちらの公式からインストールお願いします。

$ brew update

2. goenvのインストール

$ brew install goenv

下記コマンドでバージョンが表示されれば完了。

$ goenv -v

3. 使用できるGO言語のバージョンを確認

$ goenv install -l

バージョンを指定してGoをインストール。 (本記事では1.11.4を指定)

$ goenv install 1.11.4

マシンにインストールされているGoを確認。

$ goenv versions

コマンドを実行すると下記のような出力がターミナルに表示される。
*(アスタリスク)がついているバージョンが現在使用しているバージョン。

  system
* 1.11.4 (set by /Users/[User名]/.goenv/version)

ここまでで一旦インストールは完了。

つまずいたポイント

上記手順でインストール後、goコマンドを実行すると下記のようなエラーが発生。

bash: go: command not found

エラー内容の通り、PATHが通っていないことが原因のようなのでPATHを設定していく。
まずはGoがインストールされているディレクトリを確認。

ただ、goenvでインストールしたために、なかなかディレクトリを見つけられない...。
結局、下記コマンドを実行した時に出力されていたディレクトリをあさってインストール先のディレクトリを発見。

$ goenv version
1.11.4 (set by /Users/[User名]/.goenv/version)

実際にインストールされていたディレクトリは下記。

/Users/[User名]/.goenv/versions/1.11.4/

PATHの設定

.bash_profile(設定ファイル)をvimで開く。

$ vim ~/.bash_profile

.bash_profileに下記を追加。

export GOROOT=$HOME/.goenv/versions/1.11.4
export PATH=$GOROOT/bin:$PATH

.bash_profileの変更を反映。

$ source ~/.bash_profile

Goのバージョンが表示されれば完了。

$ go version
go version go1.11.4 darwin/amd64
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

.DS_Storeファイル

.DS_Store を作成しないようにしてみた。
しばらく様子を見てみる。

https://aprico-media.com/posts/3943

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Docker for Mac上でのunittestを高速化した話

概要

自作したdocker環境があまりにも遅かったので高速化しました

結論としては
ボリュームマウントに大量の読み書きを走らせない
のが最も効果がありました

前提

環境

  • MacOS Mojave バージョン 10.14.6
  • Docker version 20.10.2 build 2291f61
    • php:5.5-apache
    • mysql:5.6
    • redis:2.8.23
    • memcached:1.4.39

unittest内容

  1. gitで指定のブランチにチェックアウト
  2. pipでのパッケージインストール
  3. composerでのパッケージインストール
  4. sqlファイルをDBに投入してのフォーマットチェック
  5. テスト用データをDBに投入
  6. phpコードのフォーマットチェック
  7. phpのunittest(DB/Redis/Memcachedアクセスあり)

効果

ホストマシン上で実行した場合:20分
効率化前:1時間
効率化後:20分

対応策

ボリュームマウントにdelegated/cachedを付けた

https://docs.docker.jp/docker-for-mac/osxfs-caching.html

docker for Macではボリュームマウントに設定されたファイルアクセスが非常に遅いらしく
ホストマシンとコンテナ内で整合性を担保しないかわりに高速化するオプションだそうです

これだけでは体感できるほど高速化できませんでした

ボリュームマウントに巨大なファイルを渡すのをやめた

git管理のプロジェクトコードが巨大なので
ボリュームマウントに設定するのではなくコンテナにCOPYした

これでunittestがかなり早くなり
ホストマシン上で動かすのと大差ない状態になりました

結論

ボリュームマウントに大量の読み書きを走らせない

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む