20210724のMacに関する記事は3件です。

M1 macな人たちに贈るLaTeX Dockerイメージ

概要 この記事では、M1 macでも使えるLaTeX Dockerイメージを紹介します。 Ghostscriptも含んでいますが、圧縮サイズで520MB程度です。 マルチアーキテクチャビルドしていますので、amd64な人もarm64な人も使えます。 拙稿「pman0214 - DockerでGhostscript対応LaTeX環境構築」で解説しているLaTeX on Dockerイメージが更新されています。 はじめに M1なmacになり、LaTeX on Dockerが使えなくなってしまいました。 MacTeXはサイズが大きく、ダウンロードに膨大な時間がかかります(ミラーサーバの運用者さまにおかれましては、多大なる苦労をしていることと推察いたします。ありがとうございます)。 サイズを小さくしようとするとinstall-tlを使用してインストールするなどが必要です。しかし、インストール時期によりバージョンにバラツキが生じます。複数マシンにインストールすると環境の差が生まれる場合もあります。 そこで、マルチアーキテクチャビルドでLaTeXのDockerイメージを作ることにしました。 使い方 「はじめに」に大層なことを書きましたが、使う上で解説することは実はほぼありません。 以下の拙稿をご参照ください。イメージを更新しただけですので、使い方は変わりません。 pman0214/DockerでGhostscript対応LaTeX環境構築 - Qiita pman0214/Docker+VS CodeでLaTeX環境構築 (latexmkrc依存版) - Qiita amd64なマシンからdocker pullすればamd64なイメージが、arm64なマシンからdocker pullすればarm64なイメージが取得されます。 ビルドしたい人向け ビルドに用いたファイルはGitHubで公開しています。 Dockerfileでは主に以下のことをしています。 alpineイメージをベースとし、glibcをインストール amd64, arm64で共通で使えるパッケージが無いので、ビルドしたバイナリをインストールしつつ設定 ghostscriptをインストール texをインストール ビルド環境 当方のビルド環境は以下の通りです。 Ubuntu 18.04.5 LTS Docker Docker version 20.10.7, build f0df350 Intel Core i9-9900K @3.60GHz / 64GB RAM DockerのAutomated Buildが課金されてしまうそうなので、現在は手動でビルドしています。そのうちGitHub Action化されるかもしれません。 事前準備 拙稿の「M1 macな人たちに贈るpytorch+jupyterlab docker image / 準備(linuxでビルドする場合のみ) - Qiita」を参照するなどして、マルチアーキテクチャビルド環境を準備しておきます。 ビルド アーキテクチャを指定して、buildxコマンドを使ってビルドします。 と言っても、指定できる(ビルドに成功する)アーキテクチャはlinux/amd64とlinux/arm64のみです。 % git clone https://github.com/pman0214/docker-alpine-texlive-ja-epspdf.git % cd docker-alpine-texlive-ja-epspdf % docker buildx build \ --platform linux/amd64,linux/arm64 \ -t "alpine-texlive-ja-epspdf:2021" \ . --load docker hubには以下でpushしています。 % git clone https://github.com/pman0214/docker-alpine-texlive-ja-epspdf.git % cd docker-alpine-texlive-ja-epspdf % docker buildx build \ --platform linux/amd64,linux/arm64 \ -t "pman0214/alpine-texlive-ja-epspdf:2021" \ . --push タグ付け このままではlatestタグがないイメージとなってしまうため、latestタグを付けます。 マルチアーキテクチャビルドの場合、同じ名前(タグ)で複数のイメージが存在するため、manifestを操作してタグを操作する必要があります。 作成したいタグのmanifestをmanifestに含めるイメージを指定して作成します。 % docker manifest create pman0214/alpine-texlive-ja-epspdf:latest \ pman0214/alpine-texlive-ja-epspdf@sha256:ee9ccaefff9468fae0a34af33355e880933fa56bfaab5865000081f583756621 \ pman0214/alpine-texlive-ja-epspdf@sha256:414e9dfef683e06ec91547c870c6eaec54c0d7ba484afb6ccda87a90d0656f46 sha265部分は、docker hubで確認するか、以下のようなコマンドを実行してmanifestを取得して確認します。 % docker manifest inspect pman0214/alpine-texlive-ja-epspdf:2021 この出力として、以下のようなJSONが得られます。 { "schemaVersion": 2, "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json", "manifests": [ { "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "size": 1154, "digest": "sha256:7be1959252e4b31939683b99438c78343c7bbd8334485e6698d8513be2e558ed", "platform": { "architecture": "amd64", "os": "linux" } }, { "mediaType": "application/vnd.docker.distribution.manifest.v2+json", "size": 1154, "digest": "sha256:f8538f475c72014d9ac4aae5ee59e46bae657d3ce40f2f35184740f698a3ae8c", "platform": { "architecture": "arm64", "os": "linux" } } ] } 作成したmanifestをpushすれば完了です。 % docker manifest push pman0214/alpine-texlive-ja-epspdf:latest おわりに 本記事では、IntelなmacでもM1なmacでも動くlatex dockerイメージを紹介しました。 使い方は過去記事と変わらないため、使い方の説明は過去記事を参照するだけの形となっています。 一方で、ビルドについては簡単に説明しました。 特に、manifestの操作によるタグの付け方を説明しました。 これでやってM1 macでもlatexを使う気になれそうです。
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

npm install -g が失敗する場合の対処法

環境 Macですがlinuxなら同様の対処で解決するのではないでしょうか 特にバージョンは関係ないかと思います npm install -gをするとPermission deniedで失敗してしまう npmの新しいバージョンが使えるようになったということでnpm install -g npmでバージョンアップしようとしたところ、以下のようなエラーが出てしまいました npm ERR! Error: EACCES: permission denied, access '/usr/local/lib/node_modules/npm/node_modules/abbrev' npm ERR! [Error: EACCES: permission denied, access '/usr/local/lib/node_modules/npm/node_modules/abbrev'] { npm ERR! errno: -13, npm ERR! code: 'EACCES', npm ERR! syscall: 'access', npm ERR! path: '/usr/local/lib/node_modules/npm/node_modules/abbrev' npm ERR! } 原因 自明ですが権限エラーです 調べてみるとやはりroot権限になっていました $ ls -la /usr/local/lib/node_modules/npm total 512 // ・・・ drwxr-xr-x 360 root wheel 11520 10 9 2020 node_modules // ・・・ 対処 root権限である必要もないし、Macユーザをオーナーにしようと思ったので以下のコマンドで/usr/local/lib/node_modules以下の権限を全て変更しました $ sudo chown -R $USER /usr/local/lib/node_modules パスワードの入力を要求されるので入力してください 環境変数にユーザ名が登録されたいない場合は $ sudo chown -R $(whoami) /usr/local/lib/node_modules で変更してください ちなみに上記コマンドでは/usr/local/lib/node_modules以下のディレクトリが全てMacのユーザ権限になります ちなみに 別のユーザをオーナーにする場合は$USERの部分にユーザ名を入力してください 参考 stackoverflowに記事がありました https://stackoverflow.com/questions/48910876/error-eacces-permission-denied-access-usr-local-lib-node-modules
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

[便利]ショートカットキー紹介

はじめに プログラミング学習をしていく中で、 これはcommandを用いるショートカットで 使えると思ったをリストアップして勝手に順位付しました。 順位がないものは今回調べて学んだことです。 ショートカットキー紹介 一般的なものについては、主観で使える順にしてみました。 一般的なショートカット 順位 キー 内容 1 Z 一つ前に戻る 2 shift+Z 一つ先に進む 3 F 項目内検索 4 A 全選択 5 X 切り取り 6 shift+3 スクリーンショット 7 C コピー 8 V 貼り付け 9 S 現在ファイル保存 10 T 新しいタブ作成 11 スペース Spotlight検索 12 W 最前面のウィンドウを閉じる 13 O 選択した項目を開く 14 M 最前面のウィンドウを最小化してDockへ 15 G 直前に選択した項目が次に出現する箇所を検索 16 H 最前面のAppのウィンドウを非表示 17 P 印刷 ; 書類でのスペルミス検索 [ 前のフォルダに移動 ] 次のフォルダに移動 その他のショートカット キー 内容 D 選択したファイルを選択 E 選択したディスクまたじゃボリューム取り出し I 選択したファイルの「情報を見る」ウィンドウを表示 N 新しいウィンドウを開く shift+C 「コンピュータ」ウィンドウを開く shift+D 「デスクトップ」フォルダを開く shift+F 「最近使った項目」ウィンドウを開く shift+G 「フォルダへ移動」ウィンドウを開く shift+H ユーザーアカウントのホームフォルダを開く option+D Dockの表示・非表示 覚えられましたでしょうか 私は、特に[一つ前に戻る・進む]をたくさん使います。 その他に、こんなものが便利というものがあれば、 どんどん共有してまいります。 引き続きがんばりましょう!! [参考] Apple Windows
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む