くりーむわーかー

プログラムとか。作ってて ・試しててハマった事など。誰かのお役に立てば幸いかと。 その他、いろいろエトセトラ。。。

centos

Python matplotlibのインストールでグダる

Pythonでグラフ表示したくなったので、matplotlibをインストールしようとしたら

かなりグダったので残しておく。

matplotlibの公式

OSはCentOS7

pip install matplotlib

↑で基本は良いようですが、これだけだとCentOSでは動かない。

GUI系の処理をするのにtcl/tkを使ってるらしく、

それのPython用モジュールが標準だとPython3側にはないっぽ。

なのでPython3用のやつをインストールする。

sudo yum install tcl -y
sudo yum install tcl-devel -y
sudo yum install tk -y
sudo yum install tk-devel -y
sudo yum install tkinter -y
sudo yum install python-matplotlib-tk -y

なんだけど、これでもtkinterが入らない。

探してみると

> yum search tkinter

python3-tkinter.i686 : A GUI toolkit for Python
python3-tkinter.x86_64 : A GUI toolkit for Python
python34-tkinter.x86_64 : A GUI toolkit for Python 3
python35u-tkinter.x86_64 : A GUI toolkit for Python 3
python36-tkinter.x86_64 : A GUI toolkit for Python
python36u-tkinter.x86_64 : A GUI toolkit for Python

なので、

sudo yum install python36u-tkinter -y

でやってみると、下の感じでモジュールが競合してんぞって怒られる。

・・・
file /usr/lib64/python3.6/xml/sax/__pycache__/xmlreader.cpython-36.opt-2.pyc from install of python36-libs-3.6.6-5.el7.x86_64 conflicts with file from package python36u-libs-3.6.7-1.ius.centos7.x86_64
・・・

で、これを解消するには一回Python3をアンインストールする必要があるっぽい。

コワ。

なので

sudo yum remove python36u

sudo yum install python36u
sudo yum install python36u-devel

↑でアンインスト+インストしなおし。

そしたら、↓でOK。

sudo yum install python36u-tkinter -y

長かった。

あと、途中でAggはもう使えないよってエラーが出るので、

matplotlib.use('TkAgg')

を入れてみたり、↓の設定ファイルを書き換えたりする必要がある

vi ~/pyenv/lib/python3.6/site-packages/matplotlib/mpl-data/matplotlibrc

## 'module://my_backend'.
backend      : Tkagg

って事をみたのですが、インストールが上手くいった後だと、

特にやらなくてもちゃんと動いた。なんでしょね。

dockerのインスト centos

端末変えた時くらいしかしないのですぐ忘れる。メモ。

基本は公式のコマンドをなぞってくだけ。

頭を使う必要はない。

Docker 公式

で、root以外で動かしたいときは下が必要。まぁ、これも公式には書いてあるけども。

# なんか昔dockerのグループ出来なかったことがあったので、いちを↓で保険
sudo groupadd docker

# 今ログインしてるユーザにdockerのグループをつける
sudo gpasswd -a $USER docker

そしたら、「端末」を再起動する。

ログアウト⇒ログインでもいいかもだけど、

再起動した方が確実かな。これがハマる。

Wine + CentOS でWindowsのバイナリ(32bit)を動かす

Linux上でWindowsのバイナリを動かしたくなった。64bit用のバイナリなら、Wineをepelあたりからyumで持って来れば使えそう。ただ、32bitのバイナリだと動かせない。「Bad EXE format」ていうエラーがでる。Wineを32bit版でインストールしないとダメらしいんだけど、yumで取れるのは現状64bit版のみ。32bitにするには自分でビルドからやらないといけない様子。

で、色々参考にWine3.xでやってみたんだけど、ちょっとはまったので記載。

とりあえずビルド。あー作業はrootでやった。CentOS7。

・既存が入ってる場合は削除
yum erase wine wine-*

・ビルドツールをインストール
yum install samba-winbind-clients -y
yum groupinstall 'Development Tools' -y
yum install libjpeg-turbo-devel libtiff-devel freetype-devel -y
yum install glibc-devel.{i686,x86_64} libgcc.{i686,x86_64} libX11-devel.{i686,x86_64} freetype-devel.{i686,x86_64} gnutls-devel.{i686,x86_64} libxml2-devel.{i686,x86_64} libjpeg-turbo-devel.{i686,x86_64} libpng-devel.{i686,x86_64} libXrender-devel.{i686,x86_64} alsa-lib-devel.{i686,x86_64} -y

#1 自分の環境では↓も入れないとダメでした。
yum install flex bison -y

#2 32bitをビルドする場合は↓も必要だった。
yum install glibc-devel libstdc++-devel icoutils openal-soft-devel prelink gstreamer-plugins-base-devel gstreamer-devel ImageMagick-devel fontpackages-devel libv4l-devel gsm-devel giflib-devel libXxf86dga-devel mesa-libOSMesa-devel isdn4k-utils-devel libgphoto2-devel fontforge libusb-devel lcms2-devel audiofile-devel
yum install glibc-devel.i686 dbus-devel.i686 freetype-devel.i686 pulseaudio-libs-devel.i686 libX11-devel.i686 mesa-libGLU-devel.i686 libICE-devel.i686 libXext-devel.i686 libXcursor-devel.i686 libXi-devel.i686 libXxf86vm-devel.i686 libXrender-devel.i686 libXinerama-devel.i686 libXcomposite-devel.i686 libXrandr-devel.i686 mesa-libGL-devel.i686 mesa-libOSMesa-devel.i686 libxml2-devel.i686 libxslt-devel.i686 zlib-devel.i686 gnutls-devel.i686 ncurses-devel.i686 sane-backends-devel.i686 libv4l-devel.i686 libgphoto2-devel.i686 libexif-devel.i686 lcms2-devel.i686 gettext-devel.i686 isdn4k-utils-devel.i686 cups-devel.i686 fontconfig-devel.i686 gsm-devel.i686 libjpeg-turbo-devel.i686 pkgconfig.i686 libtiff-devel.i686 unixODBC.i686 openldap-devel.i686 alsa-lib-devel.i686 audiofile-devel.i686 freeglut-devel.i686 giflib-devel.i686 gstreamer-devel.i686 gstreamer-plugins-base-devel.i686 libXmu-devel.i686 libXxf86dga-devel.i686 libieee1284-devel.i686 libpng-devel.i686 librsvg2-devel.i686 libstdc++-devel.i686 libusb-devel.i686 unixODBC-devel.i686 qt-devel.i686

・ソースを取得
cd /usr/src
wget http://dl.winehq.org/wine/source/3.x/wine-3.13.tar.xz
tar Jxfv wine-3.13.tar.xz

・ビルド
cd wine-3.13
mkdir -p wine32 wine64

cd wine64
../configure --enable-win64 --without-freetype
make -j 2

cd ../wine32
PKG_CONFIG_PATH=/usr/lib/pkgconfig ../configure --with-wine64=../wine64
make -j 2

make install
cd ../wine64
make install

・確認
which wine
which wine64

#1と#2の対応が自分の環境では必要でした。あとは文字化け対応系。

#epelのインスト
yum install epel-release

#cabextractのインスト
yum --enablerepo=epel install cabextract

#実行ファイルの取得
wget https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks

#実行権限の変更
chmod +x winetricks

#/usr/local/binへコピー
cp ./winetricks /usr/local/bin

#確認
winetricks --version

#フォントインスト
winetricks allfonts

そしたら、↓の感じで動かしたいEXEを実行する。

wine hogefuga.exe

ビルドは結局1時間くらいかかった気がする。。。

参考
https://blog.huwasaku.info/1656
https://ameblo.jp/kousakusya/entry-12333298836.html
https://www.centos.org/forums/viewtopic.php?t=49542

CentOSでvscode(rootで)

CentOSでvscode使いたかったんだけど、ググるとダウンロードしてインストールするみたいな感じらし。

天下のマイクロソフトさんがそんなカッコ悪い方法にしてるはずないと思って公式見たら↓のコピペでいけましたね。

sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc

sudo sh -c 'echo -e "[code]\nname=Visual Studio Code\nbaseurl=https://packages.microsoft.com/yumrepos/vscode\nenabled=1\ngpgcheck=1\ngpgkey=https://packages.microsoft.com/keys/microsoft.asc" > /etc/yum.repos.d/vscode.repo'

yum check-update

sudo yum install code

あと、rootで入ってる時にcode使うとrootで使うんじゃねーって怒られる。

どうしても使いたい場合は↓の感じでオプション指定でユーザドキュメントのディレクトリ指定しろってさ。

code --user-data-dir='./hoge'

めんどくさがって、「--user-data-dir='.'」とかやるとカレントに大量にフォルダ作られてえらい目にあったりする。

日本語化する場合は、「Ctrl+Shift+P」→「Configure Dispaly Language」で設定開いたあと、「"locale":"ja" 」にする。再起動すると日本語する場合はこれインストールするみたいなポップアップ上がるのでインストする。

問合せ