turtlechanのブログ

無知の私がLinuxをいじりながら書いていくブログ

Manjaro Linuxをインストールする時に躓いたところ

つい先日遊ばせていたデスクトップPCにManjaro Linuxをインストールした。その時にいくつか躓いたところがあったので備忘録として残しておく。

仮想環境ではなく実機にインストールしたためスクリーンショットはない。また、時代遅れの BIOS なので UEFI のことは知らない。

躓いたところ

以下の3つ

  • LIVEのGUIが起動しない
  • インストール後GRUBが起動しない
  • sbin/init does not exist.で起動しない

上から順に書いていく。

LIVEのGUIが起動しない

Manjaro Linuxのインストールメディアを起動するとManjaro Linuxのライブが起動してGUIでインストールする工程だったが、そもそもライブが立ち上がらない。

[ OK ] Started TLP system startup/shutdown.

から全く動かない状態だった。

GUIが動かないので、グラフィックドライバーの問題なのは想像が付く。まさにグラフィックドライバーが原因だった。

インストーラーのGRUBで driver の項目を nonfree にしていたのが問題だった。freeのままなら起動した。私は Radeon のグラボを積んでいるが、ノリで nonfree にしていた。
グラボが NVIDIA の場合は、他のLinux同様 nomodeset を付けないと起動しないでしょう。やり方はカーソルを Boot に持ってきて「E」、コマンドが表示されるので「nomodeset」を追記して「F10」。

インストール後GRUBが起動しない

これはただのチョンボだった模様。デュアルブートでもないのに Boot パーティションGRUB を入れていたみたいだ。ハードディスクに新規インストールするときは MBR に入れないと動く訳がない。

sbin/init does not exist.で起動しない

これが出たときには何言ってんの?って感じでした。私は boot, root, usr, opt, var, home とか細かく切るのが好きなので切っていた。
どうやらArch系は usr パーティションを切ると、この現象が起きるようだ。Arch系の sbin は /usr/bin へのシンボリックリンクになっている(常識?)。なので、sbin/init が実行される前に usr パーティションがマウントされていなければならない。
フックして root がマウントされた後に usr がマウントされるようにすれば良いみたいだが、難しいので素直に usr を切るのをやめた。

usr パーティションを切らなければ問題なく起動することができた。

おわりに

Manjaro Linuxをまたインストールすることはないかもしれないが、同じ失敗をしないように記事した。この記事もManjaroで書いている。使い心地はなかなか良い。Debianしかろくに使ったことがないので pacman とか新鮮で楽しい。

自分用の記事ですが、何かの参考になれば幸いです。

 

Pythonで _tkinter がないと言われる件

pyenv でインストールしたPythontkinter をインポートして実行すると _tkinterないよ的なエラーが出た。他にも最近 Manjaro Linux KDE をインストールしていじっているが、そちらのPythonでも同様だった。

tkinter は matplotlib で使われているので結構大事ですよね。

解決策が分かったので残しておきます。

tkinter があるか確認

一行のコマンドで確認できる。コマンドとエラーを以下に。

python2の場合
~$ python2 -m Tkinter
Traceback (most recent call last):
  File "/usr/lib/python2.7/runpy.py", line 174, in _run_module_as_main
    "__main__", fname, loader, pkg_name)
  File "/usr/lib/python2.7/runpy.py", line 72, in _run_code
    exec code in run_globals
  File "/usr/lib/python2.7/lib-tk/Tkinter.py", line 39, in 
    import _tkinter # If this fails your Python may not be configured for Tk
ImportError: libtk8.6.so: cannot open shared object file: No such file or directory
python3の場合
~$ python3 -m tkinter
Traceback (most recent call last):
  File "/usr/lib/python3.7/runpy.py", line 183, in _run_module_as_main
    mod_name, mod_spec, code = _get_module_details(mod_name, _Error)
  File "/usr/lib/python3.7/runpy.py", line 142, in _get_module_details
    return _get_module_details(pkg_main_name, error)
  File "/usr/lib/python3.7/runpy.py", line 109, in _get_module_details
    __import__(pkg_name)
  File "/usr/lib/python3.7/tkinter/__init__.py", line 36, in 
    import _tkinter # If this fails your Python may not be configured for Tk
ImportError: libtk8.6.so: cannot open shared object file: No such file or directory

上記のようなコメントが出たら _tkinter がない。

以下のようなウィンドウが表示されれば _tkinter ある。

tkinterのウィンドウ

tkinter がなかった場合

ここからは tkinter がなかった場合にする作業です。

TK をインストールする

使っているディストーションに合わせて実行してください。

Debian
~$ sudo apt-get install tk-dev
RedHat
~$ sudo yum install tk-devel
Arch系
~$ sudo pacman -S tk

パッケージ名が若干違う。

pyenv 経由のPythonでなければ、この時点で使えるようになっているはず。

Pythonの再インストール

pyenv でPythonをインストールしている場合はPythonを再インストールする必要があった。
Manjaro Linux に元から入っているPythonの場合は必要なかったのでコンパイルの関係だろうか。

pip で色々とライブラリをインストールしていると、あとから戻すのが大変なので書き出しておきます。

~$ pip freeze > piplist2.txt
~$ pip3 freeze > piplist3.txt

pyenv の Python アンインストール

~$ pyenv uninstall <pythonのバージョン>

pyenv の Python インストール

~$ pyenv install <pythonのバージョン>

pyenv に Python を指定しておく。

~$ pyenv global <python2のバージョン> <python3のバージョン>

先程書き出したもの(piplist.txt)を読み込んで、ライブラリをインストールします。

~$ pip install --requirement ./piplist2.txt
~$ pip3 install --requirement ./piplist3.txt

最後に確認

多分問題なくTKのウィンドウが表示されるはずです。が、確認。

python2の場合
~$ python2 -m Tkinter
python3の場合
~$ python3 -m tkinter

ウィンドウが表示されればオッケーです。

おわりに

Linux の系統によってパッケージ名が若干違って混乱するので、整理するために書きました。
何かの参考になれば幸いです。

【Linux】今更ながらEvernote for Windowsをインストールしてみた

LinuxEvernote for Windows をインストールしたので書き残しておきます。動作報告的な。

はじめに

wineを使用してインストールしました。wine は Linux上でWindowsのソフトウェアを動かすためのWindowsエミュレータです。wineのインストール方法は調べればたくさん出て来るので割愛。

インストールすることにした理由

Web版の使い心地はとてもいいので必要ないと思っていました。が、テキストの暗号化機能が WindowsMac のソフトウェア上からしか使えないのです。大きな問題ではなかったんですが、そのまま表示されるのはちょっと落ち着かない。ということで今回LinuxEvernote for Windows をインストールすることにしました。

wine のバージョンは「wine-1.8.7」で行っています。

インストール

今回インストールした Evernote のバージョンは「5.5.3.4236」です。古いですが最新版は動く気がしなかった(試してないけど)。ちょうどWindows XPのサポートが終了したあたりのバージョンだと思います。

WineHQ というサイトに動作状況があるので参考になるでしょう。
URL: https://appdb.winehq.org/objectManager.php?sClass=application&iId=2566

 

私が Evernote 5.3.4236 をダウンロードしたサイトのURLを書いておきます。
Evernote 5.5.3.4236
URL: https://filehippo.com/jp/download_evernote/changelog/58304/
「このバージョンを ダウンロードする」をクリックすれば素直にダウンロードされました。

 

Evernote_5.5.3.4236.exe」というファイル名で保存されているはずなので、そのファイルのディレクトリに移動して

~$ wine ./Evernote_5.5.3.4236.exe

と入力すれば何も問題なくインストールが完了して起動しました。winecfg の Windowsのバージョンは「Windos XP」に設定してあった。

起動した画面を以下に載せておきます。

Evernoteのログイン画面

古いバージョンですが、現在でも問題なくログインできました。

Evernoteのウィンドウ

おわりに

すべての動作を確認したわけではないので、普段使うなら素直にWeb版を使った方が良いでしょうね。テキストの暗号化は問題なく使用できたので、同じようなことで悩んでいる方がいたら試してみるといいかもしれません。