Packages to install to run MITK-2015.05.2 on Ubuntu 14.04

MITK-2015.05.2 depends on Qt5, which makes users to install some additional packages.
With trials and errors, below is what you need to do to run MITK-2015.05.2 on Ubuntu 14.04.

  1. build-essential
  2. You need this to run Qt5

    $ sudo apt-get install build-essential
    
  3. Core of Qt5
  4. $ sudo apt-get install qt5-default qttools5-dev-tools
    

    With this command bunch of software packages will be installed on your system.

  5. Two more libraries…
  6. You need two more libraries to run MITK-2015.05.2

    sudo apt-get install libqt5webkit5 libqt5svg5
    
  7. Set environment variable
  8. As the official site points out, you need to set envirament variable as below (when you use bash). I put this in ~/.bashrc

    export QT_PLUGIN_PATH=/usr/lib/x86_64-linux-gnu/qt5/plugins 
    

Now it works!

Thinkpad X250, X201s, T430s上のUbuntu 14.04に対して、lm-sensorsとthinkfanを用いて熱対策を行う方法

しばらく前から気になっていたのですが、Thinkpad X201sやThinkpad X250にUbuntu 14.04を入れると、妙に熱くなる時がありました。
lm-sensorsをインストールして、温度を見たところ、CPUの温度が77℃に達していました!これは大変と思いました。
調べたところ、”Thinkpad overheating with Ubuntu”といった感じの記事がいろいろ見つかりました。
それらを見てみると、どうもファンの制御がうまくいっていないようです。

そんな中、”Ubuntu 11.10 on ThinkPad X220 でファン制御“という投稿を見つけました。

続きを読む

Linuxでターミナルから日本語名のディレクトリだけを削除したい時の簡単なコマンド

Linuxを使っていると、ターミナルから日本語関連のものを削除するときに、わざわざ日本語入力を可能にしてからというのはめんどくさいですよね。

スマートな方法はと考えました。

下記の方法で、アルファベットおよび数字ではじまらないディレクトリを削除できます。間違って削除するのは心配なので、削除する前に確認のメッセージを出すようにしました。

$ rm -ri [!a-zA-Z0-9]*

Linuxにおいては、シェルでは、[]の中の!は「それ以外」を意味します。
今の場合は、「a-z, A-Z, 0-9ではじまるもの以外」ということになるわけですね。

私の場合、これで、不要な日本語ディレクトリをさらっと消せました。

画像ファイル振り分けスクリプト

画像解析を行っている人ならば、一度は画像の振り分け作業に悩まされたことがあると思います。
私ももれなくその一人で、最近、あるプロジェクトにおいて、画像を分けなければならずしばらく放置していました。

しかし、よく考えてみたら、こういう「めんどくさい」けれども「単純な作業」こそ、コンピューターにさせるべき作業なわけです。

そこで、以下のようなスクリプトを考えてみました。コメントで何をしているか説明します。

#!/bin/sh

#filesorter.sh
#sort files according to the sorting list
#Usage: filesorter.sh sorting_list
#You need to prepare a sorting list beforehand.
#It should be like the following.
# img001  HC
# img002  PT
# img003  HC
# img004  PT
# img005  PT

#引数が指定されているかチェック
if [ $# -ne 1 ]; then
	echo "A sorting file should be specified!"
	echo "Usage: $0 sorting_file"
	echo "Sorting file includes ID and Categorized Group"
	echo "example:"
	echo "img001  HC"
	echo "img002  PT"
	echo "img003  HC"
	echo "img004  PT"
	echo "img005  PT"

	exit 1
fi

#ファイルを読み込み、空白行を削除し、1行ずつ$lineにセット
cat $1 | sed '/^$/d' | while read line
do
    #AWKを使って、第1フィールドを変数idにセット
    #第2フィールドを変数categoryにセット
    id=`echo $line | awk '{ print $1 }'`
    category=`echo $line | awk '{ print $2 }'`
	
    #変数categoryの名前に相当するディレクトリがなければ作成
    if [ ! -e $category ]; then
        mkdir $category
    fi

    #変数idを含むファイルを先ほど作成したディレクトリにコピー
    echo "copy $id to $category"
    cp *${id}* $category
done

興味のある方は、こちらからダウンロードしてください。

Ubuntu 14.04でLibreOfficeを4.xから5.xにアップグレードする方法

この記事は、もともとは、Ubuntu 12.04でLibreOfficeを3.xから4.xにアップグレードする方法に記載していたものですが、Ubuntu 14.04においても同様の方法でいけますので、改めて記載します。

Ubuntu 14.04を利用していると、LibreOfiiceは4.xのままです。
しかし、LibreOfficeは5.xにアップグレードされ、互換性なども以前にまして高まっています。
以下の方法で、簡単にLibreOfficeを4.xから5.xにアップグレードできます。

sudo add-apt-repository ppa:libreoffice/ppa
sudo apt-get update
sudo apt-get dist-upgrade

ここでポイントは、apt-get updateの後にapt-get dist-upgradeを行うことです。

apt-get upgradeとapt-get dist-upgradeの違いは、man apt-getに以下の記載があります。

upgrade
upgrade は、現在システムにインストールされている全パッケージの最新バージョンを、/etc/apt/sources.list に列挙した取得元からインストールするのに使用します。現在インストール中のパッケージに新しいバージョンがあれば更新しますが、いかなる時も現在インストール中のパッケージの削除は行いません。対象のパッケージが、他のパッケージのインストール状態を変更せずに更新できない場合は、現在のバージョンのままとなります。最初に update を実行しておき、apt-get にパッケージの新しいバージョンがあることを知らせる必要があります。

dist-upgrade
dist-upgrade は、upgrade の機能に加え、新バージョンのパッケージに対する依存関係の変更を知的に操作します。apt-get は「洗練された」競合解決システムを持ち、必要とあらば比較的重要でないパッケージを犠牲にして、最重要パッケージの更新を試みます。そのため dist-upgradeは、いくつかのパッケージを削除する可能性があります。/etc/apt/sources.list ファイルには、必要なパッケージファイルを検索する場所のリストが含まれています。

upgradeは全く削除されることなく、dist-upgradeは必要あらばファイルを削除する可能性があるわけですね。今回、LibreOfficeの3.xから4.xへのアップグレードには、いくつかのファイルが削除される必要もあるので、dist-upgradeを利用することとなります。

何はともあれ、この3つのコマンドで、LibreOfficeを安定した最新版にアップグレードできます。

UbuntuでXPSファイルをPDFに変換する方法

Windowsでは、PDFに対抗してXPS形式という形式でファイルを出力することができます。
今はMicrosoft OfficeならばPDFに直接書き出すことができますが、それ以外のソフトウェアでは、WindowsではAdobe Acrobatやその他のPDFに出力することができるソフトウェアを使わないと直接PDF出力ができません。その点、XPS形式ならばどんなソフトウェアからも出力することができます。

出張先で、プリンタがなく、アクセスできるWindowsにPDF出力機能がない場合、XPSをとりあえず出力して、
Ubuntu側でXPSをPDFに変えられるのではないだろうか?と思いました。

そうしましたら、見つけました。その名もxpstopdfというコマンドです。
これは、libgxps-utilsというソフトウェアに入っています。

続きを読む

Xubuntu14.04にIBM SPSS 22をインストールし、日本語の文字化けをなくす方法

Linuxで統計をやるならRを使えばいいじゃないと言われそうですが、
同僚がSPSSを多く使う場合、SPSSを動かせた方がいい時もあります。
ただ、インストールしてみたら日本語が文字化けして苦しみました。
ちょっとした工夫でクリアーできたので、ご紹介します。
ちなみに、SPSS_Statistics_22_lin_.binというファイルを使ってインストールしました。

続きを読む

Ubuntuでlessを使って構文をカラー表示する方法

viやgeditなどを使うと、シェルスクリプトなど、様々な構文を自動でカラー表示させることができて便利です。しかし、lessで表示させると白黒でわかりづらくなってしまいます。

そこで、lessでカラー表示する方法がないか調べたところ、様々な方がその情報を発信されていました。

  • とりあえず、解決法
  • 時間がない方は、以下の2つをやってください。

    まず、source-highlightをインストールします。

    $ sudo apt-get install source-highlight
    

    次に、以下の2行をホームディレクトリにある.bashrcに追加します。

    #Source-hilight with less
    export LESSOPEN="| /usr/share/source-highlight/src-hilite-lesspipe.sh %s"
    export LESS='-R'
    

    これを保存し、シェルを新しく起動すると、lessでシェルスクリプトが色付きで表示されるようになります。ちょっと感動です。

    私のサンプルスクリプトは下図のようになります。

    less_color

    ここまでなら、いくつもあるのですが、原典にあたってみたいということと、LESSとLESSOPENの意味を調べてみたので、少し紹介します。

  • 原典
  • この情報の出処は、GNU Source-highlightの解説サイトと考えられます。こちらになります。

    引用しておきます。

    This was suggested by Konstantine Serebriany. The script src-hilite-lesspipe.sh will be installed together with source-highlight. You can use the following environment variables:

    export LESSOPEN=”| /path/to/src-hilite-lesspipe.sh %s”
    export LESS=’ -R ‘

    This way, when you use less to browse a file, if it is a source file handled by source-highlight, it will be automatically highlighted.

  • 変数LESSの意味
  • 次に、LESS=’-R’の意味が何かを調べてみました。いろいろ調べたところ、lessのmanページの解説が一番しっくりきました。以下のように記載されています。

    -R または –RAW-CONTROL-CHARS
    -r と似ているが、可能な場合には画面表示を正しく維持しようとする。 このオプションが有効なのは、入力が通常のテキストの場合である。入力には ANSI の「カラー」エスケープシーケンスが含まれていてもよい。 このシーケンスは

    ESC [ … m

    のような形式で、”…” は “m” 以外の 0 個以上の文字である。画面の状況を保つため、 全ての制御文字と ANSI カラーシーケンスは カーソルを移動させないと仮定している。 less に “m” 以外の文字を ANSIカラーエスケープシーケンスの終了文字として認識させることもできる。そのためには、認識させたい終了文字のリストを 環境変数LESSANSIENDCHARS に設定すればよい。

    ここに「カラー」エスケープシーケンスとありました。
    どうもこれを指定することで、色がきちんと表示されそうです。
    ちなみに、これを指定しないとどうなるかやってみました。
    その結果は、一目瞭然です。

    less_bw

  • LESSOPENの意味
  • 次に、LESSOPENです。なぜ、最初にいきなりパイプが入っていたり、最後に%sがあるのでしょうか。これも、lessのmanページに記載がありました。引用します。

    入力プリプロセッサ
    less のための「入力プリプロセッサ」を定義することができる。 less がファイルを開く前に、入力プリプロセッサで 入力ファイルの内容の表示の仕方を変更することができる。 入力プリプロセッサに渡される。 入力プリプロセッサは、ファイルの内容を 代替ファイルと呼ばれる別ファイルに書き出す 単純な実行可能プログラム (もしくは、シェルスクリプト) である。 代替ファイルの内容がオリジナルファイルの内容の代わりに表示される。 しかし、ユーザーにとってはオリジナルファイルが開かれているかのように見える。less は現在の代替ファイルの名前としてオリジナルファイルの名前を表示する。

    入力プリプロセッサは、ユーザーによって入力される オリジナルファイル名を1 つのコマンドライン引き数として受け付ける。 そして、代替ファイルを生成し終えると、代替ファイル名を標準出力に表示する。 入力プリプロセッサが代替ファイル名を出力しない場合、less は標準としてオリジナルファイルを用いる。 入力プリプロセッサは、標準入力を閲覧する場合には呼び出されない。
    入力プリプロセッサを設定するためには、 入力プリプロセッサを呼び出すコマンドラインを環境変数 LESSOPENに設定する。このコマンドラインには、入力プリプロセッサコマンドが呼び出されるときに、ファイル名に置き換えられる文字列 “%s” を含んでいなければならない。

    ここで%sの意味が明らかになりました。最後の%sは、ファイル名を意味するのですね。

    その後に以下のような記載があります。

    ファイルのデータを代替ファイルに書き出さず、そのまま、less にパイプするような入力プリプロセッサを設定することも可能である。こうすることにより、閲覧する前に圧縮ファイル全体を展開するのが避けられる。このような働きをする入力プリプロセッサは、入力パイプと呼ばれる。 入力パイプは、代替ファイル名を標準出力に表示する代わりに、代替ファイルの内容全てを標準出力に書き出す。入力パイプが標準出力に何も書き出さない場合、代替ファイルは生成されず、less は普通にオリジナルファイルを使う。入力パイプを使う場合は、入力プリプロセッサが入力パイプであることを知らせるために、環境変数 LESSOPEN の最初の文字を、縦棒 (|) に設定する。

    つまり、LESSOPENの最初に指定するパイプ(|)は、入力プリプロセッサが入力パイプであることを明示しているわけですね。

    つまり、私の理解では、上記の2行によって、

    • ファイルをパイプで、src-hilite-lesspipe.shに渡す。%sは渡すファイル名を意味
    • 変数LESSに-Rを指定することによって、色のエスケープシーケンスを設定し、端末上に色が表示されるようにする

    ことを可能にしているわけですね。

掘り下げて勉強した結果、manページに当たることの大切さを再び学びました。

How to install official NVIDIA drivers on Xubuntu 14.04

(I wrote this post originally in Japanese, but this post may be helpful universally, so re-write in English.)

I got a new PC with NVIDIA GeForce GTX 750 Ti in December 2014.

At that time nvidia-current did not support GTX750Ti, so I needed to install drivers from nvidia website. However, some tweaks were needed to get things done, so I drop a note how to install NVIDIA drivers without much pain.

続きを読む

(筑波大関係者専用)Ubuntuで筑波大のVPNサービスに接続する方法

筑波大の学術情報メディアセンターはVPNサービスを運用してくださっています。
非常にわかりやすいマニュアルを提供してくださっていますが、残念ながら、Linuxのマニュアルはまだ提供されていません。

そこで、私の環境(Xubuntu 14.04)でOpenVPNを使ってうまくVPN接続に成功しましたので、備忘録を兼ねて書いておきます。

続きを読む

Ubuntu12.04以降に本家TeX Liveの最新版を簡単にインストールする方法

先日、私のシステムをXubuntu 12.04からXubuntu 14.04にアップグレードしました。
私はLaTeXに関しては、本家のTeX Liveを使っています。インストーラーは十分に使いやすいのですが、怠け者なので、より簡単にできないかと方法を探してみました。

なぜかというと、本家を使う場合、リンクにあるように、少し設定が必要だからです。

そのリンクをひとつずつ確認していたところ、ある方が、Ubuntu用の本家TeX Liveのインストールスクリプトを公開しているということを知りました。最新版にリンクされています。

早速トライしてみたら便利だったので、紹介します。

続きを読む

Linuxにおけるハイフンの意味

ときどき、下記のような表現を見ます。

$ wget -O- http://www.example.com/example.gpg.key | \
  sudo apt-key add -

この -Oのあとについているハイフンや、apt-key addのあとについているハイフンの意味をきちんと理解していませんでした。

改めて、調べたら、いろいろな方が解説してくれていました。

結論からいうと、

Linuxにおけるハイフンは、標準入出力をさす

のですね。

上記の例の場合、wget -O は本当はファイル名を引数にもつはずで、

wget -O file となるはずなんです。

でも、今の場合、-を指定することで、

wget -O- はその内容を、標準出力に表示するんですね。
今の場合は、example.gpg.keyが表示されるわけです。

で、上記の場合、さらにパイプがつながっていて、apt-key add -と続きます。
今回のハイフンは、今度は標準入力になるわけですね。

つまり、example.gpg.keyの内容が標準出力に出力され、
それがパイプで今度は標準入力になって、apt-key addの引数として使われるわけです。

となると、次と同じということですね。

$ wget -O tmpfile http://www.example.com/example.gpg.key
$ sudo apt-key add tmpfile
$ rm tmpfile

ハイフンを上手に使うことで一時ファイルを作ることなくパイプを使うことができるわけです。
スマートですね。

Xubuntu 14.04にNVIDIAの最新ドライバーをインストールする方法(Xubuntuをテキストモードで起動させる方法)

先日、新しいデスクトップマシンが職場に到着しました。
早速、Lin4Neuro-14.04をインストールしたところ、画面解像度が1280×1024までしかでなく、悲しいことに…。

グラフィックボードはNVIDIA GeForce GTX 750 Tiが搭載されています。

Ubuntuのnvidia-currentではまだ未対応であることから、本家のサイトからドライバーをインストールすることとしましたが、ひと手間だったので、その経過をまとめます。

続きを読む

Lin4Neuro based on Xubuntu 14.04LTS was released

I managed to customize Xubuntu 14.04LTS to be Lin4Neuro-14.04.

L4N-trusty-screenshot

For this customization I did the following;

  • .desktop files for neuroimaging analysis packages are stored in .local/share/applications
  • Neuroimaging.directory is stored in .local/share/desktop-directories.
  • Custom icons are stored in ~/.icons

If you look at these files, you will see how you can add your entries to menu.

I keep maintaining Xubuntu 12.04 because I am not certain Connectome mapper works in Xubuntu 14.04. If you want to use Connectome mapper, I recommend to use Lin4Neuro 12.04.

Grubで困った時にまずすること

先日、デュアルブートのマシンでXubuntuのアップデートをした時にGrubがアップデートされ、質問に適当に答えていたら、Grubのエントリーが消えてしまうという事件がありました。

Grubの設定をいろいろするのはめんどくさい、何かいい方法がないかなと探していました。
そうしたら、ありました。めんどくさがりにぴったりなコマンドが。

$ sudo update-grub

これで、システムに入っているOSを探し出し、自動でメニューにエントリーしてくれます。

ということで、Grubで困ったら、焦らず、まずはupdate-grubをタイプしてみてはどうでしょうか。

Making 2-up pdf files using pdfnup included in Tex Live 2014

I needed to make a 2-up pdf out of slide pdfs. That is, original slide pdf is landscape, and I wanted to put 2 slides in one page.

Googling led me “pdfnup”. Since I installed Tex Live 2014 on my machine, pdfnup was already installed.

So, I tried the following

$ pdfnup --orient portrait --nup 1x2 input.pdf

This resulted in error, which said

  pdfnup ERROR: the --orient option is not allowed,
  use --landscape or --no-landscape to specify
  the output page orientation

so I used –no-landscape option

$ pdfnup --no-landscape --nup 1x2 input.pdf

This made input-nup.pdf and that is 2-up pdf!

This tool is so useful for preparing handouts for presentation.

In addition to the above example, the author shows a nice example of how to produce a handout from a file of presentation slides.
For slides made with the standard 4:3 aspect ratio a nice 6-up handout on A4 paper can be made by

$ pdfjam --nup 2x3 --frame true --noautoscale false \
  --delta "0.2cm 0.3cm" --scale 0.95 myslides.pdf \
  --outfile myhandout.pdf

Linuxでfind, sedを使いながら文字列を再利用してファイル名の途中に文字列を挿入する方法

最近、以下のようなことをやる必要がありました。

ファイル名が

201105_ID.jpg
20120608_ID.jpg
20130704_ID.jpg
201409_ID.jpg

となっているファイル(年月が必ずあり、日が時についている)に対して、
年の後にアンダースコアを入れたい、つまり、

2011_05_ID.jpg
2012_0608_ID.jpg
2013_0704_ID.jpg
2014_09_ID.jpg

としたいわけです。

続きを読む

Update of Lin4Neuro (10 Aug 2014)

Lin4Neuro was updated. This time the change was limited to kernel update and security updates.

  • Kernel was updated to 3.13.0-32-generic.
  • All security updates were applied.

I’m working on Xubuntu 14.04, but it seems to have several problems with neuroimaging software packages. So for now I keep updating Lin4Neuro based on Xubuntu 12.04.

You can download the latest Lin4Neuro from here.

Workaround for Remastersys on Xubuntu 14.04

Remastersys is a very useful remastering tool though developing has ceased now.
Many reported that they could make Remastersys work on Ubuntu 14.04, but I encountered an error with Xubuntu 14.04.

I found workaround for this error.

Short answer: Comment out the line 245 of “/usr/bin/remastersys” beginning with [ “grep lightdm /etc/X11/default-display-manager” != “” ]

Below is the long answer.

  • Installation
  • Installation is simple.

    1. Import GPG key
    2. $ wget -O- http://www.remastersys.com/ubuntu/remastersys.gpg.key | sudo apt-key add -
      
    3. Add sources
    4. Add the line to /etc/apt/sources.list

      deb http://www.remastersys.com/ubuntu precise main

      Please note that you don’t have to replace “precise” with “trusty.”

    5. Installation
    6. $ sudo apt-get update; sudo apt-get install remastersys
      
  • Error with “remastersys dist”
  • “sudo remastersys dist” terminated with error. The below is error message;

    $ sudo remastersys dist
    Distribution Mode Selected
    Enabling remastersys-firstboot
    Adding system startup for /etc/init.d/remastersys-firstboot …
    /etc/rc0.d/K20remastersys-firstboot -> ../init.d/remastersys-firstboot
    ……
    /etc/rc5.d/S20remastersys-firstboot -> ../init.d/remastersys-firstboot
    Checking filesystem type of the Working Folder
    /home/remastersys/remastersys is on a ext4 filesystem
    Making sure popularity contest is not installed
    Installing the Ubiquity GTK frontend
    Lightdm not setup properly. You must set your default desktop with lightdm prior to remastering

    I examined the script /usr/bin/remastersys with the keyword “Lightdm.” Then I found the description below in the line 245

    [ “`grep lightdm /etc/X11/default-display-manager`” != “” ] && [ ! -f /etc/lightdm/lightdm.conf ] && [ ! -f /usr/share/xsessions/ubuntu.desktop ] && echo “Lightdm not setup properly. You must set your default desktop with lightdm prior to remastering” && echo “Lightdm not setup properly. You must set your default desktop with lightdm prior to remastering” >> $WORKDIR/remastersys.log && exit 1

    Though this line checks if the file “/etc/lightdm/lightdm.conf” exists, The latest Xubuntu 14.04 doesn’t have that lightdm.conf file in /etc/lightdm.

    So I commented out this line, just adding “#” to the beginning of the line.

    Then I tried sudo remastersys dist again, with success!

    If you want to use Remastersys in Xubuntu 14.04, it’s worth trying it.

Update of Lin4Neuro (12 Jun 2014)

Lin4Neuro was updated. The changes of this version were as follows;

  • Kernel was updated to 3.13.0-29-generic.
  • ITK-SNAP was updated to 3.0.0.
  • MITK was updated to 2014.03.00.
  • MITK Diffusion was updated to 2014.03.
  • All security updates were applied.

Lin4Neuro is still based on Xubuntu 12.04. Now I’m working on Xubuntu 14.04, so hopefully the next version will be based on Xubuntu 14.04.

You can download the latest Lin4Neuro from here.