20200808のMacに関する記事は4件です。

Ubuntu@MacminiをMacで使える便利サーバにする

はじめに

家にあったMacminiの使い途がなかったので、Ubuntuを入れて何か便利に使ってみようと、
色々調べて構築してみました。
また普段使っているパソコンはMacbookなので、それとの連携を考えました。

各スペックと実装する内容は以下の通り。
サーバ側
Macmini

  • 内蔵ドライブはSSD 128GBとHDD 500GBに換装(自作FusionDriveを組んでいた)
  • 外付けドライブはHDD 1TB
  • 内部をあれこれ触っているうちにAirMacとBluetoothのアンテナが外れちゃったので、それぞれUSBで接続

クライアント側
Macbook

やりたいこと

  • TimeMachineサーバ(バックアップディスクのリモート化)
  • iTunesライブラリの外出し (もうiTunesって言わないんだった。。。)
  • 写真ライブラリの外出し
  • メディアサーバ化

Ubuntuのインストール(ざっくり)

  • Ubuntu 18.04のISOイメージをUbuntu日本語サイトからDL、DVDを作成
  • 外付けDVDドライブでインストールDVDから起動
  • Macとのデュアルブートは考えてないから、SSDを全消ししてインストール
  • 一度パーティション暗号化しちゃったけど、あとあと面倒なことになったので暗号化せずに再インストール
  • Wifiは手元にあったPlanexの適当なやつ

インストールの後は以下の3つを実施。

データ保存用ディスクの作成

内蔵HDDの500GBと外付けHDD 1TBをLVMに組み込んで1.5TBのボリュームを作成。(/mediaにマウント)
GUIでやる方法がわからなかったので、コマンドラインで作成。(詳細は割愛)

VNCを有効可

Macのデフォルトのクライアントは、そのままでは繋がらないので、以下のように暗号化要求を無効。

sudo gsettings set org.gnome.Vino require-encryption false

でもデフォルトクライアントは遅かったのでiTeleportを利用。
でもiTeleportって開発、配布終了してない??

sshdを有効可

デフォルトでsshdが入っていなかった(結構驚きだった。)のでインストールから。

sudo apt-get install aptitude
sudo aptitude install ssh

TimeMachineサーバ化

さてここから本題。まずはTimeMachineサーバ化をします。

前はAFPっていうプロトコルで接続するためにNetatalkを入れて実現するんでしたが、
最近のMacOSはAFPでTimeMachineバックアップができなくなったので、
割と新しいSambaを入れます。

sambaのインストール

aptで入れられるSambaではバージョンが古くて、TimeMachineバックアップはできないので、
ソースからコンパイルして、インストールします。

あんまりちゃんとメモしてなかったので、色々割愛。
ソースはこちらからダウンロード。Samba HP
自分はバージョンは4.11.9を入れた模様。

configure時のオプションは、こちらのサイトとかを参照。

sambaの設定

設定はこんな感じかな?

/etc/samba/smb.conf
[global]
# globalセクションの最後の方とかに以下を追加
# Special configuration for Apple's Time Machine
   vfs objects = catia fruit streams_xattr
   fruit:model = MacMini # ここは何でもいいっぽい。多分。
   fruit:resource = file
   fruit:metadata = netatalk
   fruit:locking = netatalk
   fruit:encoding = native
   durable handles = yes
   kernel oplocks = no
   kernel share modes = no
   posix locking = no
   fruit:advertise_fullsync = true
   smb2 leases = yes
   fruit:aapl = yes

[TimeMachine@Ubuntu]
# 上記の名前がTimeMachineの設定に出てくる。
   path = /media/timemachine # バックアップを取るパスを指定。
   valid users = hoge
   writable = yes
   durable handles = yes
   kernel oplocks = no
   kernel share modes = no
   posix locking = no
   vfs objects = catia fruit streams_xattr
   ea support = yes
   browseable = yes
   read only = No
   inherit acls = yes
   fruit:time machine = yes
   fruit:aapl = yes
   spotlight = yes
   create mask = 0666
   directory mask = 0777
   comment = Time Machine
   fruit:time machine max size = 512G # timemachineのボリュームを制限するならここで指定。

mDNSでMacminiを探せるように、avahi-daemonをインストール。
これはaptでインストールしても問題ないので、諸々割愛。

バックアップが途中で止まっちゃったりするようであれば、こちらを参考。
iPhoneの同期とかTimeMachineバックアップのときにSambaがCoreファイルを吐いて強制終了する話

iTunesライブラリの外出し

ローカルに音楽ファイルがあると、ローカルのSSDを食いつぶしちゃうので、
これもさっきのSambaで共有したフォルダに置いておきます。

それ用のフォルダの設定はこんな感じ。

/etc/samba/smb.conf
[media]
   comment = media
   path = /media
   guest ok = no
   browseable = yes
   read only = no
   create mask = 0666
   directory mask = 0777

あとはMacで共有フォルダをマウントして、iTunesのライブラリ(Music Media)の場所を、マウントしたボリュームに変更。
スクリーンショット 2020-08-08 17.18.23.png

さらにファイル->ライブラリ->ライブラリを整理...を選択して、
ファイルに結合にチェックを入れてOKを押すと、共有フォルダにファイルがコピーされる。
スクリーンショット 2020-08-08 17.19.58.png

ローカル側でCDの読み込みをしても、ちゃんとサーバ側にファイルができるので便利。

写真ライブラリの外出し

写真もiTunesと同じ用にやればライブラリの外出しはできるんだけど、
そうすると今度はiCloud写真が無効化されちゃうので、結局もとに戻した。

メディアサーバ化

ソフトを探してみたが、しっくり来るものがなく今回は保留。
そもそもメディアサーバってあんまり用途がないかも・・・。

はじめ音楽ファイルはMacmini側からDLNAで配信すればいいかなーって思ってたけど、
それだとiPhoneに同期できないのやめました。


こんな感じでMacminiの再利用・有効活用ができて、MacBookのディスク使用量も削減できました。

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

【HOMEBREW】 Mac OSのパッケージマネージャーについて node.jsやってたら学んだ事

【この記事で身に付くこと】

■HOMEBREWとは基礎
■mysqlを自身のMacへ

【背景】

■node.jsでの開発途中で、mysqlが無く、先に進めなかった為

【開発環境】

■ Mac OS catalina
■ Homebrew 2.4.9
■ mysql Ver 8.0.21

【実装】

HOMEBREW入れます。

*Xcodeも自動的にインストールされます。便利

mac.terminal
$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
.
.
.
// 5分くらい待ちます。下記の文は自動で出てきます。
$ Downloaded Command Line Tools for Xcode 

mysql入れます。

mac.terminal
$ brew install mysql 

確認

mac.ternminal
$ brew -v
Homebrew 2.4.9
Homebrew/homebrew-core (git revision b32b4; last commit 2020-08-08)

$ mysql --version
mysql  Ver 8.0.21 for osx10.15 on x86_64 (Homebrew)

以上。

【まとめ】

■HOMEBREWとはMACのOSを動かす、パッケージマネージャー
■mysqlはDBの種類

 パッケージマネージャー = app store
 パッケージ = app
みたいな感じでしょうか。。
appstoreがあるからappがダウンロードできる。

【合わせて読みたい】

■ 【node.js】 node.jsインストール 芋っていたけど、簡単だった件...
https://qiita.com/tanaka-yu3/items/739db5ffed24a8d9ae4b

■ 【comandLine】 一言で コマンドライン 各種コマンド ターミナル
https://qiita.com/tanaka-yu3/items/b32e353bd6d7c9ebd4fb

■作業環境を整えるMacOSXのパッケージマネージャ「Homebrew」のインストール方法と使い方
https://liginc.co.jp/web/tool/mac-iphone/151069

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

grepを使ったソースコードファイルの検索

目的

  • 特定の文字列が記載されているソースコードのファイルを検索するコマンドを紹介する

実施環境

  • ハードウェア環境
項目 情報
OS macOS Catalina(10.15.5)
ハードウェア MacBook Pro (13-inch, 2020, Four Thunderbolt 3 ports)
プロセッサ 2 GHz クアッドコアIntel Core i5
メモリ 32 GB 3733 MHz LPDDR4
グラフィックス Intel Iris Plus Graphics 1536 MB

コマンドの紹介

  • ソースコードのファイルがあるディレクトリに移動して下記コマンドを実行する。

    $ grep -ilr "検索文字列" ./*
    
  • 上記のコマンドを実行すると「検索したい文字列」が記載されているファイル名が出力される。

コマンドとオプションの簡単な説明

  1. コマンド grep
    • ファイルに対して実行すると条件に合致した行を出力する。
    • 条件には正規表現を使うことができる。
    • よく文字列検索やログの検索に使用する。
    • 大文字と小文字を区別して検索する。
    • $ grep "検索文字列"と実行することで検索文字列を次含む行が出力される。
  2. オプション -iまたは--ignore-case
    • 大文字、小文字を区別せずに検索を行う。
  3. オプション -lまたは--files-with-matches
    • 検索にヒットした行を含むファイル名のみを出力する。
  4. オプション -rまたは-Rまたは--recursive
    • 再起的に検索する。
  5. ./*
    • 検索ディレクトリの指定をしている。
    • .がカレントディレクトリを指す。
    • /*がディレクトリ直下全てを指す。
    • ./*で「カレントディレクトリ直下全て」を指定している。
  6. $ grep -ilr "検索し文字列" ./*
    • 上記を踏まえると、「検索対象ディレクトリを本ディレクトリ直下の全てとして、検索文字列を検索する。検索文字列の大文字小文字を区別せず、ヒットした行があるファイル名を出力して、かつ検索は対象ファイルが存在する限り再起的に検索する」ということになる。
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

macOSのスクリーンショット設定を変更する

概要

macOSのスクリーンショット機能って便利ですよね。

特にCommand + Shift + 4での部分選択しての保存は色々な場面で重宝しています。

今回はそのスクリーンショット機能をさらに便利にしたときの設定変更を書き残します。

保存先ディレクトリ

デフォルトだとスクリーンショットはデスクトップに保存されます。

デスクトップにできる限りモノを置きたくない僕にとって、これは死活問題です。笑

幸いスクリーンショットの保存先はターミナルからコマンドを実行することで変更することが出来ます。

自分はダウンロードフォルダにスクショを保存したかったので、~/Downloadsと指定しています。

defaults write com.apple.screencapture location [ファイルの保存先のパス]; killall SystemUIServer;

ファイル名

デフォルトの保存名はスクリーンショット YYYY-MM-DD hh.mm.ssとなっています。

ファイル名で変更できるのは大きく2点あります。

文字列部分の変更

設定した文字列でファイル名のスクリーンショットの部分が置換されます。

空文字""を指定すると文字列部分を削除できます。

defaults write com.apple.screencapture name "[任意の文字列]"; killall SystemUIServer;

日付の有無の変更

trueで日付あり、falseで日付無しとなります。

(日付の表示形式も変えられたら良かったなあ。)

defaults write com.apple.screencapture "include-date" [true|false]; killall SystemUIServer;

保存形式

デフォルトではpngで保存されます。

自分は軽量なファイルで保存したかったのでjpgで保存するようにしています。

jpg以外にも複数のファイル形式を指定できるみたいです。

defaults write com.apple.screencapture type [jpgなど]; killall SystemUIServer;

まとめ

上記3点を設定することで、macOSのスクリーンショット機能がより使いやすくなるかと思います!

参考

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