Ubuntu 16.04 GNOME ログインループ

後輩のパソコンが不可解なログインループに遭遇したので,そのときの解決方法を記します.

背景

今回の症状は以下の通りである.

  • CUIからログインできてもGUIからログインできない.
  • 某N社のグラフィックカードを搭載していない.
  • 一部のアカウントにはGUIからログインできる(正確には,NFSサーバ上のアカウントにログインできず,パソコン内のアカウントにはログインできる).

 NFSサーバ上のアカウントのみGUIログインできないことがなかなかに不可解で,過去に先輩から研究室のシステムを変えたほうがいいと言われつつも,面倒に感じて何もしなかったツケが回ってきたような気がしました.

この現象を解決するのに苦戦したため,メモを残しておきます. 

❖  とりあえずやってみたこと(失敗したもの)

・ディスプレイマネージャーの再起動

N社のドライバのインストールで苦戦した経験がある者として,最初に疑ったのはディスプレイマネージャーである.
Ubuntu GNOME のディスプレイマネージャーであるgdmを再起動した.
ちなみに,GNOMEではない普通のUbuntuはlightdmがデフォルトになっているはず.

    sudo service gdm restart

 何も解決されず.

・.Xauthority .ICEauthority の削除
参考リンク:
Ubuntuで認証画面を無限ループさせる方法と対処 - 拾い物のコンパス

これらのファイルが破損しているとログインできなくなるようです.
CUIからログインして削除する.

    rm .Xauthority .ICEauthority

これまた,解決されず.

・Unity の初期化
参考リンク:
本の虫: Ubuntu 14.04のUnityの設定をぶっ壊した場合の修復方法

以前,似たようなことがあった際に,上記のリンクのようにUnityを初期化したら直ったと聞いた.
ここでいうUnityはゲームエンジンではなく,Ubuntuのユーザインターフェースである.
以下のように,unity-tweak-tool をインストールして初期化する.

    sudo apt-get install unity-tweak-tool
    unity-tweak-tool --reset-unity

しかし,これでも解決されなかった. 

❖  解決策

参考リンク:
[SOLVED] Login Problem in Ubuntu 16.04

以下のように,ubuntu-desktopとubuntu-sessionを再インストールしたら解決した.

    sudo apt install --reinstall ubuntu-desktop
    sudo apt install --reinstall ubuntu-session

結局,何が原因だったのかわかりませんでしたが,何かファイルが破損していたのかもしれません.

Vim で開いたら改行が " ^M " になっていたときの対処法

Vim で開いたファイルに,本来改行が入るはずの場所が "^M" に置き換わっていた.
これに対して,Vim における文字列の一括置換を用いて解決した.

❖ 背景

サーバにアップロードしたファイルを Vim で編集しようと試みたところ,
改行がすべて " ^M " に置き換わっており,1行のとても長いテキストと化していた.

これでは見ずらく,編集する箇所も見つけにくい.そして何より編集しづらい.

 

❖  Vim による"^M"の一括置換

Vim で文字列 (foo) を別の文字列 (bar) に置換するには,以下を実行する. 

    :%s/foo/bar/g


今回,"^M" を"改行"に置換するため,以下を実行した.

    :%s/^M/\r/g

ここで,"^M"は文字列ではなく,改行コードなので,入力時には,
     「 Ctrl 」+「 v 」+「 m 」
と入力する必要がある.

また,OSによって改行コードが " \r " と " \n " の場合があるので,場合によって使い分ける必要がある.

 

おわりに

今回,Vim で開いたファイルの改行すべきところに " ^M "が表示されていたときの対処法を紹介した.

Vim での一括置換の方法を紹介したが,指定行のみの置換などのより細かいオプションを知りたい者や,そもそも Vim の使い方がわからない者については,検索せよ,さらば与えられん. 

 

LaTeXで複数回タイプセットする手間を省く Latexmk

LaTeX のソースをコンパイルするときに,
LaTeXコンパイル」→「 BibTeXコンパイル」→「 LaTeXコンパイル」→「 LaTeXコンパイル
の手順を毎回行うのは面倒である.
そんなときに役に立つのは "Latexmk" である.

❖ 背景

それはとある学部4年生が卒論を書いていたときの話である. 

4年生「卒論の参考文献が ?? になってしまいます...」
私「もう一回タイプセットしてみ」
4年生「あっ,直りました!」

LaTeX のソースを正しく pdf へ変換するためには複数回タイプセットする必要がある.
この手間を省くために用いられるのが Latexmk である.

 

❖  Latexmk を用いてコンパイル

Latexmk は TeX をインストールしたときにデフォルトで含まれている場合がほとんどなので,導入するために特別な作業を必要としない.

私が英語で原稿を書くときは "pdflatex" を用いてコンパイルを行なっている.
この場合,以下のコマンドでコンパイルする. 

    $ latexmk -pdf foo.tex


日本語の原稿は "platex" を用いてコンパイルを行なっている.

しかし, latexmk には platex を用いるオプションが存在しないため,.latexmkrc に設定を書く必要がある.

全体の設定を変えるのであればホームディレクトリ下 ( ~/.latexmkrc ) に作成すれば良いが,原稿ごとに設定を変更したい場合などは .tex ファイルが存在するディレクトリに作れば良い.

 .latexmkrc は以下のように設定する.

    #!/usr/bin/env perl
    $latex= 'platex %O %S';
    $bibtex= 'pbibtex %O %B';
    $dvipdf= 'dvipdfmx %O %S';
    $pdf_mode= 3;

その後,以下のコマンドでコンパイルする. 

    $ latexmk foo.tex

 
また,コンパイルしたときに生じる副産物は以下のコマンドで削除することができる.

    $ latexmk -c

 

おわりに

LaTeX のソースをコンパイルするときに, latexmk を用いると便利である.

今回は .latexmkrc に記述したものがそれぞれどのような意味を持つのかを省いたが, latexmkrc で検索すれば多くの資料が得られるであろう.
それらの資料を参考にすることで,必要に応じて設定することができるであろう.

 

 

Eclipse で PyDev をインストールしたはずなのに表示されないときの対処法 ( Ubuntu 14.04 )

Eclipse に PyDev を手順通りにインストールしたはずなのに表示されないときの対処法 ( Ubuntu 14.04 ) .
今年研究室に配属された学部 4 年生たちが Python の環境を整えるのに苦労していたので書き記しておきます.

❖ 背景

Eclipse に PyDev (ver 5.1.2) をインストールしたとき,
 「 Window 」→「 Perspective 」→「 Open Perspective 」
からPyDevを開こうとしたが,選択肢の中に PyDev が表示されていなかった.

f:id:mhiraga:20160707224809p:plain

PyDev のホームページをみたところ,原因は Java のバージョンにあったようだ.

PyDev does not appear after install!

Well, the main issue at this time is that PyDev requires Java 8 in order to run. So, if you don't want to support PyDev by going the LiClipse route (which is mostly a PyDev standalone plus some goodies), you may have to go through some loops to make sure that you're actually using Java 8 to run Eclipse/PyDev (as explained below).

Also, keep in mind that PyDev 5.x requires Eclipse 4.5 onwards (for Eclipse 3.8 use PyDev 4.x).

Download - PyDev ( http://www.pydev.org/download.html )

 
❖ Ubuntu14.04 に OpenJDK 8 をインストール

現在使用中の Java のバージョンを確認するためには以下を端末に入力.

    $ java -version

Ubuntu14.04 で OpenJDK 8 をインストールする手順は以下のよう.

    $ sudo add-apt-repository ppa:openjdk-r/ppa
    $ sudo apt-get update
    $ sudo apt-get install openjdk-8-jdk

インストールが終了したら使用するJavaのバージョンを変更する.

    $ sudo update-alternatives --config java

java-8-openjdk に該当する番号を選択すれば良い.

参考URL
http://qiita.com/ytkumasan/items/0a6b9e512e3dd5c08a31 


Eclipse に PyDev が表示された

 Eclipse を再起動させると無事 PyDev が表示された.

f:id:mhiraga:20160707224916p:plain