takuocean’s diary

備忘録がメインなので、説明が足りないことも多い。もう少し詳しくという人はコメントをお願いします。

ラズパイでThe bug is not reproducible, so it is likely a hardware or OS problemと言われた

Rapbianにpyenvを使ってpython3.4.3をインストールしようとしたらエラーが出てきた。

pi@raspberrypi:~$ pyenv install 3.4.3                                                                                                                                                
Downloading Python-3.4.3.tar.xz...                                                                                                                                                   
-> https://www.python.org/ftp/python/3.4.3/Python-3.4.3.tar.xz
Installing Python-3.4.3...

BUILD FAILED (Raspbian 8.0 using python-build 1.0.10-16-g30212f0)

Inspect or clean up the working tree at /tmp/python-build.20170503005235.1237
Results logged to /tmp/python-build.20170503005235.1237.log

Last 10 log lines:
Please submit a full bug report,
with preprocessed source if appropriate.
See <file:///usr/share/doc/gcc-4.9/README.Bugs> for instructions.
gcc -pthread -c -Wno-unused-result -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes    -Werror=declaration-after-statement   -I. -IInclude -I./Include -I/home/pi/.pyenv/versions/3.
4.3/include  -I/home/pi/.pyenv/versions/3.4.3/include   -DPy_BUILD_CORE -o Python/bltinmodule.o Python/bltinmodule.c
gcc -pthread -c -Wno-unused-result -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes    -Werror=declaration-after-statement   -I. -IInclude -I./Include -I/home/pi/.pyenv/versions/3.
4.3/include  -I/home/pi/.pyenv/versions/3.4.3/include   -DPy_BUILD_CORE -o Python/ceval.o Python/ceval.c
gcc -pthread -c -Wno-unused-result -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes    -Werror=declaration-after-statement   -I. -IInclude -I./Include -I/home/pi/.pyenv/versions/3.
4.3/include  -I/home/pi/.pyenv/versions/3.4.3/include   -DPy_BUILD_CORE -o Python/compile.o Python/compile.c
The bug is not reproducible, so it is likely a hardware or OS problem.
Makefile:1487: recipe for target 'Python/Python-ast.o' failed
make: *** [Python/Python-ast.o] Error 1
make: *** Waiting for unfinished jobs....

解決策(?)

以下のようにカーネルとファームをアップデートをしたらうまくインストールできるようになった。

sudo apt-get dist-upgrade
sudo rpi-update

Pyenvとpyenv-virtualenvの使い方(Raspbian)

pyenvとpyenv-virtualenvのインストールの仕方がMacOSとRaspbianとで違かったのでメモ。
MacOSのインストール方法は以前の記事を参照。

takuocean.hatenablog.com

今回参考にしたURL

qiita.com

Raspbianでのインストール

sudo apt-get install git gcc make openssl libssl-dev libbz2-dev libreadline-dev libsqlite3-dev

# pyenvインストール
git clone https://github.com/yyuu/pyenv.git ~/.pyenv

# pyenv-virtualenvのインストール
git clone https://github.com/yyuu/pyenv-virtualenv.git ~/.pyenv/plugins/pyenv-virtualenv

さらに~/.bash_profileを修正。

export PYENV_ROOT="${HOME}/.pyenv"
if [ -d "${PYENV_ROOT}" ]; then
    export PATH=${PYENV_ROOT}/bin:$PATH
    eval "$(pyenv init -)"
    eval "$(pyenv virtualenv-init -)"
fi

あとの作業はMacOSと同様。

Pyenvとpyenv-virtualenvの使い方

使ったのでメモ

最近使ったのでメモした。 今回はディレクトリごとにpythonの設定を変えられるようにした。
参考URL

qiita.com

今回の環境

mac OSX Sierra

pyenvとpyenv-virtualenvって?

pythonのバージョンやインストールするpackageを作るターゲットごとに変えたい時がある。そんな時に使えるのがpyenvとpyenv-virtualenv!

pyenv 

pyenvはpythonのバージョンを管理するツール。
例えば、python 3.4.3と2.7.10をインストールしてディレクトリごとに切り替えたりできる。

pyenv-virtualenv

pyenv-virtualenvはpyenvのプラグインになります。これを導入することでさらにディレクトリ単位でpythonのパージョン とパッケージを管理することができる。 #virtualenvというのも存在しますが、pyenv-virtualenvは違う。

環境の構築

まずはシェルの設定。僕はzshを使っているので、~/.zshrcに記入。 #bashの場合は ~/.bash_profileに記入

# ~/.zshrc

export PYENV_ROOT="${HOME}/.pyenv"
if [ -d "${PYENV_ROOT}" ]; then
    export PATH=${PYENV_ROOT}/bin:$PATH
    eval "$(pyenv init -)"
    eval "$(pyenv virtualenv-init -)"
fi

次にpythonの環境を構築

# pythonのインストール
# VERSIONは例えば3.4.3など
$ pyenv install VERSION

# 環境構築
# NAMEは好きな名前で
$ pyenv virtualenv VERSION NAME

# 環境選択
# NAMEを切り替えることで環境を変えられる
$ pyenv local NAME
(NAME)$ pyenv versions
  system
  VERSION
* NAME (set by /Users/XXXX/work/pyenv_test/.python-version)

# 構築した環境を削除する場合
(NAME)$ pyenv uninstall NAME

パッケージを簡単に引き継ぐ方法

pip freezeを使うことで現環境で利用しているパッケージをリストとして保存ができる。

# インストールしてあるパッケージをリストにするコマンド
$ pip freeze > mypckg.list

# リストにしたパッケージをインストールするコマンド
$ pip install -r mypckg.list

他の環境を立ち上げた後に

(NAME)$ pip install -r mypckg.list

でインストールできる。

Raspbianでapt-get updateをしようとしたらエラーが出た

Raspbianでapt-get updateをしようとしたらエラーが出たのでその時の対処をメモしました。

環境

マシーン:RaspberryPi Zero OS:Raspbian

症状

apt-get updateをしようとしたら以下のようなエラーが出力された。 f:id:takuocean:20170321220645p:plain

だけど、家のネットワーク内部ならsshが繋がる。

-> 名前解決がうまくいっていなさそう

対処

1. /etc/network/interfacesを編集

/etc/network/interfacesはネットワークの設定をするためのファイルです。 このファイルに

dns-nameservers 8.8.8.8

を追記。

2. resolveconfをインストール

sudo apt-get install resolvconf

3. ネットーワークの再起動

sudo /etc/init.d/networking restart

これでうちの環境ではうまくいきました。

#魔法の言葉と思ってた8.8.8.8はGoogleDNSサーバーらしい。
DNS(Domain Name System)とは-インターネット入門ガイド

Kali Linuxのターミナルのショートカット

Kali Linuxは初期設定としてターミナルのショートカットが割り振られていません。
僕は普段Ubuntuを使っていて、Ctrl+Alt+tで慣れているのでその設定にしたいと思います。

  • まずKali Linuxを立ち上げる
    f:id:takuocean:20170227204826j:plain

  • 次に右上のスピーカーマークをクリック
    f:id:takuocean:20170227204952j:plain

  • スパナとドライバがクロスしているマークをクリック
    f:id:takuocean:20170227205041j:plain

  • Keyboardをクリック
    f:id:takuocean:20170227205329j:plain

  • 一番したまでスクロールして+ボタンをクリック
    f:id:takuocean:20170227205400j:plain

  • 好きな設定をする

gnome-terminal:ターミナルを起動するコマンド → つまり、Ctrl+Alt+tでターミナルが起動するという設定

ここはお好みで!

*実際にやってみると
f:id:takuocean:20170227205635j:plain

scriptやscreenコマンドでログに挿入されたラインフィールドやバックスペースを削除する方法

scriptやscreenコマンドを利用した場合、制御コード(ラインフィールドやバックスペースなど)も一緒にログとして残る。
この際、ラインフィールドやバックスペースは以下のように削除することができる。

col -bv < 変換前ファイル > 変換後ファイル