Archive for category ソフトウェア

macOS High Sierra(10.13)でのERROR: The Python ssl extension was not compiled. Missing the OpenSSL lib?への対処

macOS High Sierra(10.13)でpyenvを使い、Python 3.5.3や2.7.14をインストールしようとすると成功したように見えて次のエラーがでて正しくインストールされない現象に遭遇。macOS High Sierra: ERROR: The Python ssl extension was not compiled. Missing the OpenSSL lib? #993などを参考に正しくインストールする方法を探った際の記録。

インストール時のエラーメッセージ

$ pyenv install 3.6.3
Downloading Python-3.6.3.tar.xz...
-> https://www.python.org/ftp/python/3.6.3/Python-3.6.3.tar.xz
Installing Python-3.6.3...
ERROR: The Python ssl extension was not compiled. Missing the OpenSSL lib?

Please consult to the Wiki page to fix the problem.
https://github.com/pyenv/pyenv/wiki/Common-build-problems


BUILD FAILED (OS X 10.13 using python-build 20160602)

Inspect or clean up the working tree at /var/folders/yf/79cdmmgx74s6z0_9yf_tz1fw0000gq/T/python-build.20171022085825.57793
Results logged to /var/folders/yf/79cdmmgx74s6z0_9yf_tz1fw0000gq/T/python-build.20171022085825.57793.log

Last 10 log lines:
            upgrade) ensurepip="--upgrade" ;; \
            install|*) ensurepip="" ;; \
        esac; \
         ./python.exe -E -m ensurepip \
            $ensurepip --root=/ ; \
    fi
Collecting setuptools
Collecting pip
Installing collected packages: setuptools, pip
Successfully installed pip-9.0.1 setuptools-28.8.0

最終行でSuccessfullyと出るのでうまくいっているように見えるが赤字で示す行の通りOpenSSlのライブラリが見つからないと出ている。

正しくインストールする操作手順

色々試した結果、次の操作でエラーを回避した。

  1. homebrewでHigh Sierra以前でインストールしたopensslパッケージを強制的にアンインストール
  2. homebrewで再度opensslパッケージをインストール
  3. openssl再インストール時に表示されたコマンドを実行
  4. bashの環境変数PATHを修正
  5. 再度pyenvコマンドでpythonのインストール

実行したコマンドなど

$ brew uninstall --ignore-dependencies --force openssl
$ brew install openssl
$ /usr/local/opt/openssl/bin/c_rehash

~/.bash_profile内の環境変数PATHの設定を変更

export PATH="/usr/local/opt/openssl/bin:$PATH"

~/.bash_profileの変更反映とインストール

$ source ~/.bash_profile
$ peen install 3.5.3
# 2.7.14では次のコマンドを実行
$ LDFLAGS="-L/usr/local/opt/openssl/lib" CPPFLAGS="-I/usr/local/opt/openssl/include" pyenv install 2.7.14

これでバージョン2と3の最新バージョンが利用できる。

実はHomebrewではバージョン2.7.14と3.6.3がインストールされている

, ,

No Comments

LaTeXへの変換にも対応するMarkdown中の画像サイズ指定方法

最近、Markdownを使っての文書作成が多くなっているがそれをpandocを使ってLaTeXなどの他の形式に変換してPDFとして配布するようになった。

Markdownの元文書中にPNGなどの画像は次の書式で挿入するがこのままではLaTeXなどに変換したとき、ぺーじをはみ出してしまう。

![代替テキスト](画像ファイル名)

Markdown中でCSSを使えばHTMLでは表示サイズを指定できるがLaTeXには反映されない。色々と検索した結果、Syntax for specifying image size #261でその解決方法を見つけた。HTML、LaTeXに対応した書き方は下記の通り。ファイル名指定に続けて幅と高さを指定する。

<div style="width:幅の値">
![代替テキスト](画像ファイル名){width=幅の値 height=高さの値}
</div>

たとえば、画像test.pngを幅を14cmで表示したときは次のように記す。

<div style="width: 14cm;">
![画像です](test.png){width=14cm}
</div>

これをpanicでLaTeXに変換すると、下記のようにfigure環境になり、代替テキストがキャプションに指定されます。これで意図したサイズで画像を表示できるようになる。

\begin{figure}[htbp]
\centering
\includegraphics[width=14.00000cm]{test.png}
\caption{画像です}
\end{figure}

なお、pandocで変換されたLaTeXファイルだけではコンパイルできないので別ファイルに\input{}や\include{}を使って取り込み、コンパイルします。

,

No Comments

Raspberry Piにvsftpd 3.0.3をソースからインストール

Raspberry Piのvftp 2.3.5ではchrootがうまく設定できないのでソースからビルドしたその記録。(Qittaに投稿した内容を転記しました。)

ソースの取得と展開

ソースファイルを取得し展開そのディレクトリへ移動”ソースファイルを取得し、展開、そのディレクトリへ移動

# wget https://security.appspot.com/downloads/vsftpd-3.0.3.tar.gz
# tar zxfv vsftpd-3.0.3.tar.gz 
# cd vsftpd-3.0.3/

cryptに対するエラーを回避する

このままmakeすると下記エラーメッセージを表示し、ビルが失敗する。

sysdeputil.c:(.text+0xe0): `crypt' に対する定義されていない参照です
sysdeputil.c:(.text+0x100): `crypt' に対する定義されていない参照です

そこでvsf_findlbs.shにlibcryptの所在を記す。

# vim vsf_findlibs.sh

29行目に下記を追加

   locate_library /usr/lib/arm-linux-gnueabihf/libcrypt.so && echo "-lcrypt";

make

vsf_findlbs.shを保存終了後、makeし、インストールする。

# make
# make install

chrootの設定

chrootできるように設定ファイルを編集。

#vim /etc/vsftpd.conf
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
allow_writeable_chroot=YES

vsftpdサーバを起動する

# /usr/local/sbin/vsftpd &

No Comments

MacPortsでインストールしたvimではcrontab -eが上手く動かない

OS X 10.9.4でcronを使った自動実行を設定しようとしてcrontab -eし、設定を入力保存したら下記のメッセージが表示され、crontab -lを実行しても入力が反映されなかった。

[~]$ crontab -e
crontab: no crontab for sakabe - using an empty one
crontab: no changes made to crontab

検索すると下記のように環境変数EDITORを一時的にnanoに変更して実行する方法が見つかった。

env EDITOR=nano crontab -e

nanoの使い方分からないので別な方法がないかと調べたり考えた結果、私の環境で通常使用しているのvimはMacPortsでインストールしたものだが他のテキストエディタを試したところ上手くできた。

OS Xに最初からインストールされているvim(/usr/bin/vim)を使う場合のコマンドは下記の通り。

env EDITOR=/usr/bin/vim crontab -e

また、emacsも同様に使える。

env EDITOR=emacs crontab -e

参考にしたのはmacでcrontab -e が保存されない問題を解決した。

No Comments

iBook Author ver.2でLaTeXの数式を使う

先日アップデートされたiBook Author新しいバージョン(version 2)ではLaTeXとMathMLの数式を使えるようになった。どう入力するのかすぐには分からなかったがメニューの挿入から方程式を選べばいい。ただし、日本語を含む式はそのままでは無効な方程式となってしまう。少し面倒だが日本語の部分は\text{}に入れれば数式中に日本語を含められる。

これで更に用途が広がった。

メトリック=(\frac{10^7}{最小帯域幅}+累積遅延)\times 256
     ↓
\text{メトリック}=(\frac{10^7}{\text{最小帯域幅}}+\text{累積遅延})\times 256

最初、iBooks Author内にLaTeXの環境が組み込まれているのかとバンドル内を探してみたがそれらしき物は見つからず、検索した結果アップル本家のサポートページにある説明の文書を見つけた。BlahtexというLaTeX数式をMathMLに変換するプログラムを使っている事が分かった。

,

No Comments

%d人のブロガーが「いいね」をつけました。