Quantcast
Channel: クロの思考ノート
Viewing all 226 articles
Browse latest View live

Linuxで使えるグラフ作成ソフトgnuplotの使い方

$
0
0

こんにちは。今回のテーマは『Linuxで使えるグラフ作成ソフトgnuplotの使い方』です。gnuplotはグラフ作成ソフトです。仕事でグラフを作成するときにはエクセルを使う機会が多いと思うのですが、3次元のシミュレーション結果等をプロットするときにはgnuplotの方が便利です。とても機能が多いので全ては紹介しきれませんが今回は「とりあえず使えるようになる」ことを念頭に基本的な使い方をご紹介できればと思います。

尚、gnuplotはWindowsやMac版もありクロスプラットフォームで使えます。今回はLinuxでの使用を念頭においた記事になります。
【関連記事】


【目次】
起動と終了
数式をプロットする
数値データをプロットする
グラフのスタイルを変更する
線やプロットの色を変更する
プロットの線や点のデザインを変更する
軸の名称や範囲を変更する
凡例に名前を表示する
スクリプトファイルで処理する
グラフを図として保存する

起動と終了

まずはgnuplotを起動しましょう。ターミナル上で以下のコマンドを入力してgnuplotを起動しましょう。

$ gnuplot

01
gnuplotを起動するとコマンド待ちのプロンプトが出ます。専用のスクリプトを打ち込んで操作をします。せっかく起動したばかりですが終了させましょう。終了のコマンドを打ちます。

gnuplot> quit
または
gnuplot> exit

数式をプロットする

まずは基本的な使い方です。数式をプロットしてみましょう。

2次元プロット

Y=5xをプロットする場合

gnuplot> 5*x

Y=x^2をプロットする

gnuplot> x**2

Y=sin(x)をプロットする

gnuplot> sin(x)

02

3次元プロット

xyz軸をもつ3次元プロットも出来ます。
z=x^2+y^2をプロットする

gnuplo> splot x**2+y**2

03

リプロット

gnuplotには一度描画したプロットを再描画するコマンドがあります。これはreplotを使います。以下のようにコマンドするだけでplotやsplotを呼ばなくても描画できます。

gnuplot> replot

複数のプロット

一つのグラフに複数のプロットを行う場合はplotコマンドで式やデータをカンマで区切ればOKです。
[実行例]

gnuplot> plot sin(x),5*x+3

数値データをプロットする

グラフを作成するときには数式ではなく、数値データをプロットすることも多いと思います。

データファイルの作成

まずは読み込むデータファイルを作成します。今回は~/Documents上に作成します。

$ cd ~/Documents
$ vim test.dat

test.datを次のように編集します。#の行はコメントを表します。注意点としてはデータはスペースを開けて区切って下さい。タブでもOKですが、CSVファイルのようにカンマで区切っても読み込めません。

# x y z
0 2.7 0
10 10.2 30
20 40.2 60
30 90.2 90
40 160.2 120
50 250.2 150
60 360.2 180
70 490.2 210
80 640.2 240
90 810.2 270

ファイルの読み込み

gnuplo> plot "test.dat"

04
データカラムの選択
先ほどの例では1列目と2列目のデータを使用しました。では、今度は1列目と3列目のデータを使用してプロットしてみます。u コマンドで使うデータ列を指定します。

gnuplot plot "test.dat" u 1:3

3次元プロット

データ列が3つあれば3次元プロットも可能です。ただしplotではなくsplotを使いますので注意が必要です。

gnuplot> splot "test.dat"

05

グラフのスタイルを変更する

ここまでで描画してきたグラフは全てポイントでプロットされていました。今度は線でプロットしてみます。

gnuplot> plot "test.dat" u 1:2 with line

06
線とポイントでプロット
with linespointで点と線に指定します。

gnuplot> plot "test.dat" u 1:2 with linespoint

プロットのタイプは以下のようなものがあります。一例を表示します。

  • line : 線
  • point : ポイント
  • linespoint : 線とポイント
  • dot : 点
  • boxes : 棒グラフ
  • vector : ベクトル

線やプロットの色を変更する

ここまでは線や点の色は赤一色でしたが、線に色を着けて行きましょう。色を変えるにはlinecolorを使います。linecolorは省略形でlcとも書けます。

gnuplot> plot "test.dat" u 1:2 with line linecolor "blue"

07
色の指定は”blue” “red”などの他に”#ff6677″等の16進数コードでも指定可能です。

gnuplot> plot "test.dat" u 1:2 with line linecolor "blue","test.dat" u 1:3 with line linecolor "#ff1493"

プロットの線や点のデザインを変更する

タイプの変更

plotやsplot時にlinetypeやpointtypeでタイプの番号を指定することで変更できます。この出力はターミナルによって異なるので事前に確認をしておいたほうが良いです。testコマンドを実行するとタイプの一覧と番号を確認することができます。
[testコマンドの実行結果]
11

線の太さ

linewidth [数値]でポイントサイズを指定します。

点のサイズ

pointsize [数値]でポイントサイズを指定します。

[設定例]

gnuplot> plot "test.dat" u 1:2 with point linecolor "#4682b4" linetype 5 linewidth 2

軸の名称や範囲を変更する

軸にラベルを付ける

軸にラベルを付けるには[軸の名称]labelを使います。例えばx軸にラベルを付けるときには以下のようにします。

gnuplot> set xlabel "Time [min]"

グラフの軸範囲を指定する

グラフ作成時に軸の範囲を指定したいことはよくあることだと思います。軸の範囲の指定にはrangeコマンドを使います。rangeは設定する軸(x,y,z)と組み合わせて使います。

例えばx軸を20から80に設定する場合は以下のようにします。

gnuplot> set xrange [20:80]

[使用例]

gnuplot> plot "test.dat" u 1:2 with line linecolor "blue","test.dat" u 1:3 with line linecolor "#ff1493"
gnuplot> xrange [20:80]
gnuplot> replot

12
また、xrangeやyrangeはxr,yrと略すことが出来ます。

軸の目盛りを設定する

目盛りの刻みを設定するには[軸の名称]+ticsを使います。例えばx軸の目盛りを2刻みに変更するには以下ようにします。

gnuplot> set xtics 2

副目盛りを設定する

gnuplotは目盛りに副目盛りをつけることが出来ます。設定にはm[設定軸]mticsを使います。この設定は主目盛り何分割するかで設定します。例えば主目盛りを2分割する場合は以下のようにします。

gnuplot> set mxtics 2

副目盛りを削除する

副目盛り削除するにはunsetを使います。例えばx軸の副目盛りを削除するには以下のように設定します。

gnuplot> unset mxtics

凡例に名前を表示する

凡例の表示の設定

凡例の表示

gnuplot> set key

凡例の非表示

gnuplot> unset key

凡例の表示名の設定

凡例にプロットの名前を表示するにはplotやsplotでプロット時にtitleで指定します。
[設定例]

gnuplot> plot "test.dat" u 1:2 with line linecolor "blue" title "sample 1"

これで凡例の部分に”sample 1″が表示されました。

スクリプトファイルで処理する

ここまでは対話式でプロンプトにコマンドを打ち込んで操作してきました。この操作をスクリプトファイルにまとめて記述することが出来ます。これにより設定などをまとめて記述しておき読み込むなどの処理が容易になります。また、プロンプト上では扱えない日本語もスクリプトファイルにしておけば扱うことが出来ます。

エディタでスクリプトファイルを作ります。

$ vim test.plt

以下ように編集します。

set yrange [0:500]
set xrange [0:80]
set xlabel "時間"
set ylabel "温度"
set xtics 10
set mxtics 2
set ytics 100
plot "test.dat" u 1:2 with line linecolor "blue" title "テスト 1"

作成したtest.pltをgnuplotで読み込みます。読み込む時はloadを使います。

gnuplot> load "test.plt"

10

グラフを図として保存する

作成したグラフは使いやすいようにグラフィックファイルに変換して使います。エクスポートするにはset terminalで出力ターミナルを切り替えます。

pngにエクスポートする

pngにエクスポートするときにはOSにインストールされているTTFフォントがそのまま指定できます。日本語をグラフ中で使うときには日本語のフォントを指定しないと文字化けします。
[実行例]

gnuplot> load "test.dat"
gnuplot> set terminal png font "MigMix 2M,14"
gnuplot> set output "sample.png"
gnuplot> replot

epsにエクスポートする

epsにエクスポートする際、日本語を使用している場合は文字化けしないようにフォントを指定する必要があります。英語の場合は必要はありませんが、フォントを指定したい場合は設定出来ます。
[実行例]

gnuplot> load "test.dat"
gnuplot> set terminal eps enhanced color font "GothicBBB-Medium-UniJIS-UTF8-H,14"
gnuplot> set output "sample.eps"
gnuplot> replot

尚、Linuxの場合は設定すべき日本語フォントは/etc/ghostscript/cidfmap.d/90gs-cjk-resource-japan1.confで設定されています。

最後に

基本的な操作のみ簡単に記そうと思ったのですが、案外ボリュームのある記事になってしまいました。gnuplotは理工系の出身者には馴染みのあるソフトだと思いますが、業務データを綺麗にまとめるときにも使いやすいソフトだとお思います。エクセルに慣れきった方もこの機会にgnuplotを使ってみては如何でしょうか?

Sponsored Link



Debian 8 JessieをCUIで起動する方法

$
0
0

こんにちは。今回のテーマは『Debian 8 JessieをCUIで起動する方法』です。システムを起動する度にディスプレイマネージャーが起動するのは最近のシステムでは当然のようになりましたが、CUIモードで起動したい方も結構多いのではないでしょうか?今回はSystemdを導入したことで話題となったDebian 8 Jessieを取り上げます。
【関連記事】
Fedora 21をCUIで起動する方法


【目次】
DebianのSystemdは他のシステムとちょっとちがう
DebianをCUI起動する方法
補足説明

DebianのSystemdは他のシステムとちょっとちがう

Systemctlではサービスを無効化できないものもある

これまでSystemdの導入されているシステムをCUI起動する方法としてはsystemctlでディスプレイマネージャーをdsiableすれば良いとしてきました。しかし、Debian Jessieではそう簡単にはいかないのです。結論から言えばsystemctlではディスプレイマネージャー出来ませんでした。

Systemctlはupdate-rc.dを起動するトリガー

後半で少々詳しく扱いますが、ディスプレイマネージャーに関してはSystemctlはSysVinitのスクリプトであるupdate-rc.dを起動するトリガーとして機能しています。よってSystemdでdisableしてもgdm3.serviceは無効化されません。

DebianをCUI起動する方法

さて、またしても前置きが長くなりましたが、ここからが本題です。Systemd-sysvの導入によってinittabファイルでrunlevelが設定できなくなったわけなので、起動時のディスプレイマネージャーの起動を止めることでCUI起動に切り替えます。以下の方法1もしくは方法2のどちらかを行えば良いと思います。個人的には方法1がオススメです。

方法1:default-display-managerを編集する(推奨)

vimやnano等のエディタで/etc/X11/default-display-managerを開きます。sudoコマンドについてはDebianやFedoraでsudoコマンドを使う

$ sudo vim /etc/X11/default-display-manager

お使いのディスプレイマネージャー(gdm3,kdm,lightdm等)が記載されていると思いますので、以下のようにコメントアウトします。
編集例

# /usr/sbin/gdm3

方法2:gdm.serviceを無効化する

※方法1を行っていれば以下の操作は不要です。
前述の通りsystemctlからはgdm3のサービスは変更できません。よって、systemdが呼び出しているgdm.serviceを直接無効化します。誤って削除しないようにご注意下さい。元に戻したい場合はファイル名を戻せばOKです。

$ cd /lib/systemd/system/
$ sudo mv gdm.service gdm.service.back

再起動するとCUI起動に変わっているはずです。
01

補足説明

本題と外れるので興味ある方のみどうぞ
通常のSystemdがinitシステムの場合systemctlでenableすると/usr/lib/systemd/以下の.serviceファイルを/etc/systemd/以下の各ディレクトリにリンクを貼ることで有効にします。もちろん、Debian 8でもこのように管理されているサービスもあります。しかしディスプレイマネージャー等多くのサービスについてはSytemctlはかつてのSysVinit方式でupdate-rc.dのトリガーとして機能しています。

Systemctlは何をしているのか?

試しにsytemctlを使ってgdm3をenableにしてみます。

$ sudo systemctl enable gdm3

そして以下のコマンドで/etc/rc2.dのgdm3のリンクを見てみます。

$ ls -l /etc/rc2.d/ | grep gdm3

04

今度は反対にsystemctlでdisableして同様にリンクを見てみます。

$ sudo systemctl disable gdm3
$ ls -l /etc/rc2.d/ | grep gdm3

03

頭文字がSからKに変わりました。ご存知の方も多いとは思いますが先頭が”S”で始まる物が起動(Start)、”K”で始まる物が停止(Kill)となります。結局のところSystemctlは/usr/sbin/update-rc.dというPerlで書かれたスクリプトを実行していたのです。

このupdate-rc.dは/etc/init.d/以下のスクリプトを/etc/rc[0-6].d/以下にリンクを生成したり削除する役割をします。まさにSysVinitですね。Debian 8で導入されたSystemdはSysVinitを包括する形でSystemdのように使えるinitシステムと捉えた方が良いかも知れません。(間違ってたらごめんなさい。)

さて、Systemctlがupdate-rc.dを操作することはわかったのですが、このSysVinit方式の管理はディスプレイマネージャーの起動・停止には有効なのでしょうか?試しに以下コマンドを実行して/etc/rc[0-6].d/からgdm3のリンクを削除してみましたが、やはりGDMは起動しました。

$ sudo update-rc.d gdm3 remove

なぜGDMは起動するのか?

なぜ、/etc/rc[0-6].dからリンクを削除してもgdmは起動したのでしょうか?実はgdm3およびgdmのサービスは/lib/systemd/systemに存在し、そこから呼び出されています。このサービスはsystemctlでは操作されないようです。

最後に

CUI起動に切り替えようと思った時にはSystemctlで簡単に設定出来ると思っていたのですが、意外に手こずってしまいました。DebianはSysVinitを包括する形でSystemdへ移行したのだなあと開発陣の苦労を垣間見た気がしました。

Sponsored Link


UbuntuにJavaFX開発環境を構築する

$
0
0

こんにちは。今回のテーマは『UbuntuにJavaFX開発環境を構築する』です。Java 8から標準GUIとして位置づけられたJavaFXは現代的なGUI開発を可能としており、SwingからJavaFXへ切り替えようとしている方も多いのではないでしょうか?今回はUbuntuにJavaFX環境の構築方法をお伝えできればと記事にしました。
【関連記事】
Ubuntu 14.04にOpen JDK 8を導入する


【目次】
Ubuntuのバージョンにご注意を
OpenJDK 8のインストールと設定
openjfxを導入する
JavaFXの動作を確認する

Ubuntuのバージョンにご注意を

Oracle JDK 8の場合はJavaFXを同梱していますので、JDK導入と同時にJavaFXが使える環境が整うのですが、OpenJDK 8にはJavaFXが含まれていないので別途導入する必要があります。

ここで問題になるのが、Ubuntuのバージョンです。残念ながら公式リポジトリでは14.10(Utopic)からのサポートとなっています。また“PPA for OpenJDK uploads (restricted)” teamでも14.04(Trusty)向けのパッケージはビルド失敗している状態(2015年7月現在)で提供されていません。Ubuntu 14.04LTSユーザーの方の現実的な解決方法は残念ながらOracle Java 8の導入ということになると思います。(ご自身でopenjfxをビルド出来る方は除きます)

本記事の内容はUbuntu 14.10以降のバージョンが対象となりますので、ご注意下さい。

OpenJDK 8のインストールと設定

インストール

OpenJDKでJavaFXを使用する場合バージョン8以降でないと、コンパイルおよび実行が出来ません。以下のコマンドでインストールしておきましょう。

$ sudo apt-get install openjdk-8-jdk

設定

javaコマンドとjavacコマンドにopenjdk8を用いるように設定します。

$ sudo update-alternatives --config java
(番号を選択)
$ sudo update-alternatives --config javac
(番号を選択)

openjfxを導入する

以下コマンドでopenjfxを導入するだけです。

$ sudo apt-get install openjfx

JavaFXの動作を確認する

ここまでで準備は完了です。JavaFXが導入され、コンパイル・実行可能か試してみましょう。

ソースの準備

打ち込んだ文字を返すだけの簡単なコードを用意しました。以下のコードを打ち込んだファイルTestApp.javaを用意します。

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.TextField;
import javafx.scene.layout.BorderPane;
import javafx.stage.Stage;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
 
public class TestApp extends Application {
    Label label;
    Button button;
    TextField textField;
 
    @Override
    public void start(Stage stage) throws Exception {
        label = new Label("入力された文字:");
        textField = new TextField();
        button = new Button("OK");
        //buttonクリック時のアクション
        button.setOnAction(new EventHandler<ActionEvent>() {
            @Override
            public void handle(ActionEvent e) {
                String typed_msg = "入力された文字:" + textField.getText();
                label.setText(typed_msg);
            }
        });

        BorderPane borderPane = new BorderPane();
        borderPane.setTop(textField);
        borderPane.setCenter(label);
        borderPane.setBottom(button);
        Scene scene = new Scene(borderPane, 240, 120);
        stage.setScene(scene);
        stage.setTitle("TestApp");
        stage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
 
}

コンパイル

javac TestApp.java

実行

通常のコンソールアプリやSwingアプリと何も変わりません。以下のように実行します。

$ java TestApp &

実行例
図のようなウィンドウアプリケーションが開くと思います。文字を入力してボタンを押すと内容が反映されます。
01

最後に

今後のJavaでのGUIアプリケーションの開発はAWT/SwingからJavaFXに変わっていく流れだと思います。ただ、ユーザーサイドにはAWT/Swingに比べると浸透していない感じもあり、「一度書けばどこでも動く」状況ではないのが少々引っかかるところですね。Ubuntu14.04LTSもまだ現役のバージョンですから、openjfxパッケージを公式サポートして欲しいと密かに願っています。

Sponsored Link


VirtualBox上のArch Linuxで共有フォルダ機能を使う

$
0
0

こんにちは。今回のテーマは『VirtualBox上のArch Linuxで共有フォルダ機能を使う』です。VirtualBoxの共有フォルダ機能はとても便利ですが、少々設定がとっつきにくい面もあると思います。今回はゲストOSとしてArch Linuxを動かす際のVirtualBoxの共有フォルダ設定をご紹介します。
【関連記事】
VirtualBoxにUEFIでインストールしたらXorgサーバーが起動しない時の対処法


【目次】
VirtualBoxの共有フォルダ機能は非常に便利
VirtualBoxのインストールと有効化
共有フォルダの作成
使い方1:/media/に作られたディレクトリをそのまま使う
使い方2:共有フォルダをマウントして使う

VirtualBoxの共有フォルダ機能は非常に便利

VirtualBoxを使ってゲストOSを起動しているとホスト側とデータを共有できたらと思うことは多々あると思います。VirtualBoxには共有フォルダを備えていてホスト側とデータをやり取りすることができます。ゲスト側で作成したデータや設定ファイルをホスト側に移動する際にはとても便利です。今回はゲストOSにArch Linuxを使用する場合の共有フォルダの作成から設定までを紹介できればと思います。尚、ホストOSはLinuxを想定しております。(Windowsは持っておらず、検証できていません。)

VirtualBoxのインストールと有効化

Guest Additionsをインストール

以下コマンドでゲストOSを最適化するツールをインストールします。

$ sudo pacman -S virtualbox-guest-utils

VirtualBoxゲストサービスを起動

root# systemctl start vboxservice.service

起動時に自動で起動したい場合はサービスをenableに登録します。

root# systemctl enable vboxservice.service

共有フォルダの作成

ここからはホストOS側でVirtualBoxを操作して共有フォルダを作成します。
メニューバーから共有フォルダ作成画面を開きます。
01

共有フォルダを選択肢て「+」ボタンを押します。
02

「その他」を選びホスト側の共有したいディレクトリを選びます。
03

パスとフォルダ名を確認し、お好みのオプションにチェックを入れてOKを押します。
04

共有フォルダを作成するとゲストOSの/media/以下にsf_[フォルダ名]というディレクトリが作成されています。

使い方1:/media/に作られたディレクトリをそのまま使う

まずはArch wikiに紹介されている方法をベースに紹介します。GUIファイルマネージャーを使いたい場合は使い方2:共有フォルダをマウントして使うをご覧ください。

vboxsfグループの作成

※以下の操作は基本的にゲストOSでの操作です。
作成された共有フォルダのディレクトリはvboxsfというグループに属しています。一般ユーザーでもvboxsfのグループに入っていれば扱えるように設定しましょう。

root# groupadd vboxsf
root# gpasswd <ユーザー名> vboxsf
root# chgrp vboxsf /media/

これで一般ユーザーの補助グループにvboxsfが追加されました。ここまでの操作で/media/以下の共有フォルダへのパーミッションが与えられたと誤解されがちですが、まだrootしか共有フォルダは扱えません。newgrpでvboxsfグループにログインしましょう。

$ newgrp vboxsf

これで先ほど登録した一般ユーザーで共有フォルダを扱えるようになります。試しに移動して中を見れるか試してみましょう。vboxsfにログインしたユーザーで以下のコマンドを実行してみ下さい。もし権限の付与に失敗している場合は以下の操作はできないはずです。

$ cd /media/sf_share
$ ls -l

初期状態ではグループユーザーにはrwxの権限が与えられている筈です。共有フォルダとしては問題なく使えると思います。

ホームディレクトリにリンクを貼っておくと便利に使えます。ただし、今回の設定ではvboxsfグループに切り替えてからしか使用できません。リンクをホームディレクトリに作成するにはvboxsfに切り替えた状態で以下のようなコマンドを実行します。ディレクトリ名などはお使いの環境に合わせて下さい。

$ ln -sv /media/sf_[共有フォルダ名]/ ~/share

使い方2:共有フォルダをマウントして使う

※以下の操作は基本的にゲストOSでの操作です。
上記の使い方はそれなりに便利なのですが、少々問題もあります。それはThunarやNautilas等のファイルマネージャーで開けないことです。ファイルマネージャーで開けるようにするためにはマウントする必要があります。root権限で以下のようなコマンドを打ちます。

root# mkdir -pv /mnt/share
root# mount -t vboxsf [共有フォルダ名] /mnt/share

ここでの[共有フォルダ名]は/media/sf_[共有フォルダ名]の[]内部の名称です。sf_は不要ですので気をつけて下さい。これで/mnt/shareに共有フォルダがマウントされましたのでファイルマネージャーで開けるようになります。root権限でしか書き込みはできませんが、gksu等を使えばGUIでもroot権限で操作出来ると思います。また、sudoを使えば毎回rootにならずともデータの書き込みが可能です。

最後に

今回も長くなってしまいました。できるだけ過不足なくわかりやすくお伝えできればと思ってい居るのですが、修行が足りないようです。Arch LinuxはゲストOSとして入れておいても使いやすいディストロだと思います。共有フォルダを活用して快適なLinuxライフをどうぞ。

Sponsored Link


Zorin OS 10をインストールする

$
0
0

こんにちは。今回のテーマは『Zorin OS 10をインストールする』です。2015年8月1日Zorin OS 10がリリースされました。リリース情報は公式BLOGをご覧ください。現在、無料で使用できるのはCORE,LITEです。リリースから少々遅れてしまいましたが、Zorin OS 10のインストール方法をご紹介します。

関連記事:
Zorin OS 9にFcitxやuimを導入してmozcを使う
ZorinOS 9でBrother製プリンターを使う


【目次】
Zorin OS 10はUbuntu15.04ベース
要求スペック
LIVE DVDを入手
Zorin OS 10のインストール

Zorin OS 10はUbuntu15.04ベース

Zorin OS 10はUbuntu 15.04をベースとして作られています。インストーラーはUbuntuと同様に非常に簡単にインストール出来るようになっています。日本語環境はZorin OS 9と同様にインストール直後から特別な設定なく表示・入力ともに問題なく使用できるレベルになっています。日本語を選んでインストールした時には日本語入力がibus-anthyとなっています。 

要求スペック

公式ページに記載されている要求スペックはZorinOS 9から変わっていません。以下のとおりです。また、64bit版はUEFIシステムにも対応しています。
Zorin Desktop based versions

CPU:1 GHz x86 processor
HDD容量:5 GB
RAM:512 MB of system memory (RAM)
VGA:640×480 解像度

LXDE based versions (Lite)

CPU:266 MHz x86 processor
HDD容量2GB
RAM:128 MB
VGA:640×480 解像度

LIVE DVDを入手

Zorin OS 10 ダウンロードページにアクセスしてLive DVDをダウンロードしましょう。
今回はzorin-os-10-core-32.isoをダウンロードしました。お手持ちのDVDライティングソフトでDVD化してください。

Zorin OS 10のインストール

Live DVDの起動

まず、LiveDVDを起動します。図のような画面が出ます。
01
F2を押して言語を日本語に変更します。
02
nVidia製のグラフィックボードを使っている方はnomodesetにチェックを入れないと起動しない場合があります。F6を押してnomodesetにチェックを入れましょう。
03
“Install Zorin OS”を選択し、インストーラーを起動します。

インストール

Live DVDのインストーラーが起動すると図のような画面が出ます。基本的にはこの後は指示にしたがって進めるだけで簡単にインストールできます。
04

自動でインストール環境がチェックされます。問題なければ「続ける」を押します。
05

パーティショニングを設定しましょう。今回は「ディスクを削除してZorinをインストール」を選択肢ました。この場合パーティショニングは自動で行われます。もし手動で設定する場合は「それ以外」を選んで設定してください。パーティションの設定はLinuxインストール時のパーティションの区切り方を参考にしてください。設定が完了したら「インストール」を押します。
06

場所を設定します。特に理由がなければデフォルトのTOKYOで良いと思います。
08

キーボードレイアウトを選択します。日本語を選択しましょう。
09

ユーザー名とパスワードの設定をします。
10

「続ける」を押せばファイルがコピーされインストールが始まります。インストール終了までしばらくお待ちください。
11

再起動・ログイン

インストールが終わったらDVDを取り出して再起動します。
12

ログイン画面にパスワードを入力しログインします。
13

これでZorin OS 10が起動しました。メニュー表示のインストール直後から日本語表示されています。
14

最後に

インストール作業はここまでですが、最後に日本語入力について触れておきます。Zorin OS 9以降インストール直後から日本語入力が可能となっています。Zorin OS 10では標準の日本語入力はibus-anthyとなっています。入力ソースの切り替えは「スーパーキー(windowsキー)」+「スペースキー」で切り替え可能です。もちろん、UbuntuベースですのでUbuntuと同様の方法でFcitxやUimも導入可能です。
15

Sponsored Link


VirtualBox上のゲストOSにSSHで接続する

$
0
0

こんにちは。今回のテーマは『VirtualBox上のLinuxにSSHで接続する』です。VirtualBoxにはクリップボードの共有化などのホストOSとゲストOSをつなぐ便利な機能がいろいろありますが、ssh接続でホストOSからゲストOSを操作してしまうというのも場合に酔っては操作性を向上させる一つの手段だと思います。今回はホストOS、ゲストOSともにLinuxという想定で書いていますが、内容自体はOSに関わらず応用が効くと思います。
【関連記事】
VirtualBox上のArch Linuxで共有フォルダ機能を使う


【目次】
ゲストOSにssh接続できると便利
ポートフォワーディングを活用する方法
ブリッジアダプタを使用する方法

ゲストOSにssh接続できると便利

本記事を呼んでる読者の方に説明は不要と思いますが、sshとは暗号や認証を用いてリモートコンピュータと通信するプロトコルです。簡単に言えば他のコンピュータを遠隔操作する技術と言えます。

VirtualBox上のゲストOSにssh接続して作業したいという機会は結構あると思います。ゲストOSがCUI環境でウェブブラウザが使用できない時などウェブ上の情報をコピー&ペーストすることは少々難しいですが、ホストOSからssh接続で操作すれば操作感はホストOSのままゲストOSを操作することができます。

ポートフォワーディングを活用する方法

ポートフォワーディングを設定するとポートを通してホストOSとゲストOSをつなぐことで簡単にssh接続できます。

VirtualBoxでの設定

ネットワーク画面でNATを選択肢して「高度」設定画面から「ポートフォワーディング」を押します。
01

次にポートフォワーディングを設定します。この時設定するポートはホスト側は使用していないポート番号(本記事では2222)を指定します。ホスト側のポート情報はホストOS上で以下のコマンドで調べられます。

$ netstat

ゲストOSを側では/etc/ssh/sshd_configに指定されているポート(デフォルトでは大抵22)を設定します。
[設定例]
02

ホスト側からの接続操作

準備は整いました。接続する際にはホストOS側で以下のコマンドでssh接続しましょう。

$ ssh -p <ホストポート番号> <ログインユーザー>@localhost

実行例

$ ssh -p 2222 root@localhost

初回は確認画面が出るので、”yes”を押し、その後にログインパスワードを入力してゲストOSに入ります。

ブリッジアダプタを使用する方法

ブリッジアダプタを使用することにより、ゲストOSにもホストOSと同様に既存の物理ネットワーク上に参加させることができます。これによりIPを指定することでLAN内部のコンピューターに接続するようにssh接続が可能になります。

VirtualBoxでの設定

ネットワーク設定画面でブリッジアダプターを選択肢ます。
03

ゲストOSのIPアドレスの確認

ゲストOS側でifconfigでIPアドレスを確認しましょう。

$ ifconfig

ホスト側からの接続操作

ではホストOSからssh接続してみましょう。以下のようなコマンドを実行します。

$ ssh <ログインユーザー>@<ゲストOSのIP>

実行例

$ ssh root@192.***.***.**

初回は確認画面が出るので、”yes”を押し、その後にログインパスワードを入力してゲストOSに入ります。

最後に

記事を書くにあたりネット上の情報も収集しましたが、NAT+ホストオンリーアダプターを併用する方法を解説しているページをよく見かけました。手法には好みがあると思いますので、興味がある方は本記事だけでなく色々調べてみると面白いと思います。因みに筆者はゲストOSLFS環境を構築する際にssh接続することで作業がとても捗りました。

Sponsored Link


WordPressをダウングレードする方法

$
0
0

こんにちは。今回のテーマは『WordPressをダウングレードする方法』です。WordPressは簡単にアップグレード可能ですが、アップグレードには意外な罠が潜んでいることもあります。目を瞑れる程度の不具合ならば次回のアップデートで改善されるのを待つのも手ですが、とても不便な場合はダウングレードを行う必要があります。
【関連記事】
WordPressを新環境へ「まるごと」移転する方法
Linuxローカル環境にWordPressを導入する方法


【目次】
WordPressのアップグレードは慎重に
ダウングレードも簡単にできる
準備
WordPressをダウングレードする

WordPressのアップグレードは慎重に

現在のWordPressではアップグレード作業はボタンを押すだけで簡単に出来るようになっています。しかし、安易なアップグレードはトラブルを招きかねません。特にメジャーアップデートでは慎重さが必要です。マイナーアップデートが出てから周囲の情報を収集するぐらいで良いのではないでしょうか?

筆者も迂闊にもVer4.3にアップグレードしてしまい「メディアを追加」ボタンが一切使えなくなるというトラブルに見まわれ、結局ダウングレードで対応しました。

ダウングレードも簡単にできる

アップグレードほど簡単ではありませんが、要所を押さえればダウングレードも比較的簡単にできます。基本的な作業としてはFTP転送で旧バージョンのWordPressをアップロードするだけです。

とても簡単な操作ですが、ファイルを誤って削除したり上書きしてしまうとサイトそのものが消滅する可能性もあります。くれぐれもバックアップはお忘れなく。

準備

予め準備するもの

以下のモノを用意しましょう。FTPソフトに関してはサーバー側で用意されているサービスを利用してもOKです。

  • FTPソフト
  • ログイン情報(サーバー名、パスなど)

旧バージョンのWordPressの準備

https://ja.wordpress.org/releases/#olderにアクセスして旧バージョンのWordPressをダウンロードしましょう。今回は例としてwordpress-4.2.4-ja.tar.gzをダウンロードします。

Windowsの方はzipファイルの方が取り扱い易いかも知れません。ダウンロードしたファイルを展開します。Linuxユーザーの方は以下のコマンドで展開します。

$ tar -zxvf wordpress-4.2.4-ja.tar.gz

展開されたディレクトリの中のwp-contentを削除します。
01

バックアップ作業

ダウングレード作業には必ずしも必須ではないですが、操作を誤ってこれまで苦労して築いてきたデータを失わないためにもバックアップ作業を強くオススメします。

サーバー側のwp-contentにはプラグインやテーマ、メディアなどが入っています。FTP転送でローカル側にバックアップしておきましょう。また、最悪の事態も考慮しデータベースのエクスポートもしておくと安心だと思います。こちらの記事を参考にしていただければと思います。

WordPressをダウングレードする

現在のWordPressの削除

FTPソフトを用いて以下のファイルとディレクトリを残し、他は全て削除します。

  • .htaccess
  • wp-config.php
  • wp-content
  • その他ホームディレクトリに自作したファイルやディレクトリ

WordPressを普通に使っていればルートディレクトリには.htaccess,wo-config.php,wp-content以外は不要の筈です。しかし敢えて他のディレクトリやファイルを作成している場合は削除しないようにご注意下さい。(画像はルートディレクトリ)
02

旧WordPressのアップロード

予め準備済みの旧WordPressをルートディレクトリにアップロードします。この時、旧WordPress側でwp-config.phpとwp-contentが削除されているか再度確認下さい。誤ってサーバー側を上書きしないためです。

FTPソフトを使ってルートディレクトリにアップロードします。(画像はアップロード後)
03

ログイン・データベースの更新

Webブラウザでログイン画面に入ります。以下のようにデータベースを更新するように求められるのでボタンを押して更新します。
04

最後に

アップグレードをする場合にはローカル環境で試してみから本番環境で使用するという慎重さが必要かも知れません。もちろん、ローカル環境で問題なく動いたからといって本番環境で不具合がないという保証はありませんが、致命的な問題は回避できそうです。また、アップグレードで詰まったらダウングレードによる解決もあると分かっていれば慌てることもなくなると思います。よいWordPressライフをどうぞ。

Sponsored Link


Ubuntu 15.04でBrother製スキャナーを使う

$
0
0

こんにちは。今回のテーマは『Ubuntu 15.04でBrother製スキャナーを使う』です。今やプリンターとスキャナはセットでパソコン周辺機器の必需品となりました。最近では多くのメーカーがLinux対応の機種を販売しています。また、ネットワーク接続可能なモデルも増えてきてより簡単に接続可能になっています。今回はBrother製の複合機のスキャナをUbuntu 15.04で使えるようにしてみます。
【関連記事】
LinuxでBrother製プリンターを使う


【目次】
Linuxでも手軽にスキャナーを使う
スキャナドライバのインストール
スキャナの設定
動作確認

Linuxでも手軽にスキャナーを使う

家庭向けにもプリンター複合機が普及している時代となり、わざわざスキャナを購入しなくてもスキャナが簡単に使えるようになりました。最近は多くのメーカーでLinux対応のドライバを配布しています。今回はBrother製の複合機のスキャナをUbuntuで使用する方法を紹介します。同社のプリンターよりも設定は簡単ですよ。

今回設定する環境は以下の通りです。

Linuxディストリビューション:Ubuntu 15.04 
Brother製複合機:DCP-J525N

スキャナドライバのインストール

準備

もし、sane-utilsがインストールされていない場合は以下のコマンドでインストールします。

$ sudo apt-get install sane-utils

スキャナドライバのダウンロードとインストール

Brotherの公式ページからドライバをダウンロードします。今回はDCP-JP525N用のスキャナドライバとしてbrscan4-0.4.3-2.amd64.debをダウンロードしました。

$ sudo dpkg -i 
もしくは
$ sudo gdebi 

スキャナの設定

ドライバのインストールが終わったら設定に移りましょう。以下のコマンドで設定を行います。今回はネットワーク接続を前提とします。もしUSB接続の場合はhttp://support.brother.co.jp/j/s/support/os/linux/scanner/install_usb.htmlをご覧になって設定をして下さい。
ネットワーク接続の場合は以下のコマンドでスキャナの追加をします。 

$ brsaneconfig4 -a name=<SCANNER名> model=DCP-J525N ip=<IPアドレス>

brsaneconfigには最後に番号がついていますが、この番号はインストールしたドライバのパッケージ名についている番号と関連します。brscan4の場合はbrsaneconfig4という具合です。

brsaneconfigはBrother製スキャナの登録や削除をするツールです。コマンド一覧は以下の通りです。

USAGE: brsaneconfig4 [-OPTION]   OPTION:
       -a name=FRIENDLY-NAME model=MODEL-NAME ip=xx.xx.xx.xx    
       -a name=FRIENDLY-NAME model=MODEL-NAME nodename=BRN_xxxxx 
                   : Add network scanner
       -r FRIENDLY-NAME [FRIENDLY-NAME ...]
                   : Remove network scanner
       -q          : Query supported models and available network scanners
       -d          : Diagnosis
       -p          : Ping (for network scanners)  
       -s:[LABEL]  : Save current configuration
       -l:[LABEL]  : Load saved configuration

動作確認

Brotherの公式ページではXSaneまたはGIMPでのテストを勧めていますが、動作確認はシンプルスキャンで行うのが良いと思います。シンプルスキャンは名前の通りシンプルで使いやすいスキャナソフトです。もしシンプルスキャンが入っていない場合は以下のコマンドでインストールします。

$ sudo apt-get install simple-scan

シンプルスキャンを起動してテストしましょう。設定画面を開きBrotherのスキャナが選択されていることを確認します。
01

スキャンが実行できればOKです。
02

最後に

スキャナの設定はプリンタの設定よりもシンプルで簡単だったと思います。できればLinuxでもWindowsやMacのように簡単に周辺機器が使えるようになれば良いと思うのですが、まだまだCUI操作が必要な場面が多いですね。

Sponsored Link



VirturalBoxでUSBデバイスを使用する

$
0
0

こんにちは。今回のテーマは『VirturalBoxでUSBデバイスを使用する』です。VirtualBoxを使用しているとUSBメモリを使いたくなる機会は結構多いと思うのですが、単純にホストOSにUSBデバイスを接続してあってもゲストOS側に認識されられないこともあります。今回はVirtualBoxでUSBメモリを使用してUSBデバイスを使用する設定例を紹介できればと思います。
【関連記事】
VirtualBox上のArch Linuxで共有フォルダ機能を使う
VirtualBox上のゲストOSにSSHで接続する


【目次】
USBメモリは共有フォルダが使えない時の強い味方
VirturalBoxでUSBメモリを使う方法
それでも上手く行かない時は・・・

USBメモリは共有フォルダが使えない時の強い味方

VirtualBoxを使用してゲストOSとホストOSの間でデータをやり取りをしたい時にはネットワークを介したり、共有フォルダをしようする方法等もありますが、USBメモリストレージを利用すればもっと簡単にデータのやり取りをすることができます。

また、外部からUSBメモリで持ち込んだデータをゲストOSに読み込ませたい時もUSBメモリから直接読み込むことができます。日常的にUSBメモリを利用してパソコンから別のパソコンにデータを移すようにVirturalBox上でも快適にUSBメモリを利用しましょう。

VirturalBoxでUSBメモリを使う方法

USB機器を使うためのグループ登録

VirtualBoxでUSB機器を使用するためにはVirtualBoxを使用するユーザーをvboxusersにグループ登録する必要があります。次のコマンドで登録します。

root# gpasswd -a <ユーザー名> vboxusers

余談ですが、USB2.0を使用したい場合はhttps://www.virtualbox.org/wiki/Downloadsからエクステンションパックをダウンロードして機能拡張しておくと良いと思います。

USBフィルターの登録(任意)

USBフィルターをホスト側で追加しておくとゲストOS起動時から特定のUSB機器を認識させられます。設定は必須ではありません。
01

また、ゲストOSを起動した後にUSBを認識させるには「デバイス」メニューから追加します。
02

ゲストOSでUSB機器の接続を確認する

ゲストOS側でUSBメモリが読み込まれているか以下コマンドで確認します。

$ lsusb

出力例
03
USBメモリ等のストレージを読み込んだ場合はドライブとして認識されます。以下のコマンドで確認します。出力例の場合はsdb1がUSBメモリです。

$ lsblk

出力例
04

USB機器のマウント

これでUSB機器が使用できる状態になっているはずです。USBホットプラグに対応している場合は自動的にマウントされると思います。マウントされていない場合は手動でマウントして下さい。例えば以下のようなコマンドになると思います。

root# mkdir -vp /media/usb
root# mount /dev/sdb1 /media/usb

それでも上手く行かない時は・・・

Gentoo等を使用していて、自分でKernelをビルドした場合はUSB機器がサポートされていない可能性もあります。当然のことですが、KernelでUSB機器がサポートされていない場合はUSB機器が認識されません。カーネルコンフィギュレーションを見直し、ビルドし直す等の対応をする必要があります。Gentoo等でgenkernelを使用してkernelをビルドした場合は一度見直してみて下さい。

以下にKernelコンフィギュレーションの例を示します。バージョンによっては項目がない可能性もありますので、あくまでご参考という位置づけです。

Device Drivers  --->
  SCSI device support  --->
  
---   SCSI support type (disk, tape, CD-ROM)
<*>   SCSI disk support
  
USB support  --->
  
<*> Support for Host-side USB
  
--- USB Host Controller Drivers
<*> EHCI HCD (USB 2.0) support
< > OHCI HCD support
<*> UHCI HCD (most Intel and VIA) support
  
< > USB Modem (CDC ACM) support
<*> USB Printer support
<*> USB Mass Storage support
  
USB Network Adapters  --->
    <*> USB RTL8150 based ethernet device support (EXPERIMENTAL)
  
USB Serial Converter support  --->
    <*> USB Serial Converter support
    <*> USB Prolific 2303 Single Port Serial Driver (NEW)

最後に

ホストOS側でvboxusersグループへの登録しておかないとゲストOSでUSB機器が認識されず頭を抱えることになります。VirturalBoxも、USB周りの説明をもう少し分かりやすくなると良いなと思います。

Sponsored Link


CentOS 7環境のSublime Textで日本語入力をする

$
0
0

こんにちは。今回のテーマは『CentOS 7環境のSublime Textで日本語入力をする』です。Sublime Textを使ってみたけど日本語の入力が上手くいかない…そんな経験はないでしょうか?今回はコメントで頂いたご質問からSublime Textの日本語入力をCentOS 7で設定する方法をご紹介したいと思います。


【目次】
CentOS 7でSublime Textに日本語入力したい
emacs-mozcのインストール
Package Controlの導入
SublimeMozcInputの導入
Subulime Text 3で日本を入力する

CentOS 7でSublime Textに日本語入力したい

Subulime TextはAtomと比較されることも多い多機能なエディタでPythonで書かれています。現在Subulime Text 3がベータ版として無料で使用可能であり、Subulime Text 2はトライアルは無料で使用続けるにはライセンスの購入が必要です。(ただし、トライアルの期間制限は設けられていません。)

Subulime Text 3はコチラからダウンロードできます。

Sublime Textは日本語環境がemacs-mozcに依存しているため、Emacsユーザー以外の方は日本語入力できずに戸惑うことも多いと思います。今回はSublime Text 3で日本語入力の設定例を紹介できればと思います。Sublime Text 2についても基本的には同様です。

emacs-mozcのインストール

CentOS 7の公式リポジトリにはemacs-mozcパッケージはないのでFedora19のパッケージを転用することにします。

コチラのサイトから以下のパッケージをダウンロードして下さい。

  1. ibus-mozc-1.10.1390.102-1.fc19.x86_64.rpm
  2. mozc-1.10.1390.102-1.fc19.x86_64.rpm
  3. protobuf-2.5.0-4.fc19.x86_64.rpm
  4. zinnia-0.06-16.fc19.x86_64.rpm
  5. zinnia-tomoe-0.06-16.fc19.x86_64.rpm
  6. emacs-mozc-1.11.1522.102-2.fc18.noarch.rpm
  7. emacs-common-mozc-1.10.1390.102-1.fc19.x86_64.rpm

既にコチラの記事の方法でibus-mozcを導入している場合はemacs-mozcとemacs-common-mozcのみだけダウンロードすればOKです。

注意点しなければいけないのはパッケージのバージョンです。もし1.5以上のバージョンだと要求されるemacsのバージョンがCnetOS 7のemacsのバージョンより高くなってしまうためにエラーとなります。また、mozcとemacs-mozcのバージョンは合わせて下さい。

もし、fcitx等を導入していてバージョンが1.5以上のmozcが導入されている場合は関連パッケージを含めて削除しておいて下さい。

ダウンロードしたパッケージをインストールします。長いので二つに分けましたが、一度でもOKです。mozcをインストールしている方はemacs-mozcをインストールすればOKです。

mozcのインストール

$ sudo yum localinstall                  \
    mozc-1.10.1390.102-1.fc19.x86_64.rpm \
    protobuf-2.5.0-4.fc19.x86_64.rpm     \
    zinnia-0.06-16.fc19.x86_64.rpm       \
    zinnia-tomoe-0.06-16.fc19.x86_64.rpm

emacs-mozcのインストール

$ sudo yum localinstall                               \
    emacs-mozc-1.11.1522.102-2.fc18.noarch.rpm        \
    emacs-common-mozc-1.10.1390.102-1.fc19.x86_64.rpm \

Package Controlの導入

ウェブブラウザでhttps://packagecontrol.io/installationにアクセスします。タブの”SUBLIME TEXT 3″の中のフレーズを全てコピーします。
01
Sublime Text 3を開いてメニューバーの”View”から”Show Console”でコンソールを表示します。コピーしたフレーズをSublime Text 3のコンソール入力部にペーストしてエンターを押します。
02

SublimeMozcInputの導入

「Ctrl + Shift + p」を押すかメニューの”tools” -> “Command Pallet”でコマンドパレットを開いて”Package Control: Add Repository”と入力します。
03

入力窓にhttp://yasuyuky.github.io/SublimeMozcInput/を入力します。
04

次にコマンドパレットで”Package Control: Install Package”と入力してインストール画面を出します。
05

“SublimeMozcInput”と入力し選択します。これでインストールが完了しました。
06

Subulime Text 3で日本を入力する

「Ctrl + \」を押すと日本語入力と半角英数を切り替えられるようになります。また、tabキーで変換候補を出すことができます。
07

最後に

CentOSにはそもそもmozcのリポジトリがないのでemacs-mozcに依存するSublime Textでの日本語入力は環境の構築はなかなか面倒ですね。ibusやfcitxからもスムーズに入力出来るようになると良いのですが…

【関連記事】
CentOS 7.0にibus-mozcをインストールする

Sponsored Link


LinuxにSublime Text 3をインストールする

$
0
0

こんにちは。今回のテーマは『LinuxにSublime Text 3をインストールする』です。Sublime Textはエレガントなルックスと様々な機能拡張がプラグインで手軽に行える便利さを兼ね備え人気を集めているエディタです。もちろんLinuxでも使用できます。Sublime Textでの日本語入力に関してはコチラをご覧ください。


【目次】
Sublime Textの配布パッケージはdebかtar.bz2
Debian系のディストリビューション
それ以外のディストリビューション

Sublime Textの配布パッケージはdebかtar.bz2

Sublime Textの公式ページで配布されているパッケージはdeb形式かtar.bz2のtarボールです。UbuntuやDebian等のDeb系のディストリビューションを使っている場合はdeb形式のパッケージを選び、gdebiもしくはdgkgコマンドで簡単にインストールできます。

Debian系のディストリビューション

UbuntuやDebian等のDeb系のディストリビューションを使っている場合はDebパッケージをダウンロードしましょう。もちろんtarボールのパッケージも使用可能ですが、せっかくなのでdebファイルを使用したほうが良いです。今回は~/Downloadsにダウンロードした前提で進めます。以下のコマンドでインストールします。

$ cd ~/Downloads
$ sudo dpkg -i sublime-text_build-3083_i386.deb

gdebiが使用できる場合はGUIでもインストールできます。

それ以外のディストリビューション

Deb系以外のディストロを使用している場合はtar.bz2形式のパッケージをダウンロードすることになります。今回はCentOS 7を例にインストール方法をまとめてみました。

ダウンロード

公式HPからLinux用のtar.bz2ファイルをダウンロードします。今回は~/Downloadsにダウンロードします。

ダウンロードしたら以下コマンドで展開しましょう。

$ tar jxvf sublime-text_build-3083_x64.tar.bz2

インストール

以下で紹介する方法はあくまで筆者の我流であり、好みも別れると思います。尚、インストールせずに、展開したディレクトリから直接起動して使用することも可能です。ただ、メニューバーに表示させたり、GUI操作で起動するならば以下の方法などでインストールしておいた方が便利かと思います。

今回は/usr/local/myappというディレクトリにsublime textのパッケージをインストールすることにします。そこから必要な場所にリンクを張っていきます。リンクを張る方法だと削除するときにもシステムを汚さすクリーンに削除できます。

まずは/usr/local/myappにパッケージをコピーします。

root# mkdir -pv /usr/local/myapp
root# cp -rv ~/Dowonloads/sublime_text_3 /usr/local/myapp/

次に以下のコマンドでリンクを張っていきます。

root# mkdir -pv /opt/sublime_text
root# ln -sv \
      /usr/local/myapp/sublime_text_3/sublime_text \
      /opt/sublime_text
root# ln -sv \
      /usr/local/myapp/sublime_text_3/sublime_text.desktop \
      /usr/share/applications/

sublime_text.desktopファイルの修正

パッケージを展開するとsublime_text.desktopファイルが入っています。これはデスクトップ環境のメニューにアプリケーションを追加してGUIで起動可能にするためのファイルです。ただ、ダウンロードしたままの状態ではアイコンが表示されませんので修正します。

$ cd ~/Downloads/sublime_text_3
$ vim sublime_text.desktop

Iconの項目を以下のように修正します(#部分はコメントです)

# 修正前 Icon=sublime-text
#
# 修正後
Icon=/usr/local/myapp/sublime_text_3/Icon/48x48/sublime-text.png

修正が終わったらログアウトして再ログインしましょう。メニューにアイコンが表示されているはずです。Xfce環境では開発のカテゴリに追加されています。
01
GUIで起動出来るようになりました。
02

最後に

Sublime Textに限らず最近は便利でオシャレなエディタが開発されてきていますね。個人的にはエディタはVimで良いかなと思っていますが、Sublime TextやAtomのような新しいテキストエディタで自分だけの開発環境をカスタマイズするのも楽しいと思います。
【関連記事】
CentOS 7環境のSublime Textで日本語入力をする
ソースからビルドしたソフトをLinuxでクリーンに管理する方法

Sponsored Link


LFS 7.7を構築する [Part 1 LFS概略とホストシステム選択編]

$
0
0

こんにちは。今回のテーマは『LFS 7.7を構築する [Part 1 LFS概略とホストシステム選択編]』です。時間を見つけては少しずつLFS(Linux From Scratch)7.7構築の作業を進めてきました。一通り作業の目処がついたので記事にしてみようと思いました。ただ、LFSの作業は非常に膨大なので詳細な作業は公式サイトに譲りたいと思います。ここでは実際に作業してみた感じたトピックなどを扱えればと思います。今回はLFSの紹介とホストシステム選びについて取り上げたいと思います。LFSのドキュメントでいうと序章〜1章あたりに相当します。
【関連記事】


【目次】
LFSでLinuxシステムを構築する魅力
今回構築した環境
Linuxディストリビューション構築の概要
ホストシステムはどのディストリビューションが良いのか?

LFSでLinuxシステムを構築する魅力

色々なLinuxディストリビューションを使ってみたり、自分なりのカスタマイズをしているうちに一からLinuxディストリビューションを構築してみたいと思ったことはないでしょうか?しかし、いきなり自力でLinuxディストリビューションを作成しようとしてもハードルが高いものです。

LFSは最小のOSとして機能するLinuxシステムを構築する手法をドキュメントとして提供ています。このドキュメントにしたがって作業をしていけばLinuxディストリビューションを作成できます。(尚、公式ドキュメントlfsbookは日本語版もあり、コチラから入手できます。)

LFSの手順で構築された直後のシステムは機能も非常に少なく実用的な状態ではありません。インストールしてすぐに使えるLinuxディストリビューション(例えばUbuntuのような)と比べれば非常に不便で貧弱です。しかし自分が一から構築するシステムは自由にカスタマイズ可能で、自分だけのシステムを構築することができます。

LFSをさらに実用的なシステムにしようとするBLFS(Beyound Linux From Scratch)というプロジェクトもあります。LFSでシステムを構築した後にはBLFSを参考に自分専用のディストリビューションを作成してみてはいかがでしょうか?

今回構築した環境

筆者は今回LFS7.7を構築しました。筆者の環境は以下のようなものです。

構築環境 VirtualBox
ホストシステム Slackware 14.1
LFSバージョン 7.7
アーキテクチャ AMD x86(32bit)

LFS7.7構築直後の起動画面
02

Linuxディストリビューション構築の概要

一からディストリビューションを構築すると聞いてどんな作業を思い浮かべるでしょうか?細かいところはLFSドキュメントを読んでいただくとして、ざっと筆者が行った作業の流れを記すと以下のような流れとなります。(LiveCDを使う場合はホストシステムのインストールは不要です)

  1. ホストシステムの選定
  2. パーティショニングとホストシステムのインストール
  3. パッケージソースのダウンロード
  4. 一時的環境の構築
  5. ソフトウェアのビルドとインストール
  6. ブートスクリプトのインストール
  7. システムの設定
  8. カーネルのビルドとインストール
  9. ブートローダーのインストールと設定

ご覧のようにホストシステムを利用して一時的なビルド環境を構築し、その環境の上でソフトウェアのビルドを行うことでホストシステムの影響を受けないようにしていきます。よって、Gentoo LinuxやArch Linuxのようなコマンドベースでインストール作業をするディストリビューションよりも作業は煩雑となります。

ホストシステムはどのディストリビューションが良いのか?

LFS 6.xまでは公式LiveCDが公開されており、LiveCDを使用した方法はネット上でも見かけることが多かったです。しかしLSF 7.xからはLiveCDがサポートされていません。

LFS 7.xの構築を始めるときに迷うのが「どのディストリビューションで構築するか」だと思います。筆者はSlackware 14.1を使用してLFSを構築しました。Slackwreの前はGentooのLiveDVD(20140826)を使用して構築を試みましたが、どうしてもgccのビルドが通らず断念しました。

ホストシステムとして適切なシステムかどうかチェックするため以下のスクリプトが用意します。
version-check.sh

#!/bin/bash
# Simple script to list version numbers of critical development tools
export LC_ALL=C
bash --version | head -n1 | cut -d" " -f2-4
echo "/bin/sh -> `readlink -f /bin/sh`"
echo -n "Binutils: "; ld --version | head -n1 | cut -d" " -f3-
bison --version | head -n1

if [ -h /usr/bin/yacc ]; then
  echo "/usr/bin/yacc -> `readlink -f /usr/bin/yacc`";
elif [ -x /usr/bin/yacc ]; then
  echo yacc is `/usr/bin/yacc --version | head -n1`
else
  echo "yacc not found"
fi

bzip2 --version 2>&1 < /dev/null | head -n1 | cut -d" " -f1,6-
echo -n "Coreutils: "; chown --version | head -n1 | cut -d")" -f2
diff --version | head -n1
find --version | head -n1
gawk --version | head -n1

if [ -h /usr/bin/awk ]; then
  echo "/usr/bin/awk -> `readlink -f /usr/bin/awk`";
elif [ -x /usr/bin/awk ]; then
  echo yacc is `/usr/bin/awk --version | head -n1`
else
  echo "awk not found"
fi

gcc --version | head -n1
g++ --version | head -n1
ldd --version | head -n1 | cut -d" " -f2-  # glibc version
grep --version | head -n1
gzip --version | head -n1
cat /proc/version
m4 --version | head -n1
make --version | head -n1
patch --version | head -n1
echo Perl `perl -V:version`
sed --version | head -n1
tar --version | head -n1
makeinfo --version | head -n1
xz --version | head -n1

echo 'main(){}' > dummy.c && g++ -o dummy dummy.c
if [ -x dummy ]
  then echo "g++ compilation OK";
  else echo "g++ compilation failed"; fi
rm -f dummy.c dummy

library-check.sh

#!/bin/bash
for lib in lib{gmp,mpfr,mpc}.la; do
  echo $lib: $(if find /usr/lib* -name $lib|
               grep -q $lib;then :;else echo not;fi) found
done
unset lib

スクリプトの準備ができたら以下のコマンドを実行しチェックをして下さい。

$ bash version-check.sh
$ bash library-check.sh

このチェックを行い問題なければホストシステムとして使用可能です。

最後に

随分と長くなってしまいました。LFSの楽しさを少しでもお伝えできればと思います。社会人の場合はなかなか時間が取れず、作業が少しずつしか進まないことも多いと思いますがプラモデルを少しずつ組み立てていくように自分のペースで進めれば良いと思います。

Sponsored Link


LFS 7.7を構築する [Part 2 一時環境の構築準備編]

$
0
0

こんにちは。今回のテーマは『LFS 7.7を構築する [Part 2 一時環境の構築準備編]』です。本記事はLFS 7.7を構築する [Part 1 LFS概略とホストシステム選択編]の続きです。今回はパーティショニングから一時環境の構築一歩手前までを扱っています。公式のLFSbookでは2章から4章に相当すると思います。基本的にはLFSbookに沿って作業を進めていますが、一部前後している部分もあります。詳細は公式LFSbookをご覧ください


【目次】
パーティショニング
ファイルシステムの作成
ホストシステムのインストールと準備
LFS用パーティションのマウント
パッケージ群のダウンロード
準備作業の仕上げ
おまけ:作業再開用のスクリプト

パーティショニング

パーティショニングはシステムの外枠を作る重要な作業です。どんな環境を構築したいのかイメージして作業すると良いと思います。筆者の場合はホストシステムとLFSのデュアルブートとしてホストシステムのブートローダーでLFSを起動する設計としました。よって、/bootとswap用のパーティションをホストシステムとLFSで共有することになります。以下に筆者のパーティショニング例を示します。

sda        8:0    0    13G  0 disk 
├─sda1   8:1    0     1k  0 part
├─sda5   8:5    0   500K  0 part /boot    #/bootは共用
├─sda6   8:4    0     3G  0 part /        #Slackwareのルート
├─sda7   8:5    0  11.5G  0 part /mnt/lfs #LFSのルート
└─sda8   8:8    0     1G  0 part [SWAP]

この辺りはかなり好みが別れる部分だと思います。もしLFS構築後はホストシステムは削除する場合はLFSシステム側のブートローダーで起動することになりますので、LFS用のbootパーティションを用意したいと思う方も居るかも知れません。

ファイルシステムの作成

ホストとLFSのルートパーティションをはext4、/bootパーティションはext2としました。以下のコマンドでファイルシステムを作成していきます。

host# mkfs.ext2 /dev/sda5
host# mkfs.ext4 /dev/sda6
host# mkfs.ext4 /dev/sda7

スワップ領域も作成します。

host# mkswap /dev/sda8
host# swapon /dev/sda8

ホストシステムのインストールと準備

ホストシステムのインストール

今回はホストシステムとしてSlackwre14.1をインストールしました。Xorg等は入れずに、必要最低限のビルドが出来るCLI環境をインストールしました。Slackwareのインストールについてはコチラの記事を参考にしていただければと思います。

開発環境をインストールすることを忘れないで下さい。ビルドできなくなります。

ホストシステムの準備

インストールしたての状態ではGCC等のビルドの際にパッケージが足りずにエラーが出たので、以下に揚げたパッケージを追加でインストールしておきます。Slackpkgを使ってもWebからパッケージをダウンロードしてきてもOKです。

  1. glibc
  2. gmp
  3. libcroco
  4. libmpc
  5. libxml
  6. mpfr

LFS用パーティションのマウント

環境変数$LFSの設定

LFSbookでは頻繁に$LFSという環境変数を使用して設定を行います。以下のコマンドで設定をします。ホストシステムを起動する度に設定するのが面倒な場合は/root/.bashrcや/root/.bash_profileなどで設定してしまうと便利かも知れません。

host# export LFS=/mnt/lfs

パーティションのマウント

LFSのルートパーティションをマウントします。

host# mkdir -pv $LFS
host# mount -v -t ext4 /dev/sda7 $LFS

もし、/usr/を別パーティションとするなどの場合は以下のようにします。

host# $ mkdir -pv $LFS
host# $ mount -v -t ext4 /dev/sda7 $LFS
host# $ mkdir -pv $LFS/usr
host# $ mount -v -t ext4 /dev/<xxx> $LFS/usr

パッケージ群のダウンロード

ここではLFSで構築するためのパッケージのソースやパッチをダウンロードします。ソースは$LFS/sourceに置くことにします。

$LFS/sourceディレクトリの作成

まずはパッケージを保管するディレクトリを作成します。以下のコマンドを実行します。

host# mkdir -v $LFS/source
host# chmod -v a+wt $LFS/sources 

wget-listの入手

LFSではソースの一覧と入手先のURLが記されたwget-listファイルを提供しています。まずはこのファイルを入手します。(URLは2015年9月現在のものです)

host# cd $LFS/source
host# wget http://www.linuxfromscratch.org/lfs/downloads/stable/wget-list
host# wget http://www.linuxfromscratch.org/lfs/downloads/stable/md5sum

パッケージのダウンロード

LFSbook7.7日本語版には日本国内のサーバーからダウンロードできるようにwget-listに手を加える手法も記してありますが、今回はオリジナルのwget-listを用いて海外からダウンロードします。

root# cd $LFS/source
root# wget --input-file=wget-list --continue --directory-prefix=$LFS/sources 

ダウンロードしたパッケージのチェック

先ほどダウンロードしたパッケージのチェックを行います。

host# pushd $LFS/sources
host# md5sum -c md5sums
host# popd

準備作業の仕上げ

$LFS/toolsの作成

以下コマンドでディレクトリを作成します。

mkdir -v $LFS/tools
ln -sv $LFS/tools /

lFSユーザーの追加

host# groupadd lfs
host# useradd -s /bin/bash -g lfs -m -k /dev/null lfs
host# passwd lfs

ディレクトリの所有権を付与します。

host# chown -v lfs $LFS/tools
host# chown -v lfs $LFS/sources

lfsユーザーでログインします

host# su - lfs

.bash_profileと.bashrcファイルの作成

ホストシステムの影響を与えないように環境変数を設定します。

以下のコマンドで.bash_profileを作成します。

lfs# cat > ~/.bash_profile << "EOF"
exec env -i HOME=$HOME TERM=$TERM PS1='\u:\w\$ ' /bin/bash
EOF

以下のコマンドで.bashrcを作成します。

lfs# cat > ~/.bashrc << "EOF"
set +h
umask 022
LFS=/mnt/lfs
LC_ALL=POSIX
LFS_TGT=$(uname -m)-lfs-linux-gnu
PATH=/tools/bin:/bin:/usr/bin
export LFS LC_ALL LFS_TGT PATH
EOF

作成した.bash_profileを読み込みます。

lfs# source ~/.bash_profile

おまけ:作業再開用のスクリプト

LFS構築の作業は一日で終わらない場合も多く、数日に分けて行っていくことが多いと思います。作業を中断するとパーティションのマウントや環境変数の設定等、同じことを繰り返すこともあり、面倒に感じることもあります。自分なりにスクリプトにまとめておくとホストシステムからスクリプトを走らせるだけで作業が始められます。

作業再開用のスクリプトは特にLiveCDで作業をしている方に有効だと思います。今回はホストシステムをインストールしているのでスクリプトは短くて済んでいます。

参考までに筆者はLFSbook第5章までのスクリプトを載せておきます。ドライブ名等は適宜読み替えて下さい。

restart.sh

#!/bin/sh

export LFS=/mnt/lfs
mount /dev/sda7 $LFS
su - lfs

最後に

さて、LFSの作業はようやくスタートしました。ここから先は第五章に入りダウンロードしたパッケージをビルドしていく作業に入っていきます。GUIが使用できるシステムからホストシステムにSSH接続しておくと作業がスムーズに進むと思います。
【関連記事】
LFS 7.7を構築する [Part 1 LFS概略とホストシステム選択編]

Sponsored Link


sudo時に環境変数PATHが引き継がれない時の対策

$
0
0

こんにちは。今回のテーマは『sudo時に環境変数PATHが引き継がれない時の対策』です。sudoはいちいちrootにならずともコマンドを実行できる安全で便利なツールですが、その安全性を重視した設定のために少々不便な時もあります。今回はsudo時に環境変数PATHが引き継がれない対策を記事にしました。


【目次】
sudoでは設定したPATHが初期化されることがある
原因はsudoの設定
まずは普通にPATHの追加設定
/etc/sudoersの設定を変更する

sudoでは設定したPATHが初期化されることがある

筆者はこれまでAndroidの開発はArch Linuxで行っていて、最近Xubumtu環境に引っ越してきました。Arch Linuxの時にはユーザーホームディレクトリ上に展開したAndroid-sdkにPATHを通してadbをsudoで実行できていました。しかしXubumtuではsudoで実行時に

sudo: adb: command not found

と言われてしまします。PATHが通っていないよと言われているわけです。

原因はsudoの設定

sudoの設定によっては環境変数を引き継がなかったりリセットする設定なっていることがあり、これが原因でsudo時にPATHが引き継がれません。
前述の通り、これらの設定はディストリビューションによって異なります。全て調べたわけではないですが、UbuntuファミリーやCentOSではPATHが引き継がれないようです。ディストリビューションによって微妙に設定が異なっていますが、基本的には同じような対策でOKです。今回はUbuntuを例にして説明したいと思います。

Ubuntuではenv_resetという設定がされていて、sudo時には環境変数がsecure_pathの設定値にリセットされるようになっています。またenv_keepにPATHがないためにユーザー設定のPATHが引き継がれません。これらの設定を変更することでsudo時にもPATHが引き継がれるようになります。

まずは普通にPATHの追加設定

PATHの追加

まずはPATHを追加してみます。今回はユーザーディレクトリに展開したandroid開発ツールを追加してみます。/home/ユーザー名/sdk/android-sdk-linuxを追加してみます。
PATHの追加例

$ export PATH=$PATH:/home/ユーザー名/sdk/android-sdk-linux/platform-tools

この設定を現在のログインユーザーで永続させたい場合は~/.bashrcに上記コマンドを書き込んでおくと良いと思います。尚、複数のユーザーに共通でPATHを追加したい場合は/et/profileに書き込んでおくと便利かと思います。

PATHが追加されたかどうか確認

以下のコマンドで確認します。

$ echo $PATH

先ほど追加したパスが追加されていればOKです。この状態だとadbという追加したパスにあるアプリケーションを実行可能です。当然、追加したパスにより実行可能となるアプリケーションは異なります。今回はadbを実行してみます。
実行例

$ adb devices

実行結果は今回は重要ではありません。エラーが出ずに実行できればOKです。

/etc/sudoersの設定を変更する

では前段落で実行したadbをsudoで実行できるように設定してきます。まずはrootユーザーになり、visudoを実行して/etc/sudoersを編集します。

$ su -
root# visudo

まずはenv_resetとsecure_pathの設定をコメントアウトします。

Defaults	env_reset
Defaults	secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

次に以下のようにPATHを保持する設定を追記します。

Defaults	env_keep += "PATH"

修正した全体を見てみると以下のようになっているはずです。
01

この状態でログインユーザーに戻って先ほどsudo adbが実行可能か試してみましょう。

$ sudo adb devices

先ほどとは異なりちゃんと実行できたと思います。

最後に

sudo時の環境変数の引き継ぎ、知っていればなんてことない設定ですが、咄嗟には少々戸惑うものでもあります。本記事が少しでもお役に立てば幸いです。
【関連記事】
DebianやFedoraでsudoコマンドを使う

Sponsored Link


LFS 7.7を構築する [Part 3 一時的環境の構築編]

$
0
0

こんにちは。今回のテーマは『LFS 7.7を構築する [Part 3 一時的環境の構築編]』です。本記事はLFS 7.7を構築する [Part 2 一時環境の構築準備編]からの続きとなります。今回はいよいよ一時的環境の構築を行います。LFSbookでは第五章に相当します。ただ全ての構築作業を記すと膨大な量となりますので細かい作業はLFSbookを参照いただくとして第5章のTIPSを扱えればと思います。今度の休みはLFSをやってみよう・・・そんなきっかけとなれば幸いです。

2015年10月現在、LFSの最新バージョンは7.8となります。最新のLFSに興味野ある方は公式ページからどうぞ


【目次】
パッケージのビルド作業はGUI環境からSSH接続が快適
ソフトウェアビルドの基本
ビルド後の後片付け(ストリップ作業)
一時的環境構築の仕上げと保存

パッケージのビルド作業はGUI環境からSSH接続が快適

今回から一時的環境を構築するためにパッケージをビルドしてインストールしていきます。次章でパッケージのビルド方法については少し触れますが、環境としてはLFSbookを参照でき、コピー&ペースト出来るGUI環境があった方が楽だと思います。筆者の場合はVirtualBox上のSlackware14.1にXubuntuからSSH接続してビルド作業を行いました。

01

VirtualBoxへのSSH接続についてはコチラの記事を参照下さい。

もっと楽をしたい場合はLFScriptというスクリプトベースで進める手もありますが、今回はLFSに限定します。

ソフトウェアビルドの基本

基本的な作業はどのパッケージであっても同じです。以下の作業を繰り返していきます。

  1. パッケージのTarballを展開する
  2. 展開したディレクトリに入る
  3. LFSbookの指示に従いビルド作業をする

第五章の一番最初にビルドするBinutilsを例にするとこのような流れとなります。

#---ここの部分は全パッケージ共通の作業---
lfs# cd /sources
lfs# tar xjvf binutils-2.25.tar.bz2
lfs# cd binutils-2.25

#---LFSbookの説明はココから始まる---
lfs# mkdir -v ../binutils-build
lfs# cd ../binutils-build
lfs# ../binutils-2.25/configure    \
        --prefix=/tools            \
        --with-sysroot=$LFS        \
        --with-lib-path=/tools/lib \
        --target=$LFS_TGT          \
        --disable-nls              \
        --disable-werror
lfs# make
lfs# case $(uname -m) in
       x86_64) mkdir -v /tools/lib && ln -sv lib /tools/lib64 ;;
     esac
lfs# make install

LFSbookにはソースを展開して、ディレクトリに移動する部分は省かれているので混乱する方も居るかも知れません。どのパッケージも基本的には上記の要領でビルドします。

このような感じで順番に計30パッケージをインストールしていきます。普段からソースからビルドすることに慣れている方にはとくに難しいこともなく進むと思います。一時的環境を構築するための準備(configure)はパッケージごとに異なるので注意が必要です。

ビルド後の後片付け(ストリップ作業)

ストリップとはここまでのビルド作業で発生した不要なものを削除する作業です。必ずしも必須ではありません。ストリップ作業をする場合は以下のコマンドを実行します。

lfs# strip --strip-debug /tools/lib/*
lfs# /usr/bin/strip --strip-unneeded /tools/{,s}bin/*
lfs# rm -rf /tools/{,share}/{info,man,doc}

一時的環境構築の仕上げと保存

ここまでの作業でほとんど一時的環境の構築は終わっています。最後に/toolsの所有者を変更しておきましょう。

chown -R root:root $LFS/tools

さて、これで一時的環境の構築が完了しました。この後は/toolsに構築した一時的環境を使用して徐々にホストシステムから切り離しながらソフトウェアのビルドとインストールを行っていきます。

せっかく手間をかけて作成した一時的環境ですから保管しておきたい場合もあると思います。保存しておけば再度LFSを構築する際に一時的環境の構築を省略できます。(アーキテクチャが異なる場合には使えませんが)今回はホストシステム側でtarballにしてUSBメディア等に保管します。

host# tar cjvf lfs-tools_7.7.tar.bz2 /mnt/lfs/tools

最後に

一時的環境の構築の山場はGCC〜Glibc辺りで後は流れ作業的に進んでいくと思います。コピー&ペーストをしない場合はタイプミスに気をつけてください。筆者な何度かタイプミスのせいでconfigureが正しくできておらずビルドに失敗し頭を抱えたことがありました。一時的環境の構築が終わったらLFSの構築も半分まできた感じです。気長に楽しみながらやるのが一番ではないかと思います。

【関連記事】
LFS 7.7を構築する [Part 1 LFS概略とホストシステム選択編]
LFS 7.7を構築する [Part 2 一時環境の構築準備編]

Sponsored Link



UbuntuにAndroid Studioを導入して開発環境を整える

$
0
0

こんにちは。今回のテーマは『UbuntuにAndroid Studioを導入して開発環境を整える』です。これまで書籍等で紹介されてきたAndroidの開発環境といえばEclipseでした。しかし今後はGoogleが公式サポートする開発ツールということでAndroid Studioが標準の開発環境になると思います。今回はUbuntu-makeを利用して簡単にAndroid開発環境を構築していきます。


【目次】
Android Studioが開発の主流に
開発環境の構築はUbuntu Makeで
Ubuntu-makeのインストール
Android Studioのインストール
Android Studioの起動と初期設定

Android Studioが開発の主流に

これまでAndroidアプリケーション開発環境は主流はEclipse + ADT(Android Developer Tools)でしたが、Android Developers Blogにて2015年内ADTへの公式サポートが終了し今後はAndroid Studioが公式開発環境として一本化されることが発表されました。ADTからAndroid Studioへの移行は以前より分かっていた話ですが、今後より一層移行が進むと思います。

開発環境の構築はUbuntu Makeで

Ubuntu Makeでかんたに開発環境を構築

Android Studioはhttps://developer.android.com/intl/ja/sdk/index.htmlからダウンロードして使用することができますが、Ubuntuユーザーであればコマンド一つで簡単に開発環境を整備できます。
ディストリビューションが提供するソフトウェアやライブラリはシステムの安定性を考慮して提供されているので常に最新のものではありません。しかし開発環境として最新のバージョンで対応したい場合には、このことが弊害となってしまいます。Ubuntu-makeはこの悩みを解消するためにシステムのパッケージ管理とは別に開発環境向けのパッケージ管理を行うツールです。つまり安定版のLTSを使用していても最新版の開発環境を用意することが可能となります。

Ubuntu Makeの前身はubuntu-developer-tools-center

Ubuntuに開発環境を整えるための仕組みといえばubuntu-developer-tools-centerを思い浮かべた方も居るかも知れません。ubuntu-developer-tools-centerはubuntu-makeに名称が変更されました。これからはubuntu-makeのみを覚えておけば問題ないと思います。ただ、パッケージとしてはubuntu-developer-tools-centerは残っていてudtcコマンドも使用することは可能です。

Ubuntu Makeのインストール

それではubuntu-makeを使えるようにインストールしましょう。15.04(vivid)を使用している場合は公式リポジトリにパッケージがあります。14.10以前の物を使用している場合は以下のコマンドでPPAを追加します。

$ sudo add-apt-repository ppa:ubuntu-desktop/ubuntu-make

以下コマンドでubuntu-makeとqemu-kvmをインストールします。

$ suod apt-get install ubuntu-make qemu-kvm

Android Studioのインストール

Android Studioのインストールはumakeコマンドで簡単にインストールできます。

$ umake android android-studio

コマンドを実行するとインストールするディレクトリを聞かれますので設定してインストールを開始します。

インストールが始まるとライセンスに同意することを求められますので同意します。
01

Android Studioの起動と初期設定

起動

インストールが正常にインストールされていれば~/local/share/applications/以下にandroid-studio.desktopファイルがインストールされることで、メニューバーから起動可能となります。今回はXfceで確認しましたが、KDEやGNOMEであっても同様だと思います。

もしメニューバーになければ、以下コマンドで起動して下さい。

$ <指定したディレクトリ>/android/android-studio/bin/studio.sh &

筆者の場合はumakeで~/toolsを指定したので以下のようになります。

$ ~/tools/android/android-studio/bin/studio.sh &

設定

Android Studioが起動すると設定ウィザードが開始されますのでその指示に従い設定してきます。(画像はテーマがDarkになっていますが、実際はLightテーマだと思います。)

セットアップ開始画面
02

今回はカスタムを選びます。
03

テーマを選びます。お好みでどうぞ。
04

Android SDKの設定をします。もし予めSDKだけインストールしてある場合は、ここでそのディレクトリを指定すればOKです。(おそらく自動で探し出します。)新規でインストールする場合はインストール先のディレクトリを指定します。インストールしたいパッケージにチェックを入れて次に進みます。(後で変更可能なのであまり悩まなくてもOKです。)
05

内容を確認したら次に進みます。
06

SDKのインストールが行われます。
07

SDKのインストールが完了したら設定は終了です。
08

最後に

Eclipse用のプラグインADTがGoogleのサポート切れとなった件は冒頭で述べました。ではEclipseによるAndroid開発はどうなってしまうのでしょうか?ADTは今後”Andomore“というオープンソースのプロジェクトとしてEclipse Foundationで開発が続けられていくということです。位置づけとしてはNetBeansのNBAndroidのような位置づけでしょうか。しかしGoogleの公式サポートがなくなるということでEclipse離れは進むでしょうね。
【関連記事】
Androidアプリを公開しました

Sponsored Link


EclipseのAndroidプロジェクトをAndroid Studioに移行する

$
0
0

こんにちは。今回のテーマは『EclipseのAndroidプロジェクトをAndroid Studioに移行する』です。UbuntuにAndroid Studioを導入して開発環境を整えるでも触れたのですが、Eclipse用のAndroid用プラグインADT(Android Developer Tools)のサポート終了が2015年末までとなりました。いままで何かと面倒でEclipseからAndroid Studioへの移行を渋っていた方も移行を考えては如何でしょうか?


【目次】
ビルドツールはAntからGradleへ
Android Studioに移行すると予期せぬエラーが起こることも
Eclipseで作成したプロジェクトをAndroid Studioへ移する

ビルドツールはAntからGradleへ

Eclipseで作成されたプロジェクトはCUIでビルドする場合はApache Antを用いていました。(Antでビルドするためにはandroid updateコマンドを実行するか、自分でbuild.xmlを作成する必要があります。)

Googleは新たなビルドツールとしてGradleを採用し、今後はAndroid Studio + Gradleという環境が開発の主戦場になっていく見通しです。Gradleは設定ファイルであるbuild.gradeをGroovyで書くことができるビルドツールです。

AntとGradleはいろいろと異なる部分がありますが、設定ファイルがxmlではなくgroovyで書けるという点はGradleの利点だと思います。また、Eclipse + AntではGUIとCUIでの統一感がなかったのですが、Android Studio + GradleではGUIでもCUIからでも同様のビルド結果が得られるという点でも使いやすい環境だと思います。

Android Studioに移行すると予期せぬエラーが起こることも

Eclipseで開発してきたAndroidプロジェクトをAndroid Studioに移行する作業はとても簡単ですが、多少面倒な場合もあります。

Eclipseで特にエラーも出ず、問題なく動いていたプロジェクトが、Android Studioに移行するとエラーで真っ赤になることがあります。大抵の場合は場合はライブラリやコンパイルに指定しているSDKのバージョンによるもので、対処は難しくありません。しかし時間の余裕がない時にはちょっとしたエラーも忌々しいものです。移行作業は時間に余裕のあるときにオススメします。

Eclipseで作成したプロジェクトをAndroid Studioへ移する

前置きが長くなってしまいました。ではEclipseで作成したプロジェクトを移行していきます。さほど難しい操作はないですが、Google公式ページも参照下さい。

Android Studioを起動します。
01

インポートしたいEclipseプロジェクトのディレクトリを選択肢ます。(AndroidManufest.xmlがあることを確認して下さい)
07

インポートするプロジェクトを配置する場所を選択肢ます。
03

オプションを選択してFinishを押します。
04

インポートが完了するとレポートが出力されます。
05

エラーメッセージがでなければインポート成功です。快適なAndroid開発をどうぞ。
06

最後に

今回はEclipseからAndroid Studioへの移行をテーマとしましたが、個人的にはEclipse + ADTでのAndroid開発は結構気に入っています。(Eclipseが重すぎて固まる等の不満はありますが)完全に趣味で開発を楽しむ分には今後もEclipse + ADT(今後はAndmoreプロジェクトへ)やNetBeans + NBAndroidによる開発も楽しいのではないかと思っています。
【関連記事】
UbuntuにAndroid Studioを導入して開発環境を整える
Androidアプリを公開しました

Sponsored Link


LFS 7.7を構築する [Part 4 基本ソフトウェアのインストール編]

$
0
0

こんにちは。今回のテーマは『LFS 7.7を構築する [Part 4 基本ソフトウェアのインストール編]』です。本記事はLFS 7.7を構築する [Part 3 一時的環境の構築編]からの続きとなります。今回はLFS構築作業のクライマックスとも言える基本ソフトウェアのインストール作業です。詳細な作業はLFS-BOOK (*1)を参照いただくとして、作業の流れとTIPSをお届けできればと考えています。
(*1 LFS-BOOK-7.7 Copyright © 1999-2015 Gerard Beekmans 本文中のコマンドはMITライセンスに準じます。)


【目次】
仮想カーネルファイルシステムの準備
Chroot環境への移行
ディレクトリの作成
設定ファイルとリンクの作成
各種プログラムのビルドとインストール
ビルド後の後片付け

仮想カーネルファイルシステムの準備

ファイルシステムのためのディレクトリを作成します。

host# mkdir -pv $LFS/{dev,proc,sys,run}

初期デバイスノードの生成

以下コマンドでデバイスノードを生成します。

host# mknod -m 600 $LFS/dev/console c 5 1
host# mknod -m 666 $LFS/dev/null c 1 3

/dev のマウントと有効化

以下コマンドで/devをマウントします。–bindオプションを忘れずに。

host# mount -v --bind /dev $LFS/dev

仮想カーネルファイルシステムのマウント

各ファイルシステムをマウントしていきましょう。

host# mount -vt devpts devpts $LFS/dev/pts -o gid=5,mode=620
host# mount -vt proc proc $LFS/proc
host# mount -vt sysfs sysfs $LFS/sys
host# mount -vt tmpfs tmpfs $LFS/run

Chroot環境への移行

一時的環境の構築の際にはlfsというユーザーを作成し作業を行いましたが、ここから先は構築するシステムの中にchrootして作業を行っていきます。

host# chroot "$LFS" /tools/bin/env -i \
        HOME=/root                  \
        TERM="$TERM"                \
        PS1='\u:\w\$ '              \
        PATH=/bin:/usr/bin:/sbin:/usr/sbin:/tools/bin \
        /tools/bin/bash --login +h

ディレクトリの作成

ここから先はChroot環境での操作となりますのでプロンプトはroot#として表示します。ただ、実際には”I have no name!”と表示されます。以後の作業で正常に戻るので安心して下さい。

root# mkdir -pv /{bin,boot,etc/{opt,sysconfig},home,lib/firmware,mnt,opt}
root# mkdir -pv /{media/{floppy,cdrom},sbin,srv,var}
root# install -dv -m 0750 /root
root# install -dv -m 1777 /tmp /var/tmp
root# mkdir -pv /usr/{,local/}{bin,include,lib,sbin,src}
root# mkdir -pv /usr/{,local/}share/{color,dict,doc,info,locale,man}
root# mkdir -v  /usr/{,local/}share/{misc,terminfo,zoneinfo}
root# mkdir -v  /usr/libexec
root# mkdir -pv /usr/{,local/}share/man/man{1..8}

root# case $(uname -m) in
      x86_64) ln -sv lib /lib64
              ln -sv lib /usr/lib64
              ln -sv lib /usr/local/lib64 ;;
      esac

root# mkdir -v /var/{log,mail,spool}
root# ln -sv /run /var/run
root# ln -sv /run/lock /var/lock
root# mkdir -pv /var/{opt,cache,lib/{color,misc,locate},local}

設定ファイルとリンクの作成

リンクの生成

システムに必要なリンクを生成していきます。

root# ln -sv /tools/bin/{bash,cat,echo,pwd,stty} /bin
root# ln -sv /tools/bin/perl /usr/bin
root# ln -sv /tools/lib/libgcc_s.so{,.1} /usr/lib
root# ln -sv /tools/lib/libstdc++.so{,.6} /usr/lib
root# sed 's/tools/usr/' /tools/lib/libstdc++.la > /usr/lib/libstdc++.la
root# ln -sv bash /bin/sh
root# ln -sv /proc/self/mounts /etc/mtab

/etc/passwdファイルの生成

passwdファイルを生成します。rootのパスワードは後で決定します。ここでは仮にxという文字が入れてあります。

root# cat > /etc/passwd << "EOF"
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/dev/null:/bin/false
daemon:x:6:6:Daemon User:/dev/null:/bin/false
messagebus:x:18:18:D-Bus Message Daemon User:/var/run/dbus:/bin/false
nobody:x:99:99:Unprivileged User:/dev/null:/bin/false
EOF

/etc/groupファイルの生成

以下コマンドでgroupファイルを生成しますが、ここで挙げたグループは約束事はなく、udevが必要とするものの他は慣用的なものです。筆者も作成時にはLFSbookに従いました。

root# cat > /etc/group << "EOF"
root:x:0:
bin:x:1:daemon
sys:x:2:
kmem:x:3:
tape:x:4:
tty:x:5:
daemon:x:6:
floppy:x:7:
disk:x:8:
lp:x:9:
dialout:x:10:
audio:x:11:
video:x:12:
utmp:x:13:
usb:x:14:
cdrom:x:15:
adm:x:16:
messagebus:x:18:
systemd-journal:x:23:
input:x:24:
mail:x:34:
nogroup:x:99:
users:x:999:
EOF

新たなシェルの起動

passwdとgroupファイルができたことでユーザー名とグループ名の名前解決が行われます。以下のコマンドで実行して新たなシェルを起動します。

root# exec /tools/bin/bash --login +h

ログファイルの生成

以下コマンドでログファイルを生成します。

root# touch /var/log/{btmp,lastlog,wtmp}
root# chgrp -v utmp /var/log/lastlog
root# chmod -v 664  /var/log/lastlog
root# chmod -v 600  /var/log/btmp

各種プログラムのビルドとインストール

ここではLFSbookの記述に従い順番通りソフトウェアをインストールしていきます。膨大な作業を全て記す誌面はありませんので、簡単にTIPSを記すことにします。

中断できるようにリスタート用のシェルスクリプトを作成(任意)

ここから先の作業時間がかかるので途中で中断することもあると思います。作業を再開する際にすぐに始められるように筆者は以下のスクリプトをホストシステム側に用意していました。これですぐに作業を再開できます。
restart.sh

#! /bin/sh
export LFS=/mnt/lfs
mount -v /dev/<lfs用のドライブ> $LFS
mount -v --bind /dev $LFS/dev
mount -v --bind /dev $LFS/dev
mount -vt devpts devpts $LFS/dev/pts -o gid=5,mode=620
mount -vt proc proc $LFS/proc
mount -vt sysfs sysfs $LFS/sys
mount -vt tmpfs tmpfs $LFS/run
chroot "$LFS" /tools/bin/env -i \
        HOME=/root                  \
        TERM="$TERM"                \
        PS1='\u:\w\$ '              \
        PATH=/bin:/usr/bin:/sbin:/usr/sbin:/tools/bin \
        /tools/bin/bash --login +h

GCCのコンパイルテストは長時間

マシンスペックにもよると思いますが、GCCをコンパイルした後に行うmake -k checkでのチェックはとても膨大で筆者がVirtualBox上で行った時には半日ぐらいは潰れてしまいました。これだけ膨大な時間かけたチェックですが、おそらく結果はエラーだらけだと思います。LFSbookにもhttp://www.linuxfromscratch.org/lfs/build-logs/7.7/http://gcc.gnu.org/ml/gcc-testresults/と比較して大きな違いがなければ次に進むように書いてあります。本当にこのチェックが必要だったのかという気持ちにもなりますが、ここでエラーが出てもあまり気にせずmake install後のチェックを重要視していけば良いのではないかと個人的には思っています。

ビルド後の後片付け

長いインストール作業お疲れ様でした。あとは後片付けをしましょう。

不要なファイル等の削除(任意)

この作業は必須ではありませんが、デバッグ用のファイルやリンクを削除することで要領を節約できます。

root# /tools/bin/find /{,usr/}{bin,lib,sbin} -type f \
    -exec /tools/bin/strip --strip-debug '{}' ';'

root# rm -rf /tmp/*

Chroot環境への再ログイン

システムに必要なソフトウェアをインストールしたので/ToolsへのPATHが不要となりました。ログインし直しましょう。

host# chroot "$LFS" /usr/bin/env -i              \
      HOME=/root TERM="$TERM" PS1='\u:\w\$ ' \
      PATH=/bin:/usr/bin:/sbin:/usr/sbin     \
      /bin/bash --login

$LFS/toolsの削除

/toolsはこの後の作業では使用しませんので削除します。

root# rm -rf /tools

最後に

LFSは教育的な実用的な便利さよりも学習的な部分に重きを置いているため、ソフトウェアのソースからのビルドだけでなく、設定ファイルも自作します。本当に手作りという感じですね。さて、今回までの作業でLFS構築作業は山場を超えて、あとはシステムとして機能させるための設定となります。自分で構築したシステムが起動するものも後少しです。
【関連記事】
LFS 7.7を構築する [Part 3 一時的環境の構築編]
LFS 7.7を構築する [Part 2 一時環境の構築準備編]
LFS 7.7を構築する [Part 1 LFS概略とホストシステム選択編]

Sponsored Link


Vim用のMarkdownプラグインmdforvimを改良しました

$
0
0

こんにちは。今回のテーマは『Vim用Markdownプラグインmdforvimを大幅改良しました』です。公開してからしばらく放置気味だったのですが、なんとか時間を見つけてメンテナンスを再開しました。今回は特にプレビュー部分をテコ入れしましたので記事としてご報告します。


【目次】
Vimプラグインmdforvimについて
Vim用Markdownプラグインmdforvimがもっと使いやすく
今後の予定
感想、バグ報告お待ちしてます

Vimプラグインmdforvimについて

mdforvimって何?

mdforvimなんてvimプラグイン知らないとおっしゃる大多数の方のために簡単に説明しておきます。mdforvimとは筆者が開発しているMarkdown記法を扱うための(ほぼ知名度ゼロの)Vimプラグインです。以下の機能を備えています。

  1. Vimで編集中のMarkdownをHTMLに変換
  2. MarkdownファイルをHTMLファイルとして保存
  3. 編集中のMarkdownファイルのリアルタイムプレビュー

01

インストール方法や使い方はコチラの記事を参照下さい。
※尚、ファイルの名称や数が変更されているためNeoBandleやVundleではアップデートに失敗する可能性があります。その場合はお手数ですが、一度削除して再インストールをお願いします。

特徴は?

VimでMarkdownを扱う多くの場合perlやpython、javascript等の外部のパーサーに依存してMarkdownをHTMLに変換しています。mdforvimではOSや外部プログラムに依存せず「インストールしたらVimがMarkdownエディタになるプラグイン」を目指してvimscriptで書かれています。探せば同様のプラグインはあると思うのですが見ないフリをしています。

Vim用Markdownプラグインmdforvimがもっと使いやすく

プレビュー機能が向上

mdforvimはもともと個人で使用するvimscriptで書かれたMarkdown/HTMLコンバーターでした。kannokanno氏のprevimにinspireされ急遽リアルタイムプレビュー機能をつけてリリースしたわけですが、「リアルタイム更新だからjavascriptで更新ボタンを連打すれば良いや」という完全な脳筋発想の造りでした。オマケでつけた機能とはいえ酷すぎました。反省しています。毎秒1回リロードするためにブラウザのスクロールができずに、長文になると下が見えない事態に陥っていました。

そこでjavascriptで別のjavascriptを動的に読み込むという、ポピュラーな手法でリロードさせることでスムーズなプレビューを実現しました。尚、プレビューは編集画面がそのままHTMLに変換されるため、いちいち保存する必要はありません。

Windowsでの文字化けに対応

そもそもiconvにて動的に生成されるファイルはutf-8で生成される設計にしておいたのですが、諸々のバグがありWindowsで実行すると日本語が文字化けしてしまう現象が起きていました。修正しましたのでWindowsでも正常に動作すると思います。Windows機保有していないためなかなかテストできないのが辛いところです。

今後の予定

参照型URLへの対応

参照型のURLとは

I get 10 times more traffic from [Google] [1] than from
[Yahoo] [2] or [MSN] [3].

  [1]: http://google.com/        "Google"
  [2]: http://search.yahoo.com/  "Yahoo Search"
  [3]: http://search.msn.com/    "MSN Search"

I get 10 times more traffic from [Google][] than from
[Yahoo][] or [MSN][].

  [google]: http://google.com/        "Google"
  [yahoo]:  http://search.yahoo.com/  "Yahoo Search"
  [msn]:    http://search.msn.com/    "MSN Search"

のような書き方です。現段階ではmdforvimは対応できておらず、今後対応させる予定です。

Qiita記法の拡張Markdownへの対応

まずはQiita記法のTable表記などは取り入れていきたいと考えています。現段階ではMarkdown元祖であるJohn Gruber氏のDARING FIREBALLを基本文法として取り組んでいますが、将来的にはCommonMarkへ移行することになるかと考えています。

プレビュー画面の自動スクロール

長い文章を作成する際にはブラウザ画面を手動でスクロールさせる必要があり面倒です。Vim上のカーソルに合わせてブラウザをスクロールさせたいと考えています。

バグとの戦い

この記事を書いている途中で既にHTMLの変換挙動がおかしい部分を発見してしまい残念な気分になっております。

感想、バグ報告お待ちしてます

一人で作成しているので見落としているポイントがあったり、使い勝手が悪い点があったりすると思います。使って頂いた感想をいただけると励みになりますし、改善のアドバイスなどいただけると大変助かります。

ただ、大変メンタルが弱いので「そもそも何でこんなの作った」などの存在否定や人格否定などはご遠慮願います。地味に辛いです。

最後に

まだ完全とは言えませんが、簡単なMarkdown文章作成には威力を発揮するレベルに成長してきていると思います。温かい目で見守っていただければ幸いです。

【関連記事】
VimをMarkdownエディタにするmdforvimプラグインを公開しました

Sponsored Link


Arch Linuxアップデート後にBluetoothヘッドセットが接続できなくなった時の対処方法

$
0
0

こんにちは。今回のテーマは『Arch Linuxアップデート後にBluetoothヘッドセットが接続できなくなった時の対処方法』です。久しぶりにArch Linuxのシステム全体をアップデートしたらBluetoothヘッドセットが接続できなくなりました。原因はpulseaudioのパッケージが分割されたことによる影響だったようです。同様のエラーに遭遇している方の参考になれば幸いです。


【目次】
アップデート後にBluetoothヘッドセットが接続できない
Vim用Markdownプラグインmdforvimがもっと使いやすく
pulseaudio-bluetoothをインストールして再接続

アップデート後にBluetoothヘッドセットが接続できない

筆者はいつもbluetoothctlを使用してCLIでヘッドセットを接続するのですが、今回は以下のようなエラーが出ました。

[bluetooth]# > connect <機器アドレス>
Attempting to connect to <機器アドレス>
Failed to connect: org.bluez.Error.Failed

ここでbluetoothのログを以下コマンドで確認してみることにしました。

$ systemctl status bluetooth

以下のような表示表示があります。

a2dp-sink profile connect failed for <機器アドレス> Protocol not available

ここでPulseAudioのパッケージが分割されたことを思い出しました。bluetoothヘッドセットを接続するにはpulseaudio-bluetoothパッケージが必要です。(Arch Linuxニュース参照)

pulseaudio-bluetoothをインストールして再接続

bluetoothヘッドセットを使えるようにするため早速pulseaudio-bluetoothをインストールしましょう。

$ sudo pacman -S pulseaudio-bluetooth

インストールが完了したらbluetoothctlで接続を試みます。

$ bluetoothctl
[bluetooth]# connect <機器アドレス>

今度は接続に成功しました。
スクリーンショット_2015-10-18_17-42-48

最後に

Arch Linuxは長いこと放置しておくと仕様が変わることが多く、思わぬエラーに見舞われることが良くあります。Arch Linuxの公式ページのニュースに目を通してシステムの更新についていくべきですが、一方で、大きな仕様変更が潜んでいることもあり、大事な作業時には更新を避けてそのまま・・・なんてことにもなりがちです。筆者のようにならないように定期的にメンテナンスをしましょう。

【関連記事】
Arch LinuxでBluetoothを使う
Arch LinuxでBluetoothヘッドセットを使う

Sponsored Link


Viewing all 226 articles
Browse latest View live