ブログトップ 記事一覧 ログイン 無料ブログ開設

ぴょぴょぴょ? - Linuxとかプログラミングの覚え書き - このページをアンテナに追加 RSSフィード

2018-10-02

macOS Mojave で MacPorts をつかう方法

|  macOS Mojave で MacPorts をつかう方法を含むブックマーク  macOS Mojave で MacPorts をつかう方法のブックマークコメント

macOS の最新版 Mojave に合わせて MacPorts更新したので,手順をメモします

概要

MacPortsインストール済みの macOS を Mojave にアップグレードすると以下のようなエラーメッセージがでて MacPorts は動作しなくなります

Error: Current platform "darwin 18" does not match expected platform "darwin 17"
Error: If you upgraded your OS, please follow the migration instructions: https://trac.macports.org/wiki/Migration
OS platform mismatch
    while executing
"mportinit ui_options global_options global_variations"
Error: /opt/local/bin/port: Failed to initialize MacPorts, OS platform mismatch

理由メッセージの通りで,対処するには Mojave つまり darwin 18用に /opt/local/bin/port コマンドなどを更新する作業が必要になります.

更新作業は以下の順に進めます

  1. Xcode Developer Tools をinstall
  2. port コマンドのinstall
  3. パッケージの更新

以下,順に説明します

Xcode Developer Toolsのインストール

コマンドラインで作業します

$ xcode-select --install

これでGUIアプリが起動して,ダウンロードインストールが自動で処理されます

インストールが終わったら,念のため Developer バージョン選択しておきます

$ sudo xcode-select -s /Applications/Xcode.app/Contents/Developer

port コマンドインストール

現時点(2018/10/02) ではまだ公式のバイナリが公開されていません

そこで以下の手順で自分でビルドします

作業ディレクトリに移動してソースコードダウンロードします.以下の例では /tmp で作業しました

$ cd /tmp
$ wget https://distfiles.macports.org/MacPorts/MacPorts-2.5.3.tar.bz2

configure して install します.

$ tar xfj MacPorts-2.5.3.tar.bz2
$ cd MacPorts-2.5.3
$ ./configure
$ make -j4
$ sudo make install

これで /opt/local 以下に Mojave 用のport環境がインストールされます

一度,パッケージのメタ情報更新しておきます

$ sudo port -v selfupdate

念のため古いビルド情報を破棄します.

$ sudo rm -rf /opt/local/var/macports/build/*

パッケージの更新

通常通り

$ sudo port upgrade -u outdated

などを実行すればOKです

インストール済みパッケージを自力でリビルドする方法

どうしても自前でバイナリをリビルドしたい人むけに,リビルド用のスクリプトが用意されています

$ wget https://github.com/macports/macports-contrib/raw/master/restore_ports/restore_ports.tcl
$ chmod +x restore_ports.tcl

使用方法は以下の通り.

まずインストール済みのパッケージ一覧のリストを作ります

$ port -qv installed > list.txt 

一度全パッケージをアンインストールします

$ sudo port -f uninstall installed

全パッケージをリビルドインストールします

$ ./restore_ports.tcl  list.txt

これだけですが,全パッケージをリビルドするのでかなり時間が掛かります.

参考URL

トラックバック - http://d.hatena.ne.jp/pyopyopyo/20181002

2018-09-29

quilt の使い方

|  quilt の使い方を含むブックマーク  quilt の使い方のブックマークコメント

debianubuntudeb パッケージのメンテナンス(パッチの管理)で使う quilt コマンドの利用方法をまとめます

debパッケージのメンテナンスをしていると,以下の様なエラーが出る場合があります

Applying patch 04_hyphen-manpage.diff
patching file docs/man/django-admin.1
Hunk #1 FAILED at 194.
1 out of 1 hunk FAILED -- rejects in file docs/man/django-admin.1
Patch 04_hyphen-manpage.diff can be reverse-applied

つまり patch を当てるのに失敗しています

この場合 patch の修正が必要となりますが,quilt コマンドを使うとその作業が大幅に省力化できます

quilt の使い方 (エラーが出ない場合)

とりあえず

$ quilt

と実行すると quilt のサブコマンドの一覧が表示されます

まず,debパッケージに含まれるパッチの一覧は debian/patches フォルダ以下に保存されています.

$ quilt series

これで一覧が確認できます

debパッケージはこれらパッチを上から順にソースコードに適用していきます

先頭のパッチを適用するには

$ quilt push

とします

パッチが正しくあたった場合は,ひたすら quilt push を繰り返すと,どんどん次のパッチが適用されていきます

現在適用済みのパッチを確認するには

$ quilt applied

まだ適用していないパッチを確認するには

$ quilt unapplied

を実行します

またパッチを外す場合は

$ quilt pop

とします

pushpopを繰り返すと次にどのパッチファイルpushされるのか判らなくなる場合があります.その場合は

$ quilt next

で次にpushされるパッチが確認できます

quilt の使い方 (エラーが出た場合)

ここからが本題です

$ quilt push

でエラーが出た場合は次のような表示になります

Applying patch 04_hyphen-manpage.diff
patching file docs/man/django-admin.1
Hunk #1 FAILED at 194.
1 out of 1 hunk FAILED -- rejects in file docs/man/django-admin.1
Patch 04_hyphen-manpage.diff can be reverse-applied

この場合,パッチの内容は全て破棄され,ソースコードは quilt push する前の状態に戻ります

パッチを修正する作業に取り掛かる場合は,quilt push コマンドに "-f" を付けて実行します

$ quilt push -f

これで *.rej ファイルが生成されるので,後はソースコードを手作業で修正します

修正が終わったら

$ quilt reflesh

を実行します

これで修正がパッチファイルに自動で反映されます.

まとめ

まとめると

となります


[入門] Debian パッケージ
やまだ あきら
技術評論社
売り上げランキング: 840,287

トラックバック - http://d.hatena.ne.jp/pyopyopyo/20180929

2018-09-25

.changes ファイルの作り方,更新方法

|  .changes ファイルの作り方,更新方法を含むブックマーク  .changes ファイルの作り方,更新方法のブックマークコメント

debianubuntudebパッケージを作成する際に登場する *.changes ファイルについての覚書です

.changes ファイルとは

*.changes ファイルは, *.deb のパッケージをリポジトリアップロードする際に必要となる情報を保存しています.

具体的には

を一つのテキストファイルに記載しています

.changes の生成方法

基本的に dpkg-buildpackage などのビルドツールが自動生成します.

手動で生成するには dpkg-genchanges コマンドを使う方法が確実です

$  dpkg-genchanges > hogehoge.changes

.changes の確認

reprepro パッケージに含まれる changestool を使います

例えば,ファイルサイズチェックサムを確認する場合は

$ changestool hogehoge.changes  verify

とします

.changes ファイルの署名

dpkg-buildpackage などのビルドツールで --sign-key オプションを使っておけば,*.changes ファイルは自動で署名されます.

手動で署名する場合は debsign コマンドをつかいます

$ DEBSIGN_KEYID="鍵のID"  debsign --re-sign hogehoge.changes

"--re-sign" をつけておくと,すでに *.changes ファイルが署名済みの場合は 自動的に再度署名しなおしてくれます.

トラックバック - http://d.hatena.ne.jp/pyopyopyo/20180925

2018-05-14

apt で NO_PUBKEY / GPG Error が出る場合の解決方法

|  apt で NO_PUBKEY / GPG Error が出る場合の解決方法 を含むブックマーク  apt で NO_PUBKEY / GPG Error が出る場合の解決方法 のブックマークコメント

apt コマンド公開鍵に関するエラー, NO_PUBKEY / GPG Error が出る場合は,以下の手順で復旧できます

例えば apt-get update で下記のエラーが出る場合は

The following signatures couldn't be verified 
because the public key is not available: NO_PUBKEY 06AED62430CB581C

以下のコマンドを実行します

$ gpg --keyserver pgpkeys.mit.edu --recv-key 06AED62430CB581C
$ gpg -a --export 06AED62430CB581C | sudo apt-key add -

これは

しています

あとは再度

$ sudo apt update

を実行すれば復旧できます

データベースの実体は /etc/apt/trusted.gpg です

$ sudo apt-key list 

で登録済み公開鍵の一覧が確認できます.

一覧には /etc/apt/trusted.gpg だけでなく /etc/apt/trusted.gpg.d/以下のファイル公開鍵も含まれています


なお昔はGPG鍵を更新する方法として

$ sudo apt-key update

という方法も用意されていましたが,この方法は今では廃止されています(2018年5月確認)

トラックバック - http://d.hatena.ne.jp/pyopyopyo/20180514

2018-05-09

macOS に Tex Live 2018をインストールする

|  macOS に Tex Live 2018をインストールするを含むブックマーク  macOS に Tex Live 2018をインストールするのブックマークコメント

macOS High SierraTeX環境を texlive2018 に更新したので手順をまとめます.

この記事は以下のエントリを macOS High SierraTex Live 2018 に合わせて更新・加筆したものです.

BasicTeX

パッケージはMacTeXのサブセット版である BasicTeX を使いました.

MacTeXは全パッケージをインストールします.そのため 2.4GB ものディスク容量を消費します (Tex live 2014の場合).

一方サブセット版である BasicTeX は最低限のパッケージしかインストールしません.必要な容量は 230MB程度です.不足パッケージは後から簡単にインストールできるので実用上の問題もありません

ダウンロード&インストール

https://tug.org/mactex/morepackages.html から mactex-basic.pkg をダウンロードインストールします

なおMacTeXは

  • 2018 通常版 /usr/local/texlive/2018
  • 2018 BasicTeX /usr/local/texlive/2018basic
  • 2017 BasicTeX /usr/local/texlive/2017basic

という感じでディレクトリを分けてファイルを配置します

デフォルトTeX環境の選択は,"TeX Distribution"というアプリで行います.

メニューの”システム環境設定"にアイコンがあります.Spotlight検索TeX Distribution でも起動できます)

このアプリ

  • /Library/TeX/texbin
  • /Library/TeX/Root
  • /Library/TeX/Local
  • /Library/TeX/Documentation

というシンボリックリンクを管理していて,これらリンクデフォルトtex環境を選択する仕組みになっています.

たとえば mactex-basic.pkg をインストールすると,/Library/TeX/texbin のリンク先は

$ readlink -f  /Library/TeX/texbin
/usr/local/texlive/2018basic/bin/x86_64-darwin

という感じで,/usr/local/texlive/2018basic/bin/x86_64-darwin になります

初期設定

basictex をインストールしたら,必要なパッケージを追加インストールします

方法は二つ

あります.

ここでは,説明が簡単,という理由CUIを使います.

ターミナルを起動し,まずは tlmgr 自身を更新します

$ sudo tlmgr update --self 

次に導入済みパッケージの更新

$ sudo tlmgr update  --all

個人的に良く使うパッケージをインストール

$ sudo tlmgr install  type1cm subfigure dvipdfmx multirow xstring logreq biblatex latexmk 

日本語環境の設定

Tex live 2018 で少し手順に変更があります.

TLContirb リポジトリの追加登録

ライセンスの関係で Tex live 2018 ではパッケージ構成に変更がありました.

macOS 同梱のフォントを使うためのパッケージ達は別リポジトリ( TLContrib )へ分離されたので,

まずはこのリポジトリを登録します.

$ sudo tlmgr repository add http://contrib.texlive.info/current tlcontrib
$ sudo  tlmgr pinning add tlcontrib '*'

フォント周りで重要なパッケージは

  • cjk-gs-integrate-macos (cjk-gs-integrateのmacOS版)
  • adobemapping (adobemapping を入れておかないとdvipdfmxでエラーが出ます)
  • ptex-fontmaps

です

リポジトリの登録が済んだら,日本語関連のパッケージをまとめてインストールします

$ sudo tlmgr  install ptex-fontmaps-macos cjk-gs-integrate-macos japanese-otf-nonfree ptex platex jsclasses japanese-otf cjk-gs-integrate adobemapping ptex-fontmaps
フォントの登録

cjk-gs-integrate-macos というスクリプト(cjk-gs-integrate のmac os 版)がインストールされるので,これを使って mac OSフォントを登録します

$ sudo cjk-gs-integrate-macos --link-texmf --force
$ sudo mktexlsr
登録ずみフォントの確認

フォントの設定用に kanji-config-updmap-sys というスクリプトインストールされます.

このスクリプトで現在の設定を確認します.

$ sudo kanji-config-updmap-sys status

以下の出力が得られます

CURRENT family for ja: noEmbed
Standby family : hiragino-highsierra
Standby family : hiragino-highsierra-pron
Standby family : ipa
Standby family : ipaex
Standby family : kozuka
Standby family : ms
Standby family : toppanbunkyu-highsierra
Standby family : yu-win

先頭行は現在の設定で,日本語フォントは埋め込まない,という意味です

残りは利用可能なフォントの一覧です

フォントの変更

フォントが登録できたら,pdfに埋め込むフォントを指定します

$ sudo kanji-config-updmap-sys hiragino-highsierra-pron

自動で extractbb が実行されるようにする

以下の内容で /usr/local/texlive/texmf-local/web2c/texmf.cnf を用意します

shell_escape_commands = \
bibtex,bibtex8,bibtexu,upbibtex,biber,\
kpsewhich,\
makeindex,mendex,texindy,xindy,\
mpost,upmpost,\
repstopdf,epspdf,extractbb

古い TeX環境の削除

uninstallは簡単です

MacTex 2017 を消したい場合は /usr/local/texlive/2017basic をディレクトリ毎削除するだけです

$ sudo rm -rf /usr/local/texlive/2017basic

トラブルシューティング

pdfに画像が貼れない/gsコマンドが無い
ghostscript (gsコマンド) がインストールされていないと dvipdfmx 経由で作成する pdf に画像が貼れない場合があります.ghostscript をインストールするには https://tug.org/mactex/morepackages.html の mactex-additions.pkg から ghostscriptを選択してインストールするのが楽そうです.
LaTeX It を使いたい
gsコマンドが必要なので,あらかじめ上記の手順でghostscriptをインストールして http://www.chachatelier.fr/latexit/ からdmgダウンロードインストールする.
TeX Live Utility.app を使いたい
https://code.google.com/p/mactlmgr/
dvipdfmx がCould not find encoding file “H”. というエラーを出す
adobemapping パッケージをインストールすると直ります
日本語フォントが使えなくなった
Tex live 2018 でフォント周り(パッケージ構成やコマンド名)に少し変更が入っているようです.上記手順を参考にフォント周りの設定を見直してください

まとめ

インストール後の /usr/local/texlive/2018basicのサイズは 546MB でした.2014basicの頃より220MBほど小さくなったようです.

Tex live 2014は全部インストールすると 2.4GB程度なので,それに比べるとかなりディスク容量を節約できたようです.






[改訂第7版]LaTeX2ε美文書作成入門
奥村 晴彦 黒木 裕介
技術評論社
売り上げランキング: 4,008


学生・研究者・技術者のためのLATEXを用いた論文作成術
渡辺 徹
プレアデス出版
売り上げランキング: 233,232