20190830のMacに関する記事は9件です。

Homebrewの基本操作

Homebrewの基本操作

インストール可能なパッケージを確認する

$ brew search wget
==> Formulae
wget ✓   wgetpaste

上記のコマンドでwgetが含まれるパッケージが表示されます。
「✔︎」がついてるものはすでにインストールされているということになります。逆についてないと、未インストールということになります。
ちなみに、ログに記載のあるFormulaeはHomebrewの用語でパッケージのことをさします。

異常確認

$brew doctor
Your system is ready to brew.

Homebrewに異常がないかを確認するためのコマンドです。
上記のような表示だと問題ありません。
異常がある場合は指示がログに残るので、その時は確認してください。

バージョンを確認する

$ brew --version
Homebrew 2.0.6
Homebrew/homebrew-core (git revision 4050; last commit 2019-04-03)

上記のコマンドでHomebrewのバージョンを確認できます。

インストール済みのパッケージ一覧を確認

$ brew list
gettext     libidn2     libunistring    openssl     wget

上記のコマンドでパッケージの一覧を確認できます。
いくつかパッケージが確認できますが、これはwgetをインストールした際に依存関係にあるパッケージが自動インストールされたものも含まれます。

インストール済みのパッケージの起動状況を確認

$ brew services list
Name         Status  User         Plist          
postgresql   started (ユーザー名) /Users/(ユーザー名)/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
redis        stopped

上記のコマンドを実行すると、現在バックグラウンドで起動しているようなものの起動状況が確認できます。

パッケージ情報を確認

$ brew info wget
wget: stable 1.20.1 (bottled), HEAD
Internet file retriever
https://www.gnu.org/software/wget/
/usr/local/Cellar/wget/1.19.5 (50 files, 3.7MB) *
  Poured from bottle on 2018-06-08 at 17:04:24
From: https://github.com/Homebrew/homebrew-core/blob/master/Formula/wget.rb
==> Dependencies
Build: pkg-config 
Required: libidn2 ✘, openssl 
==> Options
--HEAD
    Install HEAD version
==> Analytics
install: 134,032 (30 days), 480,367 (90 days), 1,454,711 (365 days)
install_on_request: 120,534 (30 days), 421,140 (90 days), 1,275,412 (365 days)
build_error: 0 (30 days)

上記のようにこのコマンドを叩くことで、パッケージ情報を確認することができます。

更新のあるパッケージを確認

$ brew outdated

上記のコマンドでアップデートが溜まっているパッケージを確認できます。

パッケージを更新

//パッケージ全部
$ brew upgrade

//パッケージ指定
$ brew upgrade パッケージ名

上記のコマンドでパッケージを更新できます。

古いバージョンのパッケージの削除

//古いバージョンのパッケージの削除
$ brew cleanup

//削除対象のパッケージと容量を確認
$ brew cleanup -n 

上記のコードで古いバージョンのパッケージの削除や確認を行います。

パッケージのアンインストール

$ brew uninstall パッケージ名

上記のコマンドでパッケージをアンインストールできます。

Homebrewのアンインストール

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)"

上記のコードを実行することで、Homebrewとインストールしたパッケージも同時にアンインストールできます。
このコマンドを実行すると、アンインストールするファイルの一覧が表示されてから確認を挟んでくれます。

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

Homebrewのインストール方法(For:Mac)

Homebrewとは

homebrew.png
HomebrewはMacOS用のパッケージ管理システムです。
このパッケージ管理システムというのは、パケージをインストールしてりインストールしたり、アンインストールできるシステムのことです。

特徴

Homebrewの特徴は、

1行叩くだけでパッケージがインストールできる
パッケージの依存関係も管理してくれる

というような点が挙げられます。
上記で述べた依存関係というのは、例えばAというパッケージを使うためにはBがインストールされている必要があるとします。そのような場合、当然まず最初にBをインストールしてから、Aをインストールする必要がありますが、Homebrewを使用すればAをインストールするだけで、Bも自動的にインストールしてくれます。これが依存関係を管理してくれるということです。結果的には必要なパッケージのインストールコマンドのみ叩けばいいので、1行叩くだけで作業が済みます。

今回の実行環境

MacOS Mojave 10.41.1

Homebrewをインストールする手順

Homebrewインストールの手順は大きく分けて3段階です。

1 インストール用のスクリプトをコピペで実行
2 Xcode Command Line Toolsのインストール
3インストールできたかを確認

以上です!

1 スクリプト実行
スクリーンショット 2019-08-30 20.01.39.png
Homebrew公式サイトにアクセスしていただき、赤枠で囲んでいるコマンドをコピペしてターミナルに打ち込みます。

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

上記のコードを叩くわけですが、見てみるとrubyのコードで書かれています。一見rubyをインストールしていない端末だと、リジェクトされてしまいそうですが、Macには標準でrubyがインストールされているので問題ありまっせん。

$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
  ==> This script will install:
  /usr/local/bin/brew
  /usr/local/share/doc/homebrew
  /usr/local/share/man/man1/brew.1
  /usr/local/share/zsh/site-functions/_brew
  /usr/local/etc/bash_completion.d/brew
  /usr/local/Homebrew
  ==> The following existing directories will be made group writable:
  /usr/local/bin
  /usr/local/share
  /usr/local/share/man
  /usr/local/share/man/man1
  ==> The following existing directories will have their owner set to user-name:
  /usr/local/bin
  /usr/local/share
  /usr/local/share/man
  /usr/local/share/man/man1
  ==> The following existing directories will have their group set to admin:
  /usr/local/bin
  /usr/local/share
  /usr/local/share/man
  /usr/local/share/man/man1
  ==> The following new directories will be created:
  /usr/local/Cellar
  /usr/local/Homebrew
  /usr/local/Frameworks
  /usr/local/etc
  /usr/local/include
  /usr/local/lib
  /usr/local/opt
  /usr/local/sbin
  /usr/local/share/zsh
  /usr/local/share/zsh/site-functions
  /usr/local/var
  ==> The Xcode Command Line Tools will be installed.

  Press RETURN to continue or any other key to abort
Copy

上記が実行結果になります。
以上のようにログに表示されたら問題ありません。

2 Xcode Command Line Toolsのインストール

==> The Xcode Command Line Tools will be installed.
Press RETURN to continue or any other key to abort
Copy

先ほどの実行ログの最後から3行目に上記のような記述があります。
これを訳しますと、「Xcode Command Line Toolsをインストールされます。続ける場合RETURNを押してください。」と書いてあります。

指示通りRETURNキーを押すと、その直後にパスワードの入力を求められるので、Macの画面のロックを解除するパスワードを入力しましょう。
これでXcode Command Line Toolsがインストールされます。

==> /usr/bin/sudo /bin/chmod u+rwx /usr/local/bin /usr/local/share /usr/local/share/man /usr/local/share/man/man1
  Password:
  ==> /usr/bin/sudo /bin/chmod g+rwx /usr/local/bin /usr/local/share /usr/local/share/man /usr/local/share/man/man1
  ==> /usr/bin/sudo /usr/sbin/chown user-name /usr/local/bin /usr/local/share /usr/local/share/man /usr/local/share/man/man1

  ︙
  ︙

  Resolving deltas: 100% (56/56), done.
  Tapped 4572 formulae (4,825 files, 12.2MB)
  ==> Cleaning up /Library/Caches/Homebrew...
  ==> Migrating /Library/Caches/Homebrew to /Users/user-name/Library/Caches/Homebrew...
  ==> Deleting /Library/Caches/Homebrew...
  Already up-to-date.
  ==> Installation successful!

  ==> Homebrew has enabled anonymous aggregate user behaviour analytics.
  Read the analytics documentation (and how to opt-out) here:
    https://docs.brew.sh/Analytics.html

  ==> Next steps:
  - Run `brew help` to get started
  - Further documentation: 
    https://docs.brew.sh

上記のようにログに表示されたらインストール完了です。

3 確認

$ brew help
  Example usage:
    brew search [TEXT|/REGEX/]
    brew info [FORMULA...]
    brew install FORMULA...
    brew update
    brew upgrade [FORMULA...]
    brew uninstall FORMULA...
    brew list [FORMULA...]

  Troubleshooting:
    brew config
    brew doctor
    brew install --verbose --debug FORMULA

  Contributing:
    brew create [URL [--no-fetch]]
    brew edit [FORMULA...]

  Further help:
    brew commands
    brew help [COMMAND]
    man brew
    https://docs.brew.sh

brew helpコマンドを実行したら、上記のようにhome brew一覧が表示されたら正常にインストールされています。

パッケージをインストールしてみる

//wgetがインストール名
brew install wget

上記のコマンドでインストールします。

$ brew install wget
  ==> Installing dependencies for wget: gettext, libunistring, libidn2, openssl
  ==> Installing wget dependency: gettext
  ==> Downloading https://homebrew.bintray.com/bottles/gettext-0.19.8.1.high_sierr
  ######################################################################## 100.0%

  ︙
  ︙

  ==> Summary
    /usr/local/Cellar/openssl/1.0.2o_1: 1,791 files, 12.3MB
  ==> Installing wget
  ==> Downloading https://homebrew.bintray.com/bottles/wget-1.19.5.high_sierra.bot
  ######################################################################## 100.0%
  ==> Pouring wget-1.19.5.high_sierra.bottle.tar.gz
    /usr/local/Cellar/wget/1.19.5: 50 files, 3.7MB

上記のような表示で、無事にインストールされています。

最後に

今回はHomebrewのインストール方法を紹介しましたが、Linux用のLinuxbrewも存在していてるので、それと混同し内容気をつけてください。

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

LightGBMがimportできない場合

Macで機械学習しているときにLightGBMを使おうとすると

[2019-08-30 13:08:07,214] ERROR in app: Exception on / [GET]
Traceback (most recent call last):
  File "/private/var/folders/59/gg2vm1h52x7fz0254tg9x29c0000gn/T/tmpjI55tQ/lib/python3.7/site-packages/flask/app.py", line 2292, in wsgi_app
    response = self.full_dispatch_request()
  File "/private/var/folders/59/gg2vm1h52x7fz0254tg9x29c0000gn/T/tmpjI55tQ/lib/python3.7/site-packages/flask/app.py", line 1815, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/private/var/folders/59/gg2vm1h52x7fz0254tg9x29c0000gn/T/tmpjI55tQ/lib/python3.7/site-packages/flask/app.py", line 1718, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "/private/var/folders/59/gg2vm1h52x7fz0254tg9x29c0000gn/T/tmpjI55tQ/lib/python3.7/site-packages/flask/_compat.py", line 35, in reraise
    raise value
  File "/private/var/folders/59/gg2vm1h52x7fz0254tg9x29c0000gn/T/tmpjI55tQ/lib/python3.7/site-packages/flask/app.py", line 1813, in full_dispatch_request
    rv = self.dispatch_request()
  File "/private/var/folders/59/gg2vm1h52x7fz0254tg9x29c0000gn/T/tmpjI55tQ/lib/python3.7/site-packages/flask/app.py", line 1799, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/private/var/folders/59/gg2vm1h52x7fz0254tg9x29c0000gn/T/tmpjI55tQ/lib/python3.7/site-packages/lightgbm/__init__.py", line 8, in <module>
    from .basic import Booster, Dataset
  File "/private/var/folders/59/gg2vm1h52x7fz0254tg9x29c0000gn/T/tmpjI55tQ/lib/python3.7/site-packages/lightgbm/basic.py", line 34, in <module>
    _LIB = _load_lib()
  File "/private/var/folders/59/gg2vm1h52x7fz0254tg9x29c0000gn/T/tmpjI55tQ/lib/python3.7/site-packages/lightgbm/basic.py", line 29, in _load_lib
    lib = ctypes.cdll.LoadLibrary(lib_path[0])
  File "/usr/local/Cellar/python/3.7.4/Frameworks/Python.framework/Versions/3.7/lib/python3.7/ctypes/__init__.py", line 442, in LoadLibrary
INFO     2019-08-30 04:08:07,234 module.py:861] default: "GET / HTTP/1.1" 500 290
    return self._dlltype(name)
  File "/usr/local/Cellar/python/3.7.4/Frameworks/Python.framework/Versions/3.7/lib/python3.7/ctypes/__init__.py", line 364, in __init__
    self._handle = _dlopen(self._name, mode)
OSError: dlopen(/private/var/folders/59/gg2vm1h52x7fz0254tg9x29c0000gn/T/tmpjI55tQ/lib/python3.7/site-packages/lightgbm/lib_lightgbm.so, 6): Library not loaded: /usr/local/opt/libomp/lib/libomp.dylib
  Referenced from: /private/var/folders/59/gg2vm1h52x7fz0254tg9x29c0000gn/T/tmpjI55tQ/lib/python3.7/site-packages/lightgbm/lib_lightgbm.so
  Reason: image not found
^CINFO     2019-08-30 04:08:26,325 datastore_emulator.py:187] shutting down the emulator running at http://localhost:15383

OSError: dlopen(/private/var/folders/59/gg2vm1h52x7fz0254tg9x29c0000gn/T/tmpjI55tQ/lib/python3.7/site-packages/lightgbm/lib_lightgbm.so, 6): Library not loaded: /usr/local/opt/libomp/lib/libomp.dylib
  Referenced from: /private/var/folders/59/gg2vm1h52x7fz0254tg9x29c0000gn/T/tmpjI55tQ/lib/python3.7/site-packages/lightgbm/lib_lightgbm.so
  Reason: image not found

みたいなエラーが出る時がある。

$ pip install lightgbm

自体は問題ないので、Clang系のライブラリ依存を解決しないといけない。

$ brew install libomp

通常は上記のインストールでうまくいく。

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

LightGBMをimportできない場合

Macで機械学習しているときにLightGBMを使おうとすると

[2019-08-30 13:08:07,214] ERROR in app: Exception on / [GET]
Traceback (most recent call last):
  File "/private/var/folders/59/gg2vm1h52x7fz0254tg9x29c0000gn/T/tmpjI55tQ/lib/python3.7/site-packages/flask/app.py", line 2292, in wsgi_app
    response = self.full_dispatch_request()
  File "/private/var/folders/59/gg2vm1h52x7fz0254tg9x29c0000gn/T/tmpjI55tQ/lib/python3.7/site-packages/flask/app.py", line 1815, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/private/var/folders/59/gg2vm1h52x7fz0254tg9x29c0000gn/T/tmpjI55tQ/lib/python3.7/site-packages/flask/app.py", line 1718, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "/private/var/folders/59/gg2vm1h52x7fz0254tg9x29c0000gn/T/tmpjI55tQ/lib/python3.7/site-packages/flask/_compat.py", line 35, in reraise
    raise value
  File "/private/var/folders/59/gg2vm1h52x7fz0254tg9x29c0000gn/T/tmpjI55tQ/lib/python3.7/site-packages/flask/app.py", line 1813, in full_dispatch_request
    rv = self.dispatch_request()
  File "/private/var/folders/59/gg2vm1h52x7fz0254tg9x29c0000gn/T/tmpjI55tQ/lib/python3.7/site-packages/flask/app.py", line 1799, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/private/var/folders/59/gg2vm1h52x7fz0254tg9x29c0000gn/T/tmpjI55tQ/lib/python3.7/site-packages/lightgbm/__init__.py", line 8, in <module>
    from .basic import Booster, Dataset
  File "/private/var/folders/59/gg2vm1h52x7fz0254tg9x29c0000gn/T/tmpjI55tQ/lib/python3.7/site-packages/lightgbm/basic.py", line 34, in <module>
    _LIB = _load_lib()
  File "/private/var/folders/59/gg2vm1h52x7fz0254tg9x29c0000gn/T/tmpjI55tQ/lib/python3.7/site-packages/lightgbm/basic.py", line 29, in _load_lib
    lib = ctypes.cdll.LoadLibrary(lib_path[0])
  File "/usr/local/Cellar/python/3.7.4/Frameworks/Python.framework/Versions/3.7/lib/python3.7/ctypes/__init__.py", line 442, in LoadLibrary
INFO     2019-08-30 04:08:07,234 module.py:861] default: "GET / HTTP/1.1" 500 290
    return self._dlltype(name)
  File "/usr/local/Cellar/python/3.7.4/Frameworks/Python.framework/Versions/3.7/lib/python3.7/ctypes/__init__.py", line 364, in __init__
    self._handle = _dlopen(self._name, mode)
OSError: dlopen(/private/var/folders/59/gg2vm1h52x7fz0254tg9x29c0000gn/T/tmpjI55tQ/lib/python3.7/site-packages/lightgbm/lib_lightgbm.so, 6): Library not loaded: /usr/local/opt/libomp/lib/libomp.dylib
  Referenced from: /private/var/folders/59/gg2vm1h52x7fz0254tg9x29c0000gn/T/tmpjI55tQ/lib/python3.7/site-packages/lightgbm/lib_lightgbm.so
  Reason: image not found
^CINFO     2019-08-30 04:08:26,325 datastore_emulator.py:187] shutting down the emulator running at http://localhost:15383

OSError: dlopen(/private/var/folders/59/gg2vm1h52x7fz0254tg9x29c0000gn/T/tmpjI55tQ/lib/python3.7/site-packages/lightgbm/lib_lightgbm.so, 6): Library not loaded: /usr/local/opt/libomp/lib/libomp.dylib
  Referenced from: /private/var/folders/59/gg2vm1h52x7fz0254tg9x29c0000gn/T/tmpjI55tQ/lib/python3.7/site-packages/lightgbm/lib_lightgbm.so
  Reason: image not found

みたいなエラーが出る時がある。

$ pip install lightgbm

自体は問題ないので、Clang系のライブラリ依存を解決しないといけない。

$ brew install libomp

通常は上記のインストールで解決する。

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

LightGBMのimportでエラー

Macで機械学習しているときにLightGBMを使おうとすると

[2019-08-30 13:08:07,214] ERROR in app: Exception on / [GET]
Traceback (most recent call last):
  File "/private/var/folders/59/gg2vm1h52x7fz0254tg9x29c0000gn/T/tmpjI55tQ/lib/python3.7/site-packages/flask/app.py", line 2292, in wsgi_app
    response = self.full_dispatch_request()
  File "/private/var/folders/59/gg2vm1h52x7fz0254tg9x29c0000gn/T/tmpjI55tQ/lib/python3.7/site-packages/flask/app.py", line 1815, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/private/var/folders/59/gg2vm1h52x7fz0254tg9x29c0000gn/T/tmpjI55tQ/lib/python3.7/site-packages/flask/app.py", line 1718, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "/private/var/folders/59/gg2vm1h52x7fz0254tg9x29c0000gn/T/tmpjI55tQ/lib/python3.7/site-packages/flask/_compat.py", line 35, in reraise
    raise value
  File "/private/var/folders/59/gg2vm1h52x7fz0254tg9x29c0000gn/T/tmpjI55tQ/lib/python3.7/site-packages/flask/app.py", line 1813, in full_dispatch_request
    rv = self.dispatch_request()
  File "/private/var/folders/59/gg2vm1h52x7fz0254tg9x29c0000gn/T/tmpjI55tQ/lib/python3.7/site-packages/flask/app.py", line 1799, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/private/var/folders/59/gg2vm1h52x7fz0254tg9x29c0000gn/T/tmpjI55tQ/lib/python3.7/site-packages/lightgbm/__init__.py", line 8, in <module>
    from .basic import Booster, Dataset
  File "/private/var/folders/59/gg2vm1h52x7fz0254tg9x29c0000gn/T/tmpjI55tQ/lib/python3.7/site-packages/lightgbm/basic.py", line 34, in <module>
    _LIB = _load_lib()
  File "/private/var/folders/59/gg2vm1h52x7fz0254tg9x29c0000gn/T/tmpjI55tQ/lib/python3.7/site-packages/lightgbm/basic.py", line 29, in _load_lib
    lib = ctypes.cdll.LoadLibrary(lib_path[0])
  File "/usr/local/Cellar/python/3.7.4/Frameworks/Python.framework/Versions/3.7/lib/python3.7/ctypes/__init__.py", line 442, in LoadLibrary
INFO     2019-08-30 04:08:07,234 module.py:861] default: "GET / HTTP/1.1" 500 290
    return self._dlltype(name)
  File "/usr/local/Cellar/python/3.7.4/Frameworks/Python.framework/Versions/3.7/lib/python3.7/ctypes/__init__.py", line 364, in __init__
    self._handle = _dlopen(self._name, mode)
OSError: dlopen(/private/var/folders/59/gg2vm1h52x7fz0254tg9x29c0000gn/T/tmpjI55tQ/lib/python3.7/site-packages/lightgbm/lib_lightgbm.so, 6): Library not loaded: /usr/local/opt/libomp/lib/libomp.dylib
  Referenced from: /private/var/folders/59/gg2vm1h52x7fz0254tg9x29c0000gn/T/tmpjI55tQ/lib/python3.7/site-packages/lightgbm/lib_lightgbm.so
  Reason: image not found
^CINFO     2019-08-30 04:08:26,325 datastore_emulator.py:187] shutting down the emulator running at http://localhost:15383

OSError: dlopen(/private/var/folders/59/gg2vm1h52x7fz0254tg9x29c0000gn/T/tmpjI55tQ/lib/python3.7/site-packages/lightgbm/lib_lightgbm.so, 6): Library not loaded: /usr/local/opt/libomp/lib/libomp.dylib
  Referenced from: /private/var/folders/59/gg2vm1h52x7fz0254tg9x29c0000gn/T/tmpjI55tQ/lib/python3.7/site-packages/lightgbm/lib_lightgbm.so
  Reason: image not found

みたいなエラーが出る時がある。

$ pip install lightgbm

自体は問題ないので、Clang系のライブラリ依存を解決しないといけない。

$ brew install libomp

通常は上記のインストールで解決する。

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

Composerを利用してLaravelをインストールしつつ同時にやったこと(メモ)

Composerを使ってLaravelをインストールしたときに並行してやったことがいくつかあるので、それの個人的な覚書です。環境は以下の通り。

  • Mac OS Mojave (バージョン 10.14.3)
  • MacBook Pro (Retina, 13-inch, Early 2015)

Composerのインストール

https://getcomposer.org/

Composerは、PHPのパッケージ管理システムあらため、依存関係解決ツールのこと。プロジェクトで使用するライブラリやパッケージを管理してくれ、こちらがあまり意識しなくても必要な時に、必要なバージョンのライブラリなりを一緒にダウンロードしてきてくれる。あるライブラリを使うには他のあるライブラリが必要で・・・みたいなときに丸っと面倒を見てくれるわけだが、その依存関係について詳しくは他の方の記事を参考に。

参考:
composerとは?
PHP開発でComposerを使わないなんてありえない!基礎編
composerとは
PHPのライブラリ管理ツール「Composer」入門

プロジェクトごとにComposerをインストールする(ローカル)かPC全体で共有する(グローバル)かは、どのディレクトリにインストールするかで変わってくる。いったん自分はユーザーホームのディレクトリに入れることにする。
Composerインストールのコマンドはこちら。

sudo curl -sS https://getcomposer.org/installer | php

バージョンが変わればURL等も変化するかもしれないので、公式サイトも要確認。
Mac, Linux系のインスタレーションはこちら。
https://getcomposer.org/doc/00-intro.md#installation-linux-unix-macos

Composerインストール後は、インスタレーションにもあるように composer.phar のファイルを移動する。そうすることで、どこからでもcomposerのコマンドを実行できる。

mv composer.phar /usr/local/bin/composer

Composerの光遅い問題について

Composerを使っていると、遅い!と感じる人が一定以上いるらしい。
アジア圏に顕著で、Composerを走らせたときに参照されるサーバは北米やフランスにあるので物理的な距離の問題があるし、光ファイバーとか使っても必要な数々のリクエストをこなすためには地球何周分もの距離をデータが行き来することになって光というものの速度自体が速くならない限り速くするのは無理、という結論にぶち当たるらしい。そこで、Composerを速くするための対応策として国内ミラーと高速化プラグインを作った方がいらっしゃる。
3年くらい前の出来事だけど今でも有用と思われるし、そのプラグインはまだComposer本体にはマージされていないので、詳しくはご本人のスライドや他の方のまとめを読むと良いと思う。スライドは最後まで見るとちょっと感動する。

なお国内のミラーに参照先を変える&高速化プラグインインストールには、Composer本体をインストール済みの人であれば、以下のコマンドを走らせるだけでOK。

composer config -g repos.packagist composer https://packagist.jp && composer global require hirak/prestissimo

参考:
Composerを速くするために必要だったもの/composer-keynote
composerの遅さをまじめに考える #phpstudy
光遅い問題を克服してcomposerを10倍速くした話
光遅い問題に対応して Composer を100倍速くする
Composerの実行速度を高速化する方法
GitHub: Composer/Parallel downloader #5293
curl を使って composer update を 2 倍速くする
composer searchが非常に遅い件
composer searchが速くなってた
PHPの生みの親,ラスマス・ラードフ氏インタビュー

Laravel Debugbarのインストール

Laravelでの開発に便利そうなので導入。

インストールコマンドは下記だが、--devのオプションがないと本番環境で実行されてパスワードが丸見えになるとかなんとか。

composer require barryvdh/laravel-debugbar --dev

Debugbarを無効にしたいときは.envに以下を挿入。true/falseで切り替え可能。

DEBUGBAR_ENABLED=false

本番環境でも使いたいとか、詳細や各種設定値は、参考記事がとてもきれいにまとまっていたので割愛。

参考:
Laravel5.7: Laravel Debugbarを使う
laravel5.6, 5.7 laravel-debugarを導入する!
laravelデバッグバーの導入

今日はそんな感じです。

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

Laravelインストール前後にやったこと:Composerインストール・Composer高速化・Laravelデバッグツールの導入(メモ)

Laravelをインストールしたときに並行してやったことがいくつかあるので、それの個人的な覚書です。環境は以下の通り。

  • Mac OS Mojave (バージョン 10.14.3)
  • MacBook Pro (Retina, 13-inch, Early 2015)

Laravelインストール前

Composerのインストール

https://getcomposer.org/

Laravelをインストールするのに必要なステップ。Composerは、PHPのパッケージ管理システムあらため、依存関係解決ツールのこと。プロジェクトで使用するライブラリやパッケージを管理してくれ、こちらがあまり意識しなくても必要な時に、必要なバージョンのライブラリなりを一緒にダウンロードしてきてくれる。あるライブラリを使うには他のあるライブラリが必要で・・・みたいなときに丸っと面倒を見てくれるわけだが、その依存関係について詳しくは他の方の記事を参考に。

参考:
composerとは?
PHP開発でComposerを使わないなんてありえない!基礎編
composerとは
PHPのライブラリ管理ツール「Composer」入門

プロジェクトごとにComposerをインストールする(ローカル)かPC全体で共有する(グローバル)かは、どのディレクトリにインストールするかで変わってくる。いったん自分はユーザーホームのディレクトリに入れることにする。
Composerインストールのコマンドはこちら。

sudo curl -sS https://getcomposer.org/installer | php

バージョンが変わればURL等も変化するかもしれないので、公式サイトも要確認。
Mac, Linux系のインスタレーションはこちら。
https://getcomposer.org/doc/00-intro.md#installation-linux-unix-macos

Composerインストール後は、インスタレーションにもあるように composer.phar のファイルを移動する。そうすることで、どこからでもcomposerのコマンドを実行できる。

mv composer.phar /usr/local/bin/composer

Composerの光遅い問題への対応

Composerを使っていると、遅い!と感じる人が一定以上いるらしい。
アジア圏に顕著で、Composerを走らせたときに参照されるサーバは北米やフランスにあるので物理的な距離の問題があるし、光ファイバーとか使っても必要な数々のリクエストをこなすためには地球何周分もの距離をデータが行き来することになって光というものの速度自体が速くならない限り速くするのは無理、という結論にぶち当たるらしい。そこで、Composerを速くするための対応策として国内ミラーと高速化プラグインを作った方がいらっしゃる。
3年くらい前の出来事だけど今でも有用と思われるし、そのプラグインはまだComposer本体にはマージされていないので、詳しくはご本人のスライドや他の方のまとめを読むと良いと思う。スライドは最後まで見るとちょっと感動する。

なお国内のミラーに参照先を変える&高速化プラグインインストールには、Composer本体をインストール済みの人であれば、以下のコマンドを走らせるだけでOK。
Laravelのインストールに絶対に必要というわけではないが、なんならLaravelインストール後でも大丈夫なのでやっておいて損はないと思う。

composer config -g repos.packagist composer https://packagist.jp && composer global require hirak/prestissimo

参考:
Composerを速くするために必要だったもの/composer-keynote
composerの遅さをまじめに考える #phpstudy
光遅い問題を克服してcomposerを10倍速くした話
光遅い問題に対応して Composer を100倍速くする
Composerの実行速度を高速化する方法
GitHub: Composer/Parallel downloader #5293
curl を使って composer update を 2 倍速くする
composer searchが非常に遅い件
composer searchが速くなってた
PHPの生みの親,ラスマス・ラードフ氏インタビュー

Laravelインストール後

Laravel Debugbarのインストール

Laravelでの開発に便利そうなので導入。

インストールコマンドは下記だが、--devのオプションがないと本番環境で実行されてパスワードが丸見えになるとかなんとか。

composer require barryvdh/laravel-debugbar --dev

Debugbarを無効にしたいときは.envに以下を挿入。true/falseで切り替え可能。

.env
DEBUGBAR_ENABLED=false

本番環境でも使いたいとか、詳細や各種設定値は、参考記事がとてもきれいにまとまっていたので割愛。

参考:
Laravel5.7: Laravel Debugbarを使う
laravel5.6, 5.7 laravel-debugarを導入する!
laravelデバッグバーの導入

今日はそんな感じです。

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

Macアプリ初心者:NSMenu について調べてみる1

今回は NSMenu について調べてみました。
前回作成したプロジェクトでも Cococa アプリを作るとデフォルトでメニューが用意されます。

環境

  • macOS Mojave:10.14.6
  • Xcode:10.3

画面イメージ

Xcode

Kobito.vLLuIV.png

アプリ

Kobito.F7MXDk.png

それぞれの機能の解説

アプリ名のメニュー

Kobito.ygjXQ0.png

  • About NSTableViewSample:アプリ名やバージョンなどの情報を表示するWindowを表示 Kobito.Xz4PzZ.png
  • Preferences...:環境設定(初期値では Disabled)
  • Services:ActivityMonitor などの Development ツールの一覧が表示 Kobito.Z2mxnN.png
  • Hide NSTableViewSample:自アプリを非表示
  • Hide Others:他のアプリを全て非表示
  • Show All:「Hide」「Hide Others」で隠れたアプリを全て表示
  • Quit NSTableViewSample:アプリを終了

File

Kobito.PmQmgV.png
* New:新規作成(初期値では Disabled)
* Open:ファイルを開く(初期値では Disabled)
* Open Recent:最近開いたファイル(初期値では Clear Menu のみ)
* Close:アプリを閉じる
* Save...:保存(初期値では Disabled)
* Save As...:名前をつけて保存(初期値では Disabled)
* Page Setup...:印刷用?のページの設定、余白など(初期値では Disabled)
* Print:印刷

Edit

Kobito.OyDHoN.png
* Undo:元に戻す(サンプルアプリにテキストを入力する機能がないため要調査)
* Redo:やり直す(サンプルアプリにテキストを入力する機能がないため要調査)
* Cut:切り取り(サンプルアプリにテキストを入力する機能がないため要調査)
* Copy:コピー(サンプルアプリにテキストを入力する機能がないため要調査)
* Paste:貼り付け(サンプルアプリにテキストを入力する機能がないため要調査)
* Paste and Match Style:貼り付けてスタイルを合わせる(サンプルアプリにテキストを入力する機能がないため要調査)
* Delete:削除(サンプルアプリにテキストを入力する機能がないため要調査)
* Select All:全て選択(サンプルアプリにテキストを入力する機能がないため要調査)
* Find:検索(サンプルアプリにテキストを入力する機能がないため要調査)
Kobito.hKK0GB.png
* Spelling and Grammar:スペルと文法
Kobito.Doky0y.png
Kobito.CyBfPK.png
* Substitutions:置換(サンプルアプリにテキストを入力する機能がないため要調査)
* Transformations:テキストを変換(サンプルアプリにテキストを入力する機能がないため要調査)
Kobito.0n5vqr.png
* Speech:テキストの読み上げ(サンプルアプリにテキストを入力する機能がないため要調査)
Kobito.XneKW4.png
* Start Dictation...:音声入力
* Emoji & Simbols:絵文字バレット表示
Kobito.1oqRkB.png

Format

Kobito.BzrarY.png
* Font:テキストのフォント(サンプルアプリにテキストを入力する機能がないため要調査)
Kobito.HTbG77.png
* Text:テキストの属性(サンプルアプリにテキストを入力する機能がないため要調査)
Kobito.6OrkFD.png

View

Kobito.2Ieg0C.png
* Show Tab Bar:タブバーを表示(初期値ではWindowラベルを表示)
Kobito.9hYml0.png
* Show All Tabs:全てのタブを表示(初期値では Disabled)
* Show Toolbar:ツールバーを表示(初期値では Disabled)
* Customize Toolbar...:ツールバーをカスタマイズ(初期値では Disabled)
* Show Sidebar:サイドバーを表示(初期値では Disabled)
* Enter Full Screen:フルスクリーン表示

Window

Kobito.yzWo2r.png
* Minimize:最小表示(Dockに格納)
* Zoom:全Window表示
* Show Previous Tab:前のタブを表示
* Show Next Tab:次のタブを表示
* Move Tab to New Window:新しいWindowでタブを開く
* Merge All Window:全てのWindowをタブで表示
* Bring All to Front:最前面に表示
* 開いているWindow一覧

Help

Kobito.onEMQW.png
* Search TextFiedlds:ヘルプを検索
* NSTableViewSample Help:ヘルプを表示

デフォルトで作成されるメニューでも色々な機能が組み込まれていて便利そうです。
今後はメニューのアクションをどうやって作るかについて調べたいと思います。

よろしければ いいね お願いします。

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

Macアプリ初心者:NSMenu について調べてみる

今回は NSMenu について調べてみました。
前回作成したプロジェクトでも Cococa アプリを作るとデフォルトでメニューが用意されます。

環境

  • macOS Mojave:10.14.6
  • Xcode:10.3

画面イメージ

Xcode

Kobito.vLLuIV.png

アプリ

Kobito.F7MXDk.png

それぞれの機能の解説

アプリ名のメニュー

Kobito.ygjXQ0.png

  • About NSTableViewSample:アプリ名やバージョンなどの情報を表示するWindowを表示 Kobito.Xz4PzZ.png
  • Preferences...:環境設定(初期値では Disabled)
  • Services:ActivityMonitor などの Development ツールの一覧が表示 Kobito.Z2mxnN.png
  • Hide NSTableViewSample:自アプリを非表示
  • Hide Others:他のアプリを全て非表示
  • Show All:「Hide」「Hide Others」で隠れたアプリを全て表示
  • Quit NSTableViewSample:アプリを終了

File

Kobito.PmQmgV.png
* New:新規作成(初期値では Disabled)
* Open:ファイルを開く(初期値では Disabled)
* Open Recent:最近開いたファイル(初期値では Clear Menu のみ)
* Close:アプリを閉じる
* Save...:保存(初期値では Disabled)
* Save As...:名前をつけて保存(初期値では Disabled)
* Page Setup...:印刷用?のページの設定、余白など(初期値では Disabled)
* Print:印刷

Edit

Kobito.OyDHoN.png
* Undo:元に戻す(サンプルアプリにテキストを入力する機能がないため要調査)
* Redo:やり直す(サンプルアプリにテキストを入力する機能がないため要調査)
* Cut:切り取り(サンプルアプリにテキストを入力する機能がないため要調査)
* Copy:コピー(サンプルアプリにテキストを入力する機能がないため要調査)
* Paste:貼り付け(サンプルアプリにテキストを入力する機能がないため要調査)
* Paste and Match Style:貼り付けてスタイルを合わせる(サンプルアプリにテキストを入力する機能がないため要調査)
* Delete:削除(サンプルアプリにテキストを入力する機能がないため要調査)
* Select All:全て選択(サンプルアプリにテキストを入力する機能がないため要調査)
* Find:検索(サンプルアプリにテキストを入力する機能がないため要調査)
Kobito.hKK0GB.png
* Spelling and Grammar:スペルと文法
Kobito.Doky0y.png
Kobito.CyBfPK.png
* Substitutions:置換(サンプルアプリにテキストを入力する機能がないため要調査)
* Transformations:テキストを変換(サンプルアプリにテキストを入力する機能がないため要調査)
Kobito.0n5vqr.png
* Speech:テキストの読み上げ(サンプルアプリにテキストを入力する機能がないため要調査)
Kobito.XneKW4.png
* Start Dictation...:音声入力
* Emoji & Simbols:絵文字バレット表示
Kobito.1oqRkB.png

Format

Kobito.BzrarY.png
* Font:テキストのフォント(サンプルアプリにテキストを入力する機能がないため要調査)
Kobito.HTbG77.png
* Text:テキストの属性(サンプルアプリにテキストを入力する機能がないため要調査)
Kobito.6OrkFD.png

View

Kobito.2Ieg0C.png
* Show Tab Bar:タブバーを表示(初期値ではWindowラベルを表示)
Kobito.9hYml0.png
* Show All Tabs:全てのタブを表示(初期値では Disabled)
* Show Toolbar:ツールバーを表示(初期値では Disabled)
* Customize Toolbar...:ツールバーをカスタマイズ(初期値では Disabled)
* Show Sidebar:サイドバーを表示(初期値では Disabled)
* Enter Full Screen:フルスクリーン表示

Window

Kobito.yzWo2r.png
* Minimize:最小表示(Dockに格納)
* Zoom:全Window表示
* Show Previous Tab:前のタブを表示
* Show Next Tab:次のタブを表示
* Move Tab to New Window:新しいWindowでタブを開く
* Merge All Window:全てのWindowをタブで表示
* Bring All to Front:最前面に表示
* 開いているWindow一覧

Help

Kobito.onEMQW.png
* Search TextFiedlds:ヘルプを検索
* NSTableViewSample Help:ヘルプを表示

デフォルトで作成されるメニューでも色々な機能が組み込まれていて便利そうです。
今後はメニューのアクションをどうやって作るかについて調べたいと思います。

よろしければ いいね お願いします。

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