<?xml version="1.0" encoding="utf-8"?>
<rdf:RDF
 xmlns="http://purl.org/rss/1.0/"
 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
 xmlns:dc="http://purl.org/dc/elements/1.1/"
 xmlns:content="http://purl.org/rss/1.0/modules/content/"
 xmlns:admin="http://webns.net/mvcb/"
 xml:lang="ja">
<channel rdf:about="https://memo.xight.org/rss.xml">
 <title>memo.xight.org</title>
 <link>https://memo.xight.org/</link>
 <description>Changelogメモによる日々のメモ</description>
 <dc:language>ja</dc:language>
 <dc:date>2021-03-14T17:09:19+09:00</dc:date>
 <admin:generatorAgent rdf:resource="http://chalow.org/?v=1.0"/>
 <items>
 <rdf:Seq>
  <rdf:li rdf:resource="https://memo.xight.org/2021-03-14-1"/>
  <rdf:li rdf:resource="https://memo.xight.org/2021-02-25-1"/>
  <rdf:li rdf:resource="https://memo.xight.org/2021-02-20-1"/>
  <rdf:li rdf:resource="https://memo.xight.org/2021-02-15-2"/>
  <rdf:li rdf:resource="https://memo.xight.org/2021-02-15-1"/>
  <rdf:li rdf:resource="https://memo.xight.org/2021-02-12-1"/>
  <rdf:li rdf:resource="https://memo.xight.org/2020-12-22-1"/>
  <rdf:li rdf:resource="https://memo.xight.org/2020-12-19-1"/>
 </rdf:Seq>
 </items>
</channel>

<item rdf:about="https://memo.xight.org/2021-03-14-1">
 <title>Regex Crossword - 正規表現のクロスワード</title>
 <link>https://memo.xight.org/2021-03-14-1</link>
 <description>
  Summary正規表現をつかった六角形タイプのクロスワード。[Regex Crossword]Referencehttps://jimbly.github.io/regex-crossword/
 </description>
 <dc:creator>Yoshiki SATO  &lt;yoshiki@xight.org&gt;</dc:creator>
 <dc:date>2021-03-14T23:59:59+09:00</dc:date>
 <content:encoded>
  <![CDATA[<h2>Summary<br /></h2>正規表現をつかった六角形タイプのクロスワード。<br />
<a href="https://jimbly.github.io/regex-crossword/"><img src="https://memo.xight.org///s.wordpress.com/mshots/v1/https%3A%2F%2Fjimbly.github.io%2Fregex-crossword%2F?w=400"></a><br />
<br />
約1時間で解くことができた。<br />
<a href="/images/private/2021-03-14-regex-crossword.png" class="lightbox" rel="lightbox[id-2021-03-14-1]"><img src="https://memo.xight.org//images/private/2021-03-14-regex-crossword.png" class="lightbox" alt="Regex Crossword" /></a><br />
<br />
<h2>Reference<br /></h2><a href="https://jimbly.github.io/regex-crossword/">https://jimbly.github.io/regex-crossword/</a><br />
]]>
 </content:encoded>
</item>

<item rdf:about="https://memo.xight.org/2021-02-25-1">
 <title>Windowsで展開した際に文字化けしないZipファイルをMacで作成する</title>
 <link>https://memo.xight.org/2021-02-25-1</link>
 <description>
  SummaryWindowsで展開した際に文字化けしないZipファイルをMacで作成したい。macOS Big Sur 11.3 Beta (20E5186d) で標準のzipのバージョンは3.0だが、--unicode が利用できない。% zip --unicode=UTF8 --to-crlf --recurse-paths ARCHIVE.zip DIRzip error: Invalid command arguments (long option 'unicode' not supported)解決方法Homebrewでzipをインストールして、${BREW_HOME}/opt/zip/bin にパスを通しておく。% brew install zip% which zip/opt/homebrew/opt/zip/bin/zip% zip --unicode=UTF8 --to-crlf --recurse-paths ARCHIVE.zip DIR
 </description>
 <dc:creator>Yoshiki SATO  &lt;yoshiki@xight.org&gt;</dc:creator>
 <dc:date>2021-02-25T23:59:59+09:00</dc:date>
 <content:encoded>
  <![CDATA[<h2>Summary<br /></h2>Windowsで展開した際に文字化けしないZipファイルをMacで作成したい。<br />
<br />
macOS Big Sur 11.3 Beta (20E5186d) で標準のzipのバージョンは3.0だが、<br />
--unicode が利用できない。<br />
<br />
<div class="code"><pre><code class="bash">% zip --unicode=UTF8 --to-crlf --recurse-paths ARCHIVE.zip DIR
zip error: Invalid command arguments (long option 'unicode' not supported)</code></pre></div><br />
<br />
<h2>解決方法<br /></h2>Homebrewでzipをインストールして、<br />
${BREW_HOME}/opt/zip/bin にパスを通しておく。<br />
<br />
<div class="code"><pre><code class="bash">% brew install zip
% which zip
/opt/homebrew/opt/zip/bin/zip
% zip --unicode=UTF8 --to-crlf --recurse-paths ARCHIVE.zip DIR</code></pre></div><br />
]]>
 </content:encoded>
</item>

<item rdf:about="https://memo.xight.org/2021-02-20-1">
 <title>MacからBrother製プリンタでL版印刷する</title>
 <link>https://memo.xight.org/2021-02-20-1</link>
 <description>
  Summary用紙サイズを幅127mm, 高さ89mm で印刷しようとすると、プリンタにエラーが表示された。用紙サイズが不一致です[多目的トレイ]パソコン/携帯端末から受信したデータ: A4 受信したデータと多目的トレイに 入っている用紙サイズと異なります 印刷を続けますか?[MFC-J6997CDWのエラー表示]対策用紙サイズを幅127mm, 高さ89mm ではなく、幅89mm, 高さ127mm にする。NG: 幅127mm, 高さ89mm[幅127mm, 高さ89mm]OK: 幅89mm, 高さ127mm[幅89mm, 高さ127mm]
 </description>
 <dc:creator>Yoshiki SATO  &lt;yoshiki@xight.org&gt;</dc:creator>
 <dc:date>2021-02-20T23:59:59+09:00</dc:date>
 <content:encoded>
  <![CDATA[<h2>Summary<br /></h2>用紙サイズを幅127mm, 高さ89mm で印刷しようとすると、プリンタにエラーが表示された。<br />
<br />
</p><div class="code"><pre><code class="nohighlight">用紙サイズが不一致です[多目的トレイ]
パソコン/携帯端末から受信したデータ:
                 A4
   受信したデータと多目的トレイに
 入っている用紙サイズと異なります
        印刷を続けますか?</code></pre></div><p>
<a href="/images/private/2021-02-20-MFC-J6997CDW-error.jpg" class="lightbox" rel="lightbox[id-2021-02-20-1]"><img src="https://memo.xight.org//images/private/2021-02-20-MFC-J6997CDW-error.jpg" class="lightbox" alt="MFC-J6997CDWのエラー表示" /></a><br />
<br />
<h2>対策<br /></h2>用紙サイズを幅127mm, 高さ89mm ではなく、幅89mm, 高さ127mm にする。<br />
<br />
<h3>NG: 幅127mm, 高さ89mm<br /></h3><a href="/images/private/2021-02-20-MFC-J6997CDW-NG-127x89.png" class="lightbox" rel="lightbox[id-2021-02-20-1]"><img src="https://memo.xight.org//images/private/2021-02-20-MFC-J6997CDW-NG-127x89.png" class="lightbox" alt="幅127mm, 高さ89mm" /></a><br />
<br />
<h3>OK: 幅89mm, 高さ127mm<br /></h3><a href="/images/private/2021-02-20-MFC-J6997CDW-OK-89x127.png" class="lightbox" rel="lightbox[id-2021-02-20-1]"><img src="https://memo.xight.org//images/private/2021-02-20-MFC-J6997CDW-OK-89x127.png" class="lightbox" alt="幅89mm, 高さ127mm" /></a><br />
]]>
 </content:encoded>
</item>

<item rdf:about="https://memo.xight.org/2021-02-15-2">
 <title>Apple Silicon + MacTeX</title>
 <link>https://memo.xight.org/2021-02-15-2</link>
 <description>
  Summary$ wget http://www.tug.org/mactex/MacTeX-2020-Universal.pkg$ pkgutil --expand MacTeX-2020-Universal.pkg mactex$ pax -rz -f mactex/MacTeX-2020-Universal-Start.pkg/Payload$ mv usr/local/texlive/2020/bin/custom /usr/local/texlive/2020/bin//usr/local/texlive/2020/bin/custom に PATH を通すpath=($path/usr/local/texlive/2020/bin/custom(N-/))確認$ which tex/usr/local/texlive/2020/bin/custom/tex$ lipo -archs $(which tex)x86_64 arm64ReferenceMacTeX - About ARMhttp://www.tug.org/mactex/aboutarm.htmlvia奥村 晴彦 先生 - macOS - M1 Machttps://oku.edu.mie-u.ac.jp/~okumura/macosx/m1.html
 </description>
 <dc:creator>Yoshiki SATO  &lt;yoshiki@xight.org&gt;</dc:creator>
 <dc:date>2021-02-15T23:59:59+09:00</dc:date>
 <content:encoded>
  <![CDATA[<h2>Summary<br /></h2><div class="code"><pre><code class="bash">$ wget http://www.tug.org/mactex/MacTeX-2020-Universal.pkg
$ pkgutil --expand MacTeX-2020-Universal.pkg mactex
$ pax -rz -f mactex/MacTeX-2020-Universal-Start.pkg/Payload
$ mv usr/local/texlive/2020/bin/custom /usr/local/texlive/2020/bin/</code></pre></div><br />
<br />
<h2>/usr/local/texlive/2020/bin/custom に PATH を通す<br /></h2><div class="code"><pre><code class="zsh">path=(
	$path
	/usr/local/texlive/2020/bin/custom(N-/)
)</code></pre></div><br />
<br />
<h2>確認<br /></h2><div class="code"><pre><code class="bash">$ which tex
/usr/local/texlive/2020/bin/custom/tex
$ lipo -archs $(which tex)
x86_64 arm64</code></pre></div><br />
<br />
<h2>Reference<br /></h2>MacTeX - About ARM<br />
<a href="http://www.tug.org/mactex/aboutarm.html">http://www.tug.org/mactex/aboutarm.html</a><br />
<br />
<h2>via<br /></h2>奥村 晴彦 先生 - macOS - M1 Mac<br />
<a href="https://oku.edu.mie-u.ac.jp/~okumura/macosx/m1.html">https://oku.edu.mie-u.ac.jp/~okumura/macosx/m1.html</a><br />
]]>
 </content:encoded>
</item>

<item rdf:about="https://memo.xight.org/2021-02-15-1">
 <title>ruby build時に closure.c がコンパイルできない</title>
 <link>https://memo.xight.org/2021-02-15-1</link>
 <description>
  SummaryGitHub Pages で利用する ruby 2.7.1 を arm64 でbuildしようとしたら、closure.c のコンパイル時にエラーが発生。compiling closure.cclosure.c:264:14: error: implicit declaration of function 'ffi_prep_closure' is invalid in C99 [-Werror,-Wimplicit-function-declaration]result = ffi_prep_closure(pcl, cif, callback, (void *)self); ^1 error generated.make[2]: *** [closure.o] Error 1make[1]: *** [ext/fiddle/all] Error 2make: *** [build-ext] Error 2インストール$ git clone https://github.com/postmodern/ruby-install.git$ cd ruby-install$ ./bin/ruby-install ruby 2.7.1 -c -- --with-arch=arm64 --prefix=$(rbenv root)/versions/2.7.1-arm64 CFLAGS=-DUSE_FFI_CLOSURE_ALLOC=1ReferenceAndre.Arko.net - 2020-06-30 - Building Ruby on arm64 macOShttps://andre.arko.net/2020/06/30/building-ruby-on-arm64-macos/
 </description>
 <dc:creator>Yoshiki SATO  &lt;yoshiki@xight.org&gt;</dc:creator>
 <dc:date>2021-02-15T23:59:59+09:00</dc:date>
 <content:encoded>
  <![CDATA[<h2>Summary<br /></h2>GitHub Pages で利用する ruby 2.7.1 を arm64 でbuildしようとしたら、<br />
closure.c のコンパイル時にエラーが発生。<br />
<br />
</p><div class="code"><pre><code class="nohighlight">compiling closure.c
closure.c:264:14: error: implicit declaration of function 'ffi_prep_closure' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
	result = ffi_prep_closure(pcl, cif, callback, (void *)self);
			 ^
1 error generated.
make[2]: *** [closure.o] Error 1
make[1]: *** [ext/fiddle/all] Error 2
make: *** [build-ext] Error 2</code></pre></div><p>
<h2>インストール<br /></h2><div class="code"><pre><code class="bash">$ git clone https://github.com/postmodern/ruby-install.git
$ cd ruby-install
$ ./bin/ruby-install ruby 2.7.1 -c -- --with-arch=arm64 --prefix=$(rbenv root)/versions/2.7.1-arm64 CFLAGS=-DUSE_FFI_CLOSURE_ALLOC=1</code></pre></div><br />
<br />
<h2>Reference<br /></h2>Andre.Arko.net - 2020-06-30 - Building Ruby on arm64 macOS<br />
<a href="https://andre.arko.net/2020/06/30/building-ruby-on-arm64-macos/">https://andre.arko.net/2020/06/30/building-ruby-on-arm64-macos/</a><br />
]]>
 </content:encoded>
</item>

<item rdf:about="https://memo.xight.org/2021-02-12-1">
 <title>Apple Silicon + Big Sur 11.3 Beta + anyenv + pyenv + python3.10.0a5</title>
 <link>https://memo.xight.org/2021-02-12-1</link>
 <description>
  Summarypyenv で python をインストールすると arm64-apple が認識できない。checking build system type... Invalid configuration `arm64-apple-darwin20.4.0': machine `arm64-apple' not recognizedconfigure: error: /bin/sh ./config.sub arm64-apple-darwin20.4.0 failedconfig.sub を入れ替えて configure$ cd /var/folders/PATH/TO/python-build.YYYYMMDDhhmmss.xxxxx.XXXXXX/Python3.10.0a5$ mv config.sub config.sub.bak$ wget https://raw.githubusercontent.com/gcc-mirror/gcc/master/config.sub$ cd ..$ ./configure --prefix=$(pyenv root)/versions/3.10.0a5 \ --enable-unicode=ucs4 \ --with-openssl=$(brew --prefix openssl) \ --enable-optimizations$ make$ make installsymlinkを作成$ cd $(pyenv prefix)/bin$ ln -s python3.10 python$ ln -s pydoc3.10 pydpc$ ln -s idle3.10 idle$ ln -s pip3.10 pip確認$ pyenv global 3.10.0a5$ python --versionPython3.10.0a5$ lipo -archs $(pyenv prefix)/bin/python3.10arm64課題: Universal binary でmakeできていないPATH/TO/Python-3.x.x/Mac/README.rst を参照$ ./configure --enable-universalsdk \ --with-universal-archs=universal2
 </description>
 <dc:creator>Yoshiki SATO  &lt;yoshiki@xight.org&gt;</dc:creator>
 <dc:date>2021-02-12T23:59:59+09:00</dc:date>
 <content:encoded>
  <![CDATA[<h2>Summary<br /></h2>pyenv で python をインストールすると arm64-apple が認識できない。<br />
<br />
</p><div class="code"><pre><code class="nohighlight">checking build system type... Invalid configuration `arm64-apple-darwin20.4.0': machine `arm64-apple' not recognized
configure: error: /bin/sh ./config.sub arm64-apple-darwin20.4.0 failed</code></pre></div><p>
<h2>config.sub を入れ替えて configure<br /></h2><div class="code"><pre><code class="bash">$ cd /var/folders/PATH/TO/python-build.YYYYMMDDhhmmss.xxxxx.XXXXXX/Python3.10.0a5
$ mv config.sub config.sub.bak
$ wget https://raw.githubusercontent.com/gcc-mirror/gcc/master/config.sub
$ cd ..
$ ./configure --prefix=$(pyenv root)/versions/3.10.0a5 \
              --enable-unicode=ucs4 \
              --with-openssl=$(brew --prefix openssl) \
              --enable-optimizations
$ make
$ make install</code></pre></div><br />
<br />
<h2>symlinkを作成<br /></h2><div class="code"><pre><code class="bash">$ cd $(pyenv prefix)/bin
$ ln -s python3.10 python
$ ln -s pydoc3.10 pydpc
$ ln -s idle3.10 idle
$ ln -s pip3.10 pip</code></pre></div><br />
<br />
<h2>確認<br /></h2><div class="code"><pre><code class="bash">$ pyenv global 3.10.0a5
$ python --version
Python3.10.0a5
$ lipo -archs $(pyenv prefix)/bin/python3.10
arm64</code></pre></div><br />
<br />
<h2>課題: Universal binary でmakeできていない<br /></h2>PATH/TO/Python-3.x.x/Mac/README.rst を参照<br />
<br />
<div class="code"><pre><code class="bash">$ ./configure --enable-universalsdk \
			  --with-universal-archs=universal2</code></pre></div><br />
]]>
 </content:encoded>
</item>

<item rdf:about="https://memo.xight.org/2020-12-22-1">
 <title>Apple Silicon + anyenv + rbenv + ruby2.7.2</title>
 <link>https://memo.xight.org/2020-12-22-1</link>
 <description>
  Summaryrbenv + ruby-build で ruby をインストールすると arm64-apple が認識できない。checking for ruby... $HOME/.anyenv/envs/rbenv/shims/rubytool/config.guess already existstool/config.sub already existschecking build system type... Invalid configuration `arm64-apple-darwin20.2.0': machine `arm64-apple' not recognizedconfigure: error: /bin/sh tool/config.sub arm64-apple-darwin20.2.0 failedconfig.sub を入れ替えて configure$ cd /var/folders/PATH/TO/ruby-build.YYYYMMDDhhmmss.xxxxx.XXXXXX/ruby-2.7.2/tool$ mv config.sub config.sub.bak$ wget https://raw.githubusercontent.com/gcc-mirror/gcc/master/config.sub$ cd ..$ ./configure --prefix=$(rbenv root)/versions/2.7.2-arm64$ make$ make install確認$ rbenv global 2.7.2-arm64$ ruby --versionruby 2.7.2p137 (2020-10-01 revision 5445e04352) [arm64-darwin20]$ lipo -archs $(rbenv prefix)/bin/rubyarm64問題x86_64 版を利用すると、$GEM_HOME/*/*.bundleで x86 と arm64 で競合が起こる。$GEM_HOME/gems/psych-3.2.1/lib/psych.bundle: mach-o, but wrong architecturex86版の .bundle ファイル を退避してアップデート$ mv $GEM_HOME/gem $GEM_HOME/gem-x86_64$ gem update
 </description>
 <dc:creator>Yoshiki SATO  &lt;yoshiki@xight.org&gt;</dc:creator>
 <dc:date>2020-12-22T23:59:59+09:00</dc:date>
 <content:encoded>
  <![CDATA[<h2>Summary<br /></h2>rbenv + ruby-build で ruby をインストールすると arm64-apple が認識できない。<br />
<br />
<div class="code"><pre><code class="bash">checking for ruby... $HOME/.anyenv/envs/rbenv/shims/ruby
tool/config.guess already exists
tool/config.sub already exists
checking build system type... Invalid configuration `arm64-apple-darwin20.2.0': machine `arm64-apple' not recognized
configure: error: /bin/sh tool/config.sub arm64-apple-darwin20.2.0 failed</code></pre></div><br />
<br />
<h2>config.sub を入れ替えて configure<br /></h2><div class="code"><pre><code class="bash">$ cd /var/folders/PATH/TO/ruby-build.YYYYMMDDhhmmss.xxxxx.XXXXXX/ruby-2.7.2/tool
$ mv config.sub config.sub.bak
$ wget https://raw.githubusercontent.com/gcc-mirror/gcc/master/config.sub
$ cd ..
$ ./configure --prefix=$(rbenv root)/versions/2.7.2-arm64
$ make
$ make install</code></pre></div><br />
<br />
<h2>確認<br /></h2><div class="code"><pre><code class="bash">$ rbenv global 2.7.2-arm64
$ ruby --version
ruby 2.7.2p137 (2020-10-01 revision 5445e04352) [arm64-darwin20]
$ lipo -archs $(rbenv prefix)/bin/ruby
arm64</code></pre></div><br />
<br />
<h2>問題<br /></h2>x86_64 版を利用すると、<br />
$GEM_HOME/*/*.bundleで x86 と arm64 で競合が起こる。<br />
<br />
<div class="code"><pre><code class="bash">$GEM_HOME/gems/psych-3.2.1/lib/psych.bundle: mach-o, but wrong architecture</code></pre></div><br />
<br />
x86版の .bundle ファイル を退避してアップデート<br />
<div class="code"><pre><code class="bash">$ mv $GEM_HOME/gem $GEM_HOME/gem-x86_64
$ gem update</code></pre></div><br />
]]>
 </content:encoded>
</item>

<item rdf:about="https://memo.xight.org/2020-12-19-1">
 <title>Apple Silicon + Homebrew</title>
 <link>https://memo.xight.org/2020-12-19-1</link>
 <description>
  SummaryTimeMachineでx86版からARM版に移行したときにハマった点をメモ。アクティビティモニターを右クリックしてアーキテクチャを表示しておくと良い。ARM版 HomebrewのインストールARM版 Homebrewは /opt/homebrew にインストールするのが推奨されている。$ cd /opt$ sudo mkdir homebrew$ sudo chown $(whoami):admin homebrew$ curl -L https://github.com/Homebrew/brew/tarball/master | tar xz --strip 1 -C homebrew$ /opt/homebrew/bin/brew updateハマったところ1: unameuname でアーキテクチャを確認できていなかったHomebrewでx86版のcoreutilsをインストールしていたため。$ uname -mx86_64$ which uname/usr/local/opt/coreutils/libexec/gnubin/uname$ /usr/bin/uname -marm64ハマったところ2: x86版のRuby gems/Library/Ruby/Gems/2.6.0/gems に x86版のRuby lib/*.bundle ファイルが残ってたため, it is not a compatible arch TimeMachine で移行するときにありがちっぽい。$ /opt/homebrew/bin/brewTraceback (most recent call last):22: from /opt/homebrew/Library/Homebrew/brew.rb:31:in `&lt;main&amp;gt;'21: from /opt/homebrew/Library/Homebrew/brew.rb:31:in `require_relative'20: from /opt/homebrew/Library/Homebrew/global.rb:23:in `&lt;top (required)&amp;gt;'19: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'18: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'17: from /opt/homebrew/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/activesupport-6.1.0/lib/active_support/core_ext/numeric/time.rb:3:in `&lt;top (required)&amp;gt;'16: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'15: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'14: from /opt/homebrew/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/activesupport-6.1.0/lib/active_support/duration.rb:3:in `&lt;top (required)&amp;gt;'13: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'12: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'11: from /opt/homebrew/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/activesupport-6.1.0/lib/active_support/core_ext/array/conversions.rb:3:in `&lt;top (required)&amp;gt;'10: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require' 9: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require' 8: from /opt/homebrew/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/activesupport-6.1.0/lib/active_support/xml_mini.rb:3:in `&lt;top (required)&amp;gt;' 7: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require' 6: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require' 5: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/time.rb:3:in `&lt;top (required)&amp;gt;' 4: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require' 3: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require' 2: from /Library/Ruby/Gems/2.6.0/gems/date-3.0.0/lib/date.rb:4:in `&lt;top (required)&amp;gt;' 1: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require': dlopen(/Library/Ruby/Gems/2.6.0/gems/date-3.0.0/lib/date_core.bundle, 0x0009): could not use '/Library/Ruby/Gems/2.6.0/gems/date-3.0.0/lib/date_core.bundle' because it is not a compatible arch - /Library/Ruby/Gems/2.6.0/gems/date-3.0.0/lib/date_core.bundle (LoadError)x86版のRuby gemsを退避$ cd /Library/Ruby/Gems/2.6.0$ sudo mv gems gems-bak$ /opt/homebrew/bin/brew listzshenvでpathを通しておくif [[ &quot;$OSTYPE&quot; == &quot;darwin&quot;* ]] &amp;amp;&amp;amp; [[ &quot;$CPUTYPE&quot; == &quot;arm64&quot; ]]; thenpath=(/opt/homebrew/bin(N-/)/opt/homebrew/opt/coreutils/libexec/gnubin(N-/)/opt/homebrew/opt/binutils/libexec/gnubin(N-/)/opt/homebrew/opt/findutils/libexec/gnubin(N-/)/opt/homebrew/opt/diffutils/libexec/gnubin(N-/)/opt/homebrew/opt/grep/libexec/gnubin(N-/)/opt/homebrew/opt/gnu-tar/libexec/gnubin(N-/)/opt/homebrew/opt/gnu-sed/libexec/gnubin(N-/)/opt/homebrew/opt/gawk/libexec/gnubin(N-/)/opt/homebrew/opt/openssl@1.1/bin(N-/)$path)fiif [[ &quot;$OSTYPE&quot; == &quot;darwin&quot;* ]] &amp;amp;&amp;amp; [[ &quot;$CPUTYPE&quot; == &quot;arm64&quot; ]]; thenmanpath=(/opt/homebrew/share/man(N-/)/opt/homebrew/opt/coreutils/libexec/gnuman(N-/)/opt/homebrew/opt/binutils/libexec/gnuman(N-/)/opt/homebrew/opt/findutils/libexec/gnuman(N-/)/opt/homebrew/opt/diffutils/libexec/gnuman(N-/)/opt/homebrew/opt/grep/libexec/gnuman(N-/)/opt/homebrew/opt/gnu-tar/libexec/gnuman(N-/)/opt/homebrew/opt/gnu-sed/libexec/gnuman(N-/)/opt/homebrew/opt/gawk/libexec/gnuman(N-/)/opt/homebrew/opt/openssl@1.1/man(N-/)$manpath)fiARM版のパッケージをインストールし、archを確認$ /opt/homebrwe/bin/brew install zsh$ lipo -archs /opt/homebrew/bin/zsharm64ReferenceHomebrew Documentationhttps://docs.brew.sh/Installation
 </description>
 <dc:creator>Yoshiki SATO  &lt;yoshiki@xight.org&gt;</dc:creator>
 <dc:date>2020-12-19T23:59:59+09:00</dc:date>
 <content:encoded>
  <![CDATA[<h2>Summary<br /></h2>TimeMachineでx86版からARM版に移行したときにハマった点をメモ。<br />
アクティビティモニターを右クリックしてアーキテクチャを表示しておくと良い。<br />
<br />
<h2>ARM版 Homebrewのインストール<br /></h2>ARM版 Homebrewは /opt/homebrew にインストールするのが推奨されている。<br />
<div class="code"><pre><code class="bash">$ cd /opt
$ sudo mkdir homebrew
$ sudo chown $(whoami):admin homebrew
$ curl -L https://github.com/Homebrew/brew/tarball/master | tar xz --strip 1 -C homebrew
$ /opt/homebrew/bin/brew update</code></pre></div><br />
<br />
<h2>ハマったところ1: uname<br /></h2>uname でアーキテクチャを確認できていなかった<br />
Homebrewでx86版のcoreutilsをインストールしていたため。<br />
<div class="code"><pre><code class="bash">$ uname -m
x86_64
$ which uname
/usr/local/opt/coreutils/libexec/gnubin/uname

$ /usr/bin/uname -m
arm64</code></pre></div><br />
<br />
<h2>ハマったところ2: x86版のRuby gems<br /></h2>/Library/Ruby/Gems/2.6.0/gems に x86版のRuby lib/*.bundle ファイルが残ってたため, it is not a compatible arch <br />
TimeMachine で移行するときにありがちっぽい。<br />
<br />
<div class="code"><pre><code class="bash">$ /opt/homebrew/bin/brew
Traceback (most recent call last):
	22: from /opt/homebrew/Library/Homebrew/brew.rb:31:in `&lt;main&gt;'
	21: from /opt/homebrew/Library/Homebrew/brew.rb:31:in `require_relative'
	20: from /opt/homebrew/Library/Homebrew/global.rb:23:in `&lt;top (required)&gt;'
	19: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
	18: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
	17: from /opt/homebrew/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/activesupport-6.1.0/lib/active_support/core_ext/numeric/time.rb:3:in `&lt;top (required)&gt;'
	16: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
	15: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
	14: from /opt/homebrew/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/activesupport-6.1.0/lib/active_support/duration.rb:3:in `&lt;top (required)&gt;'
	13: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
	12: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
	11: from /opt/homebrew/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/activesupport-6.1.0/lib/active_support/core_ext/array/conversions.rb:3:in `&lt;top (required)&gt;'
	10: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
	 9: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
	 8: from /opt/homebrew/Library/Homebrew/vendor/bundle/ruby/2.6.0/gems/activesupport-6.1.0/lib/active_support/xml_mini.rb:3:in `&lt;top (required)&gt;'
	 7: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
	 6: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
	 5: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/time.rb:3:in `&lt;top (required)&gt;'
	 4: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
	 3: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
	 2: from /Library/Ruby/Gems/2.6.0/gems/date-3.0.0/lib/date.rb:4:in `&lt;top (required)&gt;'
	 1: from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require'
/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems/core_ext/kernel_require.rb:54:in `require': dlopen(/Library/Ruby/Gems/2.6.0/gems/date-3.0.0/lib/date_core.bundle, 0x0009): could not use '/Library/Ruby/Gems/2.6.0/gems/date-3.0.0/lib/date_core.bundle' because it is not a compatible arch - /Library/Ruby/Gems/2.6.0/gems/date-3.0.0/lib/date_core.bundle (LoadError)</code></pre></div><br />
<br />
x86版のRuby gemsを退避<br />
<div class="code"><pre><code class="bash">$ cd /Library/Ruby/Gems/2.6.0
$ sudo mv gems gems-bak
$ /opt/homebrew/bin/brew list</code></pre></div><br />
<br />
<h2>zshenvでpathを通しておく<br /></h2><div class="code"><pre><code class="zsh">if [[ "$OSTYPE" == "darwin"* ]] &amp;&amp; [[ "$CPUTYPE" == "arm64" ]]; then
	path=(
		/opt/homebrew/bin(N-/)
		/opt/homebrew/opt/coreutils/libexec/gnubin(N-/)
		/opt/homebrew/opt/binutils/libexec/gnubin(N-/)
		/opt/homebrew/opt/findutils/libexec/gnubin(N-/)
		/opt/homebrew/opt/diffutils/libexec/gnubin(N-/)
		/opt/homebrew/opt/grep/libexec/gnubin(N-/)
		/opt/homebrew/opt/gnu-tar/libexec/gnubin(N-/)
		/opt/homebrew/opt/gnu-sed/libexec/gnubin(N-/)
		/opt/homebrew/opt/gawk/libexec/gnubin(N-/)
		/opt/homebrew/opt/openssl@1.1/bin(N-/)
		$path
	)
fi

if [[ "$OSTYPE" == "darwin"* ]] &amp;&amp; [[ "$CPUTYPE" == "arm64" ]]; then
	manpath=(
		/opt/homebrew/share/man(N-/)
		/opt/homebrew/opt/coreutils/libexec/gnuman(N-/)
		/opt/homebrew/opt/binutils/libexec/gnuman(N-/)
		/opt/homebrew/opt/findutils/libexec/gnuman(N-/)
		/opt/homebrew/opt/diffutils/libexec/gnuman(N-/)
		/opt/homebrew/opt/grep/libexec/gnuman(N-/)
		/opt/homebrew/opt/gnu-tar/libexec/gnuman(N-/)
		/opt/homebrew/opt/gnu-sed/libexec/gnuman(N-/)
		/opt/homebrew/opt/gawk/libexec/gnuman(N-/)
		/opt/homebrew/opt/openssl@1.1/man(N-/)
		$manpath
	)
fi</code></pre></div><br />
<br />
<h2>ARM版のパッケージをインストールし、archを確認<br /></h2><div class="code"><pre><code class="bash">$ /opt/homebrwe/bin/brew install zsh
$ lipo -archs /opt/homebrew/bin/zsh
arm64</code></pre></div><br />
<br />
<h2>Reference<br /></h2>Homebrew Documentation<br />
<a href="https://docs.brew.sh/Installation">https://docs.brew.sh/Installation</a><br />
]]>
 </content:encoded>
</item>

</rdf:RDF>
