20210108のMacに関する記事は8件です。

Mac で docker-compose up した時にポートエラーになった際の対処法

これは何?

docker-compose up でコンテナを立ち上げようとした際に以下エラーが出たのでその対処法を記載している。

Starting lb ... error
ERROR: for lb  Cannot start service lb: Ports are not available: listen tcp 0.0.0.0:80: bind: address already in use

原因と対処法

文字通り他のアプリケーションがポート 80番を使用しているため使えないという内容。
なので、ポートを使用しているプロセスを探す。

$ sudo lsof -i -P | grep ":80"

httpd が 80番ポートを使っていることがわかった。

httpd      103            root    4u  IPv6 0xb54e8c868de16e45      0t0    TCP *:80 (LISTEN)
httpd     1221            _www    4u  IPv6 0xb54e8c868de16e45      0t0    TCP *:80 (LISTEN)
com.docke 2202 ishiharanaohiro   83u  IPv6 0xb54e8c868494ae45      0t0    TCP *:8025 (LISTEN)

httpd の PID(103、1221) を削除する。

$ kill -l 103
$ kill -l 1221

docker-compose up -d で無事起動。めでたしめでたし!

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

sshの使い方

前書き

最近はリモートでお仕事をすることが多くなってきましたよね。
私もリモートで色々な作業をすることが多く、SSHを頻繁に利用しています。

TeraTermやiTermなど様々なSSHクライアントがある中、Linuxであればコンソール、
MacであればTerminalを使ってSSH接続をするのが好みですかね...

ということでここではSSH接続の方法と便利な使い方について紹介します。

1. Macの方

MacにはあらかじめTerminalにsshが用意されているので、特にインストールなどは必要ありません。
ssh接続する際は、以下のように実行します。

$ ssh (接続するユーザー名)@(接続先ホスト名or接続先IP)
$ ssh user@192.168.100.10

パスワードを入力したら、接続完了です。

2. Linux(Ubuntuなど)の方

LinuxにはSSHがあらかじめ用意されていない可能性があります。
その場合は以下の手順でSSHをインストールしましょう。

$ sudo apt update && sudo apt -y install ssh

sudo : 管理者権限で実行する
apt update : パッケージのアップデート

インストールが完了したら、SSHの実行です。方法はMacの方と同様に実行してOKです。

3. configについて

sshをインストールしたにホームディレクトリに「.ssh」というディレクトリが生成されているはずです。
.sshディレクトリが見当たらない場合は、以下の方法で.sshディレクトリを生成してください。

$ cd                                                              /*ホームディレクトリに移動*/
$ ssh-keygen                                                      /*sudo はつけない*/
Generating public/private rsa key pair.
Enter file in which to save the key (/home/hoge/.ssh/id_rsa):     /*何も入力せずにEnter*/
Created directory '/home/hoge/.ssh'.
Enter passphrase (empty for no passphrase):                       /*何も入力せずにEnter*/
Enter same passphrase again:                                      /*何も入力せずにEnter*/
Your identification has been saved in /home/hoge/.ssh/id_rsa
Your public key has been saved in /home/hoge/.ssh/id_rsa.pub
The key fingerprint is:
***************************************
The key's randomart image is:
***************************************

ホームディレクトリに「.ssh」というフォルダが生成されたら、.sshディレクトリ内にconfigというファイルを作って、エイリアスを作成していきます。

$ cd .ssh
$ touch config
$ vi config

configファイルをテキストエディタで開いたら、以下のように記述します。

Host work              <- work : 接続するときに入力する名前
     HostName 192.168.100.1  <- 192.168.100.1 : 接続先ホスト
     User hoge           <- hoge : 接続するユーザー名

これでconfigファイルの記述は終わりです。
実際に接続する際は、以下のように実行しましょう。

$ ssh work <- 'work'はconfigで指定した名前

sshの使い方は以上です。ぜひこの機会にsshを利用してみてください!

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

低スペのMacBook Pro late 2013にmacOS 11入れて意外とどうにかなっている話

Zennと同時投稿 https://zenn.dev/k_u_0615/articles/3e3ca49e7d1cd5

TL;DR

  • OS更新時に発生していたバグは修正済みなので問題なし
  • パフォーマンスをあげる設定をしたり、使うアプリに気をつけていれば案外使える
  • Web開発ぐらいならいけるけど、dockerでバックエンド動かしているとキツくなる

スペック

スクリーンショット 2021-01-04 6.36.22.png

メモリ4GB!!!!?

文鎮化するバグについて

上記の記事では、古いMBPではmacOS 11を入れると文鎮化してしまうと書かれていますが、こちらのバグはmacOS 11.1にて解決しているようです。

パフォーマンスをあげる設定

  1. システム環境設定を開く
  2. アクセシビリティ→ディスプレイをクリック
  3. 以下2つの設定を有効にする
  • 透明度を下げる (必須)
    • dockの背景色などを透かせる機能だが、オフにするとパフォーマンスが劇的に良くなる
  • 視差効果を減らす (好みで)
    • 仮想デスクトップの切り替えやMission Controlなどの動き(視差効果)がフェードになり、パフォーマンスが少し良くなる
    • 個人的に視差効果は結構好きなので、有効にしていません

スクリーンショット 2021-01-08 21.11.40.png

運用のコツ

  • できるだけChromeではなくSafariを使う
  • Electron系のアプリはできるだけ使わない
    • メモやmarkdownぐらいならvscodeではなくネイティブのテキストエディタ(CotEditorなど)を使用する
    • チャットアプリはSafariで頑張るか、スマホで対応する
  • vscodeを使用する際、使わない拡張は無効化するかアンインストールする

使ってみた感想

諸用でcorei7 MBP late2020という贅沢なものから7年前のMBPになってしまいました。
MBP late2020のときに使用していたBigSurの新しいUIに見慣れてしまい、一か八かでアップグレードしましたが、びっくりするほど普通に使えていて驚いています。
外先でも数時間作業できますし、Web開発ぐらいならserveコマンドを動かしながらブラウザで確認してもギリギリどうにかなってます。
ただ、メモリがカツカツなので使わないアプリやタブ、拡張などはこまめに確認しないといけません。
また、dockerでなにかをさせたら流石にキツいです。
そこまでヘビーな開発は求められていないのもあり、これで仕事しても全然いけそうです。

ただ、騙し騙し使っているのは事実なので、お金に余裕ができたらM1 MacBookAirが早く欲しいです、、

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

macでmysqlが動かなくなった時の解決策 (Railsプロジェクト動かす編)

久しぶりにローカルのmysql使ったら動かなくなった

railsプロジェクトで久しぶりにlocalのmysql使ったらmysqlが動かなくなっていました。その解決した方法を以下に記述します。

とりあえず今あるmysqlを全部消す

データ消えるけど、seedデータで入れ直しましょう。結果的に早いです。古いmysqlが悪さしている場合、解決にかなり時間を取られてしまうのでdockerでmysqlを起動させて接続するようなことをしないのであれば脳死でmysqlを消しましょう。

  • コミュニティエディションのmysqlを削除する方法
rm -rf ~/Library/PreferencePanes/My*
sudo rm /usr/local/mysql
sudo rm -rf /usr/local/mysql*
sudo rm -rf /Library/StartupItems/MySQLCOM
sudo rm -rf /Library/PreferencePanes/My*
sudo rm -rf /Library/Receipts/mysql*
sudo rm -rf /Library/Receipts/MySQL*
sudo rm -rf /private/var/db/receipts/*mysql*
sudo rm /Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist
  • brewで入れたmysqlを削除する方法
$ brew uninstall mysql
sudo rm -rf /usr/local/Cellar/mysql*
sudo rm -rf /usr/local/bin/mysql*
sudo rm -rf /usr/local/var/mysql*
sudo rm -rf /usr/local/etc/my.cnf
sudo rm -rf /usr/local/share/mysql*
sudo rm -rf /usr/local/opt/mysql*
sudo rm -rf /etc/my.cnf

上2つとも流しておけばmysqlは全部消えるはず。

brewでmysqlをinstall

今回はbrewを使ってmysqlをinstallします。現状、brew install mysqlをすると8系列のmysqlがinstallされてしまうので、無難に5.7をinstallします。

brew install mysql@5.7

pathを通すために以下の1行を自分が使っているシェルの設定ファイルに記載してください。 ( bashなら ~/.bash_profile )

export PATH="/usr/local/opt/mysql@5.7/bin:$PATH"

※もし昔に設定していたmysqlのPATHがあったら削除しましょう。

mysql.server start
Starting MySQL
 SUCCESS!

となればmysqlのinstallまで成功です。

過去に起動したRailsプロジェクトを動かす

以下はrailsのプロジェクトを動かすときのはまりポイント置いておきます。

過去にbundle installを実行したプロジェクトだと、その時入れてあったmysqlのversionに合わせてgemがinstallされていると思うので、rails db:createを実行すると以下のようなエラーが出てmysql周りが怒られているよ!というエラー分が表示されると思います。

> rails db:create
rails aborted!
LoadError: dlopen

ですので以下のコマンドでgemをuninstallします。

bundle exec gem uninstall mysql2

して

bundle install 

を実行してmysql2のgemを入れ直しましょう。
ここでエラーが出る人は

bundle config --local build.mysql2 "--with-ldflags=-L/usr/local/opt/openssl/lib"

bundle install前に上記コマンドを流してみてください。

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

はじめてSwiftUIでMacアプリを作って画面遷移に困った話

はじめに

今までiPhoneアプリケーションの経験しかなく、Macアプリを作成したことはありませんでした。
最初からMacアプリを作ってみるとiPhoneとの違いに少し驚いた話です。
SwiftUIについても初心者なので勉強中です。

ちなみに環境は以下
Xcode:11.7
Swift5

ログイン画面からメイン画面に遷移したい

Appleのチュートリアルやったときに画面遷移なかったなとは思ったのですが、
iPhoneのようにNavigationViewでは遷移しません。
チュートリアルにもありますがNavigationViewでは1画面にリスト画面と詳細画面が並べられることになります。

私はログイン画面でログインした後メイン画面に移動する処理がうまく書けず困ったので
画面遷移についてメモを残します。

ZStackを使う方法

ZStackを使って、Viewを切り替えるように実装しました。

ZStack
    var body: some View {
        ZStack {
            // メイン画面を表示
            MainView()
            // 上からログイン画面を表示
            if !isLogin {
                LoginView()
            } 
        }
    }

メイン画面の上からログイン画面が出てきた方がMacアプリっぽいかなと思ったのですが、
ifelseにして丸ごと切り替えても良かったかもしれません。

sheetを使う方法

メイン画面の上からログイン画面を出すならsheetも良かったです。
macOSBigSureだととても綺麗に見えます。
macOS Catalinaだと上からピロっと出る感じであんまりおすすめできませんでした。

sheet
    var body: some View {
        VStack {
            // メイン画面を表示
            MainView()
        }.sheet(isPresented: $isLogin, content: {
            LoginView()
        })
    }

感想

sheetは画面外をクリックされると閉じてしまうのでログインには向きませんね!
sheetと同じようなものに.alertもありますがこちらは「Alert」型でないといけないので画面を切り替えるには使えません。
またsheetとalertを多用すると画面遷移時にぶつかって?しまいどちらかが表示されない場合もありました。
なにもなければZStackで切り替えるのが一番シンプルだなと思います。

スマートな画面遷移方法があればぜひ教えてください!

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

Macの「Automator」でファイル名を一括変更する

はじめに

「Automator」とは、Macに標準搭載されているアプリケーション。作業を自動化してくれる。
Automator 一括リネーム 等で検索すると類似の記事はあるが、数年前のものが多かったため投稿。

Automatorの設定

  1. Automatorを起動し、新規を選択。 スクリーンショット 2021-01-08 13.50.13.png
  2. アプリケーションを選択。スクリーンショット 2021-01-08 13.53.15.png
  3. 変数から「Finder項目の名前を変更」を選択し、右にドラッグ。スクリーンショット 2021-01-08 13.54.23.png
  4. アラートが出たら、追加しないを選択します。
    スクリーンショット 2021-01-08 13.56.57.png

  5. 連番付きの名前を選択し、各項目を設定します。
    スクリーンショット 2021-01-08 13.59.29.png

  6. 連番の後ろに数字を追加したい場合は、名前のあとにテキストを追加します。スクリーンショット 2021-01-08 14.01.29.png

  7. 全ての設定ができたら、⌘+Sでデスクトップ等に保存します。
    スクリーンショット 2021-01-08 14.02.36.png

ファイル名の一括変更の実行

1.変更したいファイルを選択し、設定したアプリのアイコン上にドラックします。
スクリーンショット 2021-01-08 14.05.14.png
2.これでドラッグしたファイルの名前が一括で変更されます。

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

【最新】Macの「Automator」でファイル名を一括変更(リネーム)する

はじめに

「Automator」とは、Macに標準搭載されているアプリケーション。作業を自動化してくれる。
Automator 一括リネーム 等で検索すると類似の記事はあるが、数年前のものが多かったため投稿。

Automatorの設定

  1. Automatorを起動し、新規を選択。 スクリーンショット 2021-01-08 13.50.13.png
  2. アプリケーションを選択。スクリーンショット 2021-01-08 13.53.15.png
  3. 変数から「Finder項目の名前を変更」を選択し、右にドラッグ。スクリーンショット 2021-01-08 13.54.23.png
  4. アラートが出たら、追加しないを選択します。
    スクリーンショット 2021-01-08 13.56.57.png

  5. 連番付きの名前を選択し、各項目を設定します。
    スクリーンショット 2021-01-08 13.59.29.png

  6. 連番の後ろに数字を追加したい場合は、名前のあとにテキストを追加します。スクリーンショット 2021-01-08 14.01.29.png

  7. 全ての設定ができたら、⌘+Sでデスクトップ等に保存します。
    スクリーンショット 2021-01-08 14.02.36.png

ファイル名の一括変更の実行

1.変更したいファイルを選択し、設定したアプリのアイコン上にドラックします。
スクリーンショット 2021-01-08 14.05.14.png
2.これでドラッグしたファイルの名前が一括で変更されます。

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

ファイルシステム別の制限事項まとめ

1.この記事の内容

ファイルシステムの種類とOSとの対応関係及び制限事項を整理します.

ファイルシステムとは,OSが提供する機能の一つで,HDDやUSBメモリ等の記憶装置に保存されたデータの管理や操作に必要な機能です.
フォーマットの際に,FAT32,exFAT,NTFS等が指定できますが,OSごとに対応するフォーマットが異なります.

例えば,FAT32はWindowsやMac,Linux,raspbian等多くのOSが対応している為,FAT32でフォーマットした記憶装置を用いるとパソコン間でデータの受け渡しが可能となります.
ただし,ファイルシステムごとに,1ファイルのサイズ上限や,1フォルダ内に格納可能なファイル数等の制限がある為,注意が必要です.

本記事の調査にあたり参照したサイトは,ページ下部の関連リンクに記載しています.

2.ファイルシステムの種類とOSとの対応関係一覧

個人的によく使用する,FAT32,exFAT,NTFS,ext4について調査しました.

RW:読み書き可能
RO:読み取りのみ可能
×:非対応

ファイルシステム Windows Mac Linux ボリュームサイズ 1ファイルの最大サイズ 1ディレクトリ内の最大ファイル数
FAT32 RW RW RW 2TiB
※Windowsでは32GiB
4GiB 65,535(※1)
exFAT RW RW × 64ZiB 16EiB 2,796,202
NTFS RW × × 16EiB 16EiB 4,294,967,295
ext4 × × RW 1EiB 16TiB i-nodeに依存

※1:ファイル名が8.3形式(ファイル名(8文字).拡張子(3文字))準拠かつルートディレクトリの場合のファイル数.ファイル数が長い場合やサブディレクトリの場合は,ファイル数が抑制される.

ファイル名の形式 ルートディレクトリ サブディレクトリ ファイル名備考
8.3形式 65,535 65,534 大文字と記号のみ12文字まで
13文字 65,535÷3→21,845 65,534÷3→21,844 小文字や数字含む13文字の例
25文字 65,535÷4→16,383 65,534÷4→16,383 小文字や数字含む25文字の例

3.さいごに

RaspberryPi上でCOCOデータセットの「2017 Test images [41K/6GB]」を扱おうと,FAT32でフォーマットしたUSBメモリにコピーを試みたところ,下記のエラーが発生し,FAT32の制約事項(1ディレクトリ内のファイル数超過)への該当が判明したことから本調査を行いました.

同様の問題に遭遇した方の参考になれば幸いです.

  • Windowsコピーエラー(予期しないエラー,0x80070052)
    Windowsファイルコピーエラー.png

  • WSLファイルコピーエラー("cannot create regular file")
    WSLファイルコピーエラー.png

4.関連リンク

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