古いMacにXcodeをインストールする方法とHomebrewでのアップデート

以前のXcodeを入手する

以前書いた記事で、古いMacに、新しいApache/PHP/MySQLなどが入らない(by Homebrew)と書いた。

High Sierra(髙死鰓)10.13.6

関連:10年落ちのMacBook Air(13-inch, Mid 2011)

以下のエラーが出る。

Error: Your Xcode (8.1) is too outdated.
Please update to Xcode 10.1 (or delete it).
Xcode can be updated from the App Store.

Xcode 8.1が古いので、Xcode 10.1を入れよということだが、AppStoreでは既に公開されていない。

AppStoreにはXcodeがあるが、入れようとすると、

購入処理を完了できませんでした_Xcode

購入処理を完了できませんでした
Xcodeはインストールできません。
macOSのバージョン11.3以降が必要です。

となって入れられない、このヴァクァ詐加減!

以下にログインすれば、古いバージョンも手に入る模様。

関連:https://developer.apple.com/download/more/

対応するバージョンは以下の通り。

・High Sierra(10.13):9.3-10.1
・Sierra(10.12):8.3-9.2
・El Capitan(10.11):7.3-8.2
・Yosemite(10.10):6.3-7.2

だが、Xcodeの容量がデカ杉で、ダウンロードにもインストールにも時間がかかる。

Homebrewでナニするためだけにそンなもンを入れるンは、時価総額世界一のアッチ系♪の社長やソヌォ手下シかゐナゐ。

Xcodeを全部入れる必要はなく、その中のxcode-select(Xcode Command Line Tools)が入っていればよいらしい(後述)。

コマンドでの確認と作業(失敗)

以下を打つと、xcode-selectの有無とバージョンが分かる。

xcode-select -v

結果、

xcode-select version 2349.

入ッてる(滅)。

このxcode-selectのバージョンが古いということだろう。

xcode-selectのインストールを試す。

xcode-select –install

当然、

xcode-select: error: command line tools are already installed, use “Software Update" to install updates

と表示されるが、アップデートはないの?

一旦削除

sudo rm -rf /Library/Developer/CommandLineTools

指定箇所のファイルは消えているが、この時点で

xcode-select -v

だと

xcode-select version 2349.

で消えてないので、Mac再起動。

sudo reboot

で再起動後

xcode-select -v

だと

xcode-select version 2349.

無いのにバージョンを表示するとは?

終~了~(鬱村Produce)

インストール

xcode-select –install

すると

xcode-select: error: no developer tools were found, and no install could be requested (perhaps no UI is present), please install manually from 'developer.apple.com’.

終~了~(鬱村Produce)

Command Line Tools (macOS 10.13) for Xcode 10.1

上述のように、以下から入手する。

関連:https://developer.apple.com/download/more/

検索窓で「xcode」とすると大量発生で悲惨なので、「Xcode 10.1」などで絞る。

ソレでも大量発生だが、以下を発見。

Xcode 10.1

①Xcode 10.1
②Command Line Tools (macOS 10.13) for Xcode 10.1
③Command Line Tools (macOS 10.14) for Xcode 10.1

①は該当だが、5.63GBと意味不明なのでスルー。

当方のMacBook Air(13-inch, Mid 2011)はHigh Sierra(10.13.6)までなンで、③は駄目(Mojave用)。

よって②(186.77MB)となる。

「Command Line Tools (macOS 10.13) for Xcode 10.1」をダウンロードし、インストールする。

Command Line Tools (macOS 10.13) for Xcode 10.1

インストール後、/Library/Developer/CommandLineToolsを見ると、ファイルが生成されている。

この時点で

xcode-select -v

だと

xcode-select version 2349.

と、変わっていない。

sudo reboot

で再起動後

xcode-select -v

するも

xcode-select version 2349.

と、変わっていない。

結果、

Error: Your Xcode (8.1) is too outdated.
Please update to Xcode 10.1 (or delete it).
Xcode can be updated from the App Store.

で意味ナシwwwww

Xcode 10.1

仕方がないので、5.63GBをダウンロード。

フォデ、Xcode 10.1.xipを展開すると、真冬にもカカワラヅ、ファンが全回転wwwww

Xcode 10.1.xipを展開中

にもカカワラヅ、進捗が進行しないwwwwwwwwww

延々と待って、インストール。

Xcode 10.1のインストール

インストールも遅杉wwwww

確かにXcode 10.1が入った。

Welcome to Xcode

インストール後、

xcode-select -v

するも

xcode-select version 2349.

と、変わっていない。

xcodebuild -version

xcode-select: error: tool 'xcodebuild’ requires Xcode, but active developer directory '/Library/Developer/CommandLineTools’ is a command line tools instance
エラー(意味不明)

httpd

brew install httpd

makeとかするンでファン全回転、延々と待つ。

brew services restart httpd

apachectl -v

Server version: Apache/2.4.33 (Unix)

brew upgrade httpd

httpd 2.4.52 already installed
新しくなった模様

バージョン確認

brew info httpd

httpd: stable 2.4.52
Apache HTTP server
https://httpd.apache.org/
/usr/local/Cellar/httpd/2.4.52 (1,630 files, 27.6MB) *

URLの上にあるのは最新安定版。
URLの下にパスがあるので、インストールされている(+バージョン)ことが分かる。
インストールされていないと「Not installed」となる。

Mac版とHomebrew版のApacheが衝突しないように、以下でアレする。

関連:[Mac] Apacheを自動起動及び停止する方法 [launchd]

php

brew upgrade php

メティアクティア時間がカカル!

php -v

PHP 8.1.2 (cli) (built: Jan 31 2022 14:58:23) (NTS)

brew info php

php: stable 8.1.2, HEAD
General-purpose scripting language
https://www.php.net/
/usr/local/Cellar/php/7.4.5 (515 files, 76.2MB)
Built from source
/usr/local/Cellar/php/8.1.2 (507 files, 80MB) *

だが、/usr/local/etc/httpd/httpd.confで

LoadModule php7_module /usr/local/Cellar/php/8.1.2/lib/httpd/modules/libphp.so

だと起動失敗する。

Can’t locate API module structure `php7_module’ in file /usr/local/Cellar/php/8.1.2/lib/httpd/modules/libphp.so: dlsym(0x7fc0365024c0, php7_module): symbol not found

以下で成功。

LoadModule php_module /usr/local/Cellar/php/8.1.2/lib/httpd/modules/libphp.so

7.4.5は以下で失敗。

LoadModule php7_module /usr/local/Cellar/php/7.4.5/lib/httpd/modules/libphp7.so

Cannot load /usr/local/Cellar/php/7.4.5/lib/httpd/modules/libphp7.so into server: dlopen(/usr/local/Cellar/php/7.4.5/lib/httpd/modules/libphp7.so, 10): Library not loaded: /usr/local/opt/tidy-html5/lib/libtidy.5.dylib\n Referenced from: /usr/local/Cellar/php/7.4.5/lib/httpd/modules/libphp7.so\n Reason: image not found

以下にするとMac版の7.1.33になる。

LoadModule php7_module /usr/libexec/apache2/libphp7.so

だが、PHP8.1.2だと、phpmyadminがグティアグティアになって動かンく/管区なッた。

phpMyAdmin-5.1.2-all-languagesを手動で入れて解決。

mysql

brew upgrade mysql

brew info mysql

mysql: stable 8.0.28
Open source relational database management system
https://dev.mysql.com/doc/refman/8.0/en/
Conflicts with:
mariadb (because mysql, mariadb, and percona install the same binaries)
percona-server (because mysql, mariadb, and percona install the same binaries)
/usr/local/Cellar/mysql/8.0.19 (286 files, 291.2MB)

一旦アンインストールし、

brew uninstall mysql

再度インストール

brew install mysql

エラー大量でグティアグティアになるンで、

brew search mysql

で調べ、バージョン指定でインストール

brew install mysql@5.7

https://cdn.mysql.com/Downloads/MySQL-5.7/mysql-boost-5.7.37.tar.gz

バージョンを指定しないと8.X系が入る模様。
https://cdn.mysql.com/Downloads/MySQL-8.0/mysql-boost-8.0.28.tar.gz

・v5.6:2013年2月5日
・v5.7:2015年10月21日
・v8.0:2018年4月19日

パスを通す。

echo 'export PATH="/usr/local/opt/mysql@5.7/bin:$PATH"' >> ~/.profile

Macを再起動

sudo reboot

MySQLを起動。

mysql.server start

ERROR! The server quit without updating PID file (/usr/local/var/mysql/●.local.pid).

確かにないが意味不明!

以下を参考に、mysqlを全て削除(brew uninstall mysqlでは消えないものも消す)。

rm -rf /usr/local/mysql
rm -rf /Library/StartupItems/MYSQL
rm -rf /Library/PreferencePanes/MySQL.prefPane
rm -rf /Library/Receipts/mysql-.pkg
rm -rf /usr/local/Cellar/mysql*
rm -rf /usr/local/bin/mysql*
rm -rf /usr/local/var/mysql*
rm -rf /usr/local/etc/my.cnf
rm -rf /usr/local/share/mysql*
rm -rf /usr/local/opt/mysql

データがなくなるので注意!

関連:ERROR! The server quit without updating PID file (/usr/local/var/mysql/mba.pid).の解決策

関連:mysqlがどうしても起動しない

関連:The server quit without updating PID file mysqlエラー解決

brew install mysql@5.7

MySQLを起動。

mysql.server start

SUCCESS!

mysql_secure_installation

rootのパスワードの設定などを行う。

phpmyadmin

brew upgrade phpmyadmin

brew info phpmyadmin

phpmyadmin: stable 5.1.2
Web interface for MySQL and MariaDB
https://www.phpmyadmin.net
/usr/local/Cellar/phpmyadmin/5.1.2 (3,147 files, 42MB) *

phpMyAdminは手動で入れたので、

brew uninstall phpmyadmin

で削除。

以下を手動で消す。

If desired, remove them manually with `rm -rf`:
/usr/local/etc/phpmyadmin.config.inc.php
/usr/local/etc/phpmyadmin.config.inc.php.default

Macの再起動

sudo reboot

phpMyAdminにアクセスするが、「MySQLサーバにログインできません」となるので、MySQLが起動していない。

自動起動を有効化
brew services start mysql@5.7

だが

Failure while executing; `/bin/launchctl enable gui/501/homebrew.mxcl.mysql@5.7`
エラー

「brew services start mysql」でも「Formula `mysql` is not installed.」でダメ。

自動起動設定不可のクヅォ仕様なので、毎回mysql.server startを打つシカナイ/鹿内/養子/日枝。

関連:Error: Failure while executing; /bin/launchctl enable gui/501/homebrew.mxcl.mysql exited with 112.

sudo launchctl load -w /usr/local/Cellar/httpd/2.4.52/homebrew.mxcl.httpd.plist

でも自動起動しない。

関連:[Mac] Apacheを自動起動及び停止する方法 [launchd]

-----

brew uninstall mysql@5.7

sudo rm -rf /usr/local/var/mysql
(上述の他の削除系も実行)

brew install mysql@5.7

brew services start mysql@5.7 ←エラー

mysql_secure_installation
/usr/local/etc/my.cnfの[mysqld]節に以下を追記。
character-set-server = utf8
default_password_lifetime = 0
↑パスワードの有効期限の無効化

mysql.server start

phpMyAdminにrootでログインできたら、Apache、PHP、mysqlが正常に動いているというコトだ。

-----

自動起動を有効化
brew services start mysql@5.7

自動起動を無効化
brew services stop mysql@5.7

自動起動を有効化しているサービスの一覧
brew services list

-----

単体でヤッても時間が掛かるノヌィ、brew upgrade(brew管理下の全てをアップデート)

なンヅォヤッたら、終わるコルォには支那の支配下にナッテルダロ~wwwwwwwwww

Homebrew

Homebrewの有無とバージョン。

brew -v

結果

Homebrew 3.3.12→3.3.13
新しくなった模様

brew doctor

Warning: You have unlinked kegs in your Cellar.
Leaving kegs unlinked can lead to build-trouble and cause formulae that depend on those kegs to fail to run properly once built. Run `brew link` on these:
python
phpmyadmin
mysql

Warning: You are using macOS 10.13.
We (and Apple) do not provide support for this old version.

Warning: Broken symlinks were found. Remove them with `brew cleanup`:
/usr/local/share/man/man1/brew-cask.1
/usr/local/share/zsh/site-functions/_brew_cask

unlinked kegs は「brew link mysql」で解決。

mysql.server start

でcommand not foundとなる場合は、これが原因。

brew cleanupを実行すると色々消されてユクが、以下はエラー。

Error: Could not cleanup old kegs! Fix your permissions on:
/usr/local/Cellar/php/7.4.5

sudo chmod -R 777 7.4.5

としてからbrew cleanupで消えた。

-----

・Apache:2.4.43→2.4.52(アップ)
・PHP:7.4.5_2→8.1.2(アップ) or 7.1.33(ダウン)
・mysql:8.0.19 → 5.7.37(ダウン)
・phpmyadmin:5.0.2 → 5.1.2(アップ)

相互作用シてるンで、何かを上げると他が動かンく/管区なったり、悲惨杉流状況に!

PHP以外はバージョンアップしても大差ナゐンで、上げるならPHPダケにした方が賢明。

-----

てコトで、Command Line Toolsだけではダメで、フルのXcodeが必要だった。

ムァ、こンなンは環境のハナシであり、何時間ヤッても新しいコンテンツは生まれヅ、長時間ヤッても創造的なナニカは何ら出ヅ、気付ゐたら麻生太郎のようなロ~ディンになッてるという悲惨杉流罠wwwwwwwwww

関連:MacのPHPをv7.4.5にアップデートしたらソコからゴツ面倒なコトになッた

関連:Macでサーバー(Apache,PHP,MySQL,phpMyAdmin,WordPress)を作る

関連:[Mac] PHPのバージョンが異なる問題と解決方法 [HighSierra]

関連:[Mac] Apacheを自動起動及び停止する方法 [launchd]