ラベル Linux の投稿を表示しています。 すべての投稿を表示
ラベル Linux の投稿を表示しています。 すべての投稿を表示

2017年1月14日土曜日

Ubuntu 16.04 LTS でDVDからISOファイルを生成する。

Ubuntu16.04LTS

DVDをリッピングして、ISOファイルを生成できるようにするまで。

必要なもの
dvdbackup: リッピング用のコマンド
libdvdread: リッピング用のライブラリ
libdvdcss: CSS解析のライブラリ
mkisofs: ISOファイルを生成するためのコマンド

各種インストール
# libdvdread4 インストール
sudo apt-get install libdvdread4

# libdvdcss2 インストール
# 途中、"了解"と"はい" を選択する必要あり
sudo apt install libdvd-pkg
sudo dpkg-reconfigure libdvd-pkg


# dvdbackupコマンド
sudo apt-get install dvdbackup

# mkisofsのインストール (すでに入っているっぽい)
sudo apt-get install genisoimage


実際にDVDのリッピングと、ISOファイルにするまでの実行例。
dvdbackupでリッピングして、mkisofsでISOファイルを生成する。
DVD_LABEL="LABEL"
OUTPUT_FILE ="output.iso"

# DVDコピー
# /dev/dvd は DVDがマウントされているディレクトリ
dvdbackup -M -i /dev/dvd -o ./ -n backupdata

# ISOファイル作成
mkisofs -r -udf -dvd-video -input-charset utf-8 -V $DVD_LABEL -o "$OUTPUT_FILE" backupdata

DVD_LABEL は、ISOファイルをマウントした際に、表示されるDVDラベルとなります。
DVDラベルとはISO9660フィールドというDVD再生時に表示される標題。
使える文字は半角英大文字と数字、あと「_」(半角アンダースコア)で、
32文字以内で表記する事と決まっている。
英小文字や半角スペースは禁止文字です。

2017年1月8日日曜日

Ubuntu 16.04 LTS インストール メモ (samba インストールまで)


# vim インストール
sudo apt-get install vim

# sambaのインストール
sudo apt-get install samba


# 設定ファイルを編集して、下記の項目を追記する。
sudo vim /etc/samba/smb.conf

[homes]
   comment = Home Directories
   browseable = no
   read only = no

# sambaで接続するユーザーを登録
# samba接続時に使うパスワードの入力も求められる。
sudo pdbedit -a USER_NAME

# 再起動
systemctl restart smbd

smb://192.168.xxx.xxx  で、ユーザーとパスを入力でホームディレクトリに接続可能になる。

前回の記事:
Ubuntu 16.04 LTS インストール メモ (java1.8, jenkins インストールまで)

Ubuntu 16.04 LTS インストール メモ (java1.8, jenkins インストールまで)

家のサーバーが停電により死んだ。。。
日経Linux に付属のUbuntu 16.04 LTS インストールディスクがあったので、これでサーバーインストールし直しだ。
Ubuntu 16.04 LTS インストール後、やったことをメモしておく。

とりあえずアップデート
sudo apt-get update
sudo apt-get upgrade

sshサーバーのインストール
これがなければ始まらない。
これでパスワード認証のsshはできるようになる。
sudo apt-get install openssh-server

サーバーを再構築した事で、ssh する際に下記の警告が発生。
WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
.ssh/know_hosts に前のホスト情報が残っているのが原因だが、それっぽい行を削除しても解決できなかったので、
乱暴なやりかただが、rm .ssh/know_hosts で消してやった。


oracle java1.8 のインストール
jenkinsとか使うからね〜
途中TabとEnterキーを使って、ライセンス同意が必要だよ。
Javaのダウンロードにめちゃくちゃ時間がかかった。。(なぜだろう)
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer

# インストール後のバージョン確認
java -version
# ==> java version "1.8.0_111"
# ==> Java(TM) SE Runtime Environment (build 1.8.0_111-b14)
# ==> Java HotSpot(TM) 64-Bit Server VM (build 25.111-b14, mixed mode)

jenkinsのイントール
wget -q -O - https://pkg.jenkins.io/debian/jenkins-ci.org.key | sudo apt-key add -
sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list'
sudo apt-get update
sudo apt-get install jenkins

# jenkins 起動
sudo service jenkins restart

ブラウザでjenkinsに接続(192.168.xxx.xxx:8080)すると、initialAdminPassword の入力を求められる。
パスワードは、下記のjeknins.logに出力されているので、コピーして入力するとよい。
less /var/log/jenkins/jenkins.log

今日はここまでだ。。

2016年4月29日金曜日

zsh導入記録

zshを使うようにしてみたので、ログインシェルへの設定など
導入した際の記録です。


Macのzsh導入

# zshのインストール
brew install zsh

#  /etc/shellsに "/usr/local/bin/zsh" を追記する
sudo vim /etc/shells

# chshでzshに変更
chsh -s /usr/local/bin/zsh

Cygwinのzsh導入


zshのインストール
apt-cyg install zsh

/etc/passwdファイル自体がない場合はmkpasswdで生成する
社内ネットワーク環境などでは大量のユーザーが出力されるみたいなので、-l -c オプションでローカルユーザーに限定しているみたい。
mkpasswdのオプションに関してはこちらを参照(http://d.hatena.ne.jp/i_k_b/20150514/1431590062)
mkpasswd -l -c > /etc/passwd

/etc/passwdのログインシェルを編集
:/home/(ユーザー名):/usr/bin/zsh

※環境変数のSHELL設定や、Cygwin.batのbashをzshにするなどの必要はないようです。

zgenの導入


zshのプラグイン管理ツール、プラグイン管理が楽になるので入れておいた方が良さげ。
oh-my-zsh、Antigen、Prezto、zgen、zplugなどがあるが、zgenとzplugが比較的最近のやつで、速くなっているそうだ。
zplugの方が色々と高機能っぽいが、設定が比較的ラクそうだったので今回はzgenで管理していこうと思います。

zgenをクローン
cd ~
git clone https://github.com/tarjoilija/zgen.git .zgen

.zshrcを用意する
# load zgen
source "${HOME}/.zgen/zgen.zsh"

# if the init scipt doesn't exist
if ! zgen saved; then
    echo "Creating a zgen save"

    zgen oh-my-zsh

    # plugins
    zgen oh-my-zsh plugins/git
    zgen oh-my-zsh plugins/sudo
    zgen oh-my-zsh plugins/command-not-found
    zgen load zsh-users/zsh-syntax-highlighting
    zgen load /path/to/super-secret-private-plugin

    # bulk load
    zgen loadall <<EOPLUGINS
zsh-users/zsh-history-substring-search
/path/to/local/plugin
EOPLUGINS
    # ^ can't indent this EOPLUGINS

    # completions
    zgen load zsh-users/zsh-completions src

    # theme
    zgen oh-my-zsh themes/arrow

    # save all to init script
    zgen save
fi



gitリポジトリの状況取得に時間がかかる場合、下記のgit config設定でリポジトリ状況を取得しなくできます。
超重たいgitリポジトリの場合は無効にしておいたほうがストレスないです。
git config --add oh-my-zsh.hide-status 1

プラグインの読み込み設定を変更したら、いったんリセットしましょう。
zgen reset

2016年2月14日日曜日

X11VNCを試してみる

前回のVNCサーバーの設定がうまくいかなかったので、X11VNCというのを試してみた。

こちらは、Xアプリケーションのセッションを個別に作成せずに、
単純に、ディスプレイの内容をそのままVNCで表示しているそうです。
Windowsのリモートデスクトップに近い感じなんですかね。
で、前回よりも設定が簡単かと思います。

# X11VNCのインストール
sudo apt-get install x11vnc


一旦、最低限のコマンドで動作するか確認
# パスワード設定
# pathを指定しない場合、デフォルトで~/.vnc/passwd に保存されるようです。
x11vnc -storepasswd

# x11vncの起動
x11vnc -usepw

# mac側で、接続確認 接続時に先ほどのパスワードを入力
vnc://xxx.xxx.xxx.xxx:5900

問題なくいけた!
ただ、このままだと接続を切るたびに、x11vncが終了するそうなので、
サービスとして、起動させる必要があります。


こちらの記事を参考に、initに設定します。
http://zettai-non-sugar.blogspot.jp/2012/09/ubuntu-1204-lts-ratpoison-x11vnc.html

# パスワードの設定
sudo x11vnc -storepasswd /etc/x11vnc.passwd

# /etc/init にサービスとして設定する
sudo vi /etc/init/x11vnc.conf
---------------
start on login-session-start
script
x11vnc -display :0 -auth /var/run/lightdm/root/:0 -forever -bg -o /var/log/x11vnc.log -rfbauth /etc/x11vnc.passwd -rfbport 5900
end script
---------------

# サービス起動
sudo initctl start x11vnc

これで、いつでもVNC接続可能です。
ラズパイとかに設定しておいても便利そうです。

2016年2月13日土曜日

Kodiを試してみる その3(GUI環境とKodiインストール)

もっかい、最初からやり直し。

# GUI環境のインストール ※めちゃ時間かかる。
sudo apt-get install ubuntu-desktop
# インストール後リブートすれば、GUI環境完成。
sudo reboot

# Kodiインストール
sudo apt-get install software-properties-common
sudo add-apt-repository ppa:team-xbmc/ppa
sudo apt-get update
sudo apt-get install kodi

virtualbox上で、kodiコマンド使うと今度は起動に成功しました。



vncサーバーでも操作したかったけど、接続するとうまく表示されない。。。
しばらく迷走しそうなのでこっちは諦めます。

一応やったこと
# インストール
sudo apt-get install vnc4server
# パスワードの設定
vncserver
vi .vnc/xstartup
-----------------
#!/bin/sh

# Uncomment the following two lines for normal desktop:
# unset SESSION_MANAGER
# exec /etc/X11/xinit/xinitrc

[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
#x-window-manager &
exec gnome-session &
----------------------

# vnc起動
vncserver :1

# macのFinderでサーバー接続
vnc://xxx.xxx.xxx.xxx:5901/



GUIを使わないで、簡単に設定できるやつないのかな〜

Kodiを試してみる その2(GUI環境とvncサーバー)

Kodiを使用する為に、Ubuntu14.04 にGUI環境とvncサーバーをインストールして、
macからリモートデスクトップで接続できるようにする。

# GUI環境インストール
下記のコマンドでも、GUI環境のインストールができるようですが、
sudo apt-get install xorg gnome-core gnome-system-tools gnome-app-install
vncで接続すると、うまく映らなかったので、
sudo tasksel
で、Ubuntu GNOME Desktopを選択してインストールしました。
参考URL: http://www.server-world.info/query?os=Ubuntu_14.04&p=x


# VNCサーバーをインストール
sudo apt-get install vnc4server

# パスワードの設定
vncserver

# xstartupに下記を追記
vi .vnc/xstartup
-----------------
exec gnome-session &
gnome-panel &
gnome-settings-daemon &
metacity &
nautilus -n &
gnome-terminal &
----------------------

# vncサーバー起動 ":1"の部分がディスプレイ番号
vncserver :1

# vncサーバー停止
vncserver -kill :1

# 5900番台がvncサーバーのListen
netstat -lt

# macのFinderでサーバー接続
# ポートは [5900 + ディスプレイ番号]
vnc://xxx.xxx.xxx.xxx:5901/

起動できたけど、肝心のkodiが起動できない。
ERROR: Unable to create GUI. Exiting

Kodiを試してみる

家にメディアサーバーを作ってみる。
ISOファイルも、ストリーム再生できるようになるようなので、
Kodi (旧XBMC)をUbuntu14.04にインストールして、再生できるか試してみる。

早速インストールの手順の確認
# Kodi wiki:
http://kodi.wiki/view/HOW-TO:Install_Kodi_for_Linux

# インストール手順
sudo apt-get install software-properties-common
sudo add-apt-repository ppa:team-xbmc/ppa
sudo apt-get update
sudo apt-get install kodi

# アンインストールする場合は下記の手順
sudo apt-get update
sudo apt-get remove kodi*
sudo apt-get purge kodi*
rm ~/.kodi/


# とりあえず、Ubuntuを最新状態に更新。
sudo apt-get update
sudo apt-get upgrade
更にインストール手順にしたがって、正常にインストールができた。

しかし、KodiってGUIで操作する必要があるのか!?
GUI環境と、vncサーバーをインストールすればmacからリモートデスクトップで操作できるようだ。

次は、GUIとvncサーバーのインストールをしよう。
続く。

2015年12月31日木曜日

RaspberryPi 画像撮影とDropBoxへアップロード。

RaspberryPiにカメラモジュールを付けたら、
撮影した画像をDropBoxへアップロードしてみましょう。

DropBoxのAPIを使って、撮影画像をアップロードするのに便利なスクリプトがあります。
https://github.com/andreafabrizi/Dropbox-Uploader
READMEに記載があるように、dropbox_uploader.shだけ使わせてもらいます。
curl "https://raw.githubusercontent.com/andreafabrizi/Dropbox-Uploader/master/dropbox_uploader.sh" -o dropbox_uploader.sh

※DropBoxのAPIを使うには、開発者登録と開発アプリの登録が必要になります。
https://www.dropbox.com/developers


dropbox_uploader.shをダウンロード後、一度スクリプトを実行しておきましょう。
DropBoxのAPI-Key, Secret-Keyが聞かれるのと、承認作業を求められるので、サクっとやってしまいましょう。
※dropbox_uploader.shは、bashでの起動を要求するのでbashを使うように。または実行権限を与えておくとラクかも
bash dropbox_uploader.sh 

入力した情報はデフォルトで ~/.dropbox_uploader に記録されるので、次回からは入力を省略できます。
-f オプションでファイルPATHを指定することもできます。

画像の撮影は、raspistillコマンドで
アップロードは、sh dropbox_uploader.sh upload で行います。
一連の動作をShellScriptにしましょう。ファイル名はtake_picture.shとしました。
# 画像ファイル名
filename=$(date +"%Y-%m-%d_%H:%M:%S").jpg

# 画像の撮影
 # -n: ラズパイのデスクトップにプレビュー画面を表示しない 
raspistill -n  -o "$filename"

# 画像のアップロード
bash dropbox_uploader.sh upload "$filename" .

crontabの設定
20分おきに撮影した画像をDropBoxへアップロードしてくれます。
crontab -e 
-----------------------------------------------------------
*/20 * * * * cd path/to/project; /bin/sh ./take_picture.sh > /dev/null 2>&1
-----------------------------------------------------------

続きの記事: RaspberryPi 画像撮影とDropBoxへアップロード。(削除編)
http://pro-tyablog.blogspot.jp/2015/12/raspberrypi-dropbox.html

2015年12月30日水曜日

RaspberryPiにRaspbianインストール後に行うこと

RaspberryPiにRaspbianをインストールした後、最低限必要な設定を3つ記載しておきます。
自分はCUI環境だけで使えればいいので、以下の設定のみで充分かなと。

1. 日本語が正しく表示されるように、ロケールの追加

sudo dpkg-reconfigure locales
ja_JP.UTF-8 UTF-8にチェックをつける
元々、en_GB.UTF-8 UTF-8だけにチェックが入っているので、
ja_JP.UTF-8 UTF-8に、追加でチェックを入れる。
[*] en_GB.UTF-8 UTF-8
[*] ja_JP.UTF-8 UTF-8

2. サーバーTimeが日本時間になるようにロケール設定

sudo dpkg-reconfigure tzdata
Asisa/Tokyoのロケールを選択
アジア > Tokyo


3. SDカードが3Gまでしか認識されないので、設定変更。

デフォルトでは、SDカード容量は32Gとかあるのに、OSで認識しているサイズは3G程度になっています。
設定することで、最大限まで認識させることができます。
sudo raspi-config
Expand Filesystem を選択し、了解する。

ディスク容量が増えていることを確認する
df -h


前回の記事: SDカードにRaspbian Jessieをインストールする。
http://pro-tyablog.blogspot.jp/2015/12/sdraspbian-jessie.html

2015年12月23日水曜日

SDカードにRaspbian Jessieをインストールする。(MacOSで)

RaspberryPi2 model Bをゲットしたので、SDカードにRaspbianのOSをインストールする。
SDカードにインストール後は、差し込んで電源に繋げばラズパイ起動できます。

https://www.raspberrypi.org/documentation/installation/installing-images/README.md
※installation guide のMac OSの項目を参考にしています。

下記のURLからRaspbian jessieのイメージをダウンロード
(Zipでダウンとロード、だいたい40分くらいかかった)
https://www.raspberrypi.org/downloads/raspbian/
# 挿しているSDカードの/dev/*を調べる
# FAT_32でフォーマットされていることを確認
diskutil list
------------------------------------------------------------------
/dev/disk4
#:                       TYPE NAME                    SIZE       IDENTIFIER
0:     FDisk_partition_scheme                        *32.2 GB    disk4
1:             Windows_FAT_32 NO NAME                 32.2 GB    disk4s1
------------------------------------------------------------------

# unmoundする
diskutil unmountDisk /dev/disk4

# ダウンロードファイルを解凍して、イメージファイルをSDカードに書き込む
# ddコマンド ... ファイルの直接コピー
#   if: 入力元
#   of: 出力先
sudo dd bs=1m if=2015-11-21-raspbian-jessie.img of=/dev/rdisk4
disk4 と rdisk4の違いに注意
数字は、diskutil listで表示した時の数字と同じ
ddコマンドで失敗したら、rdisk4ではなく、disk4を使ってみてと書いてある。


記事の続き: RaspberryPiにRaspbianインストール後に行うこと
http://pro-tyablog.blogspot.jp/2015/12/rasberrypiraspbian.html

2015年3月29日日曜日

マインクラフトサーバーをDockerで起動する

Dockerを勉強し始めたので、前回稼働させていたマインクラフトのサーバーをDockerで動かしてみようと思います。環境はvagrant上に作ったubuntu14.04の仮想マシンをホストとして、dockerイメージの作成をしていきます。

vagrant上のユーザー名はvagrantとしています。

# dockerのインストール
sudo apt-get update
sudo apt-get install docker.io

# dockerグループにvagrantユーザーを追加する
# dockerグループに追加したユーザーはsudoをつけなくてもdockerコマンドが使えるようになります。
# (設定したら一旦ログインし直さないと反映されない)
sudo gpasswd -a vagrant docker

# マインクラフトを動かすコンテナはcentos6.6のイメージをベースに使うことにします。
docker pull centos:centos6.6


マインクラフトの動作環境イメージを作成する為、Dockerfileを作成していきます。
mkdir -p ~/docker/minecraft
cd ~/docker/minecraft

# Dockerfileを作成
vi Dockerfile
----------------------------------------------
FROM centos:centos6.6
MAINTAINER tyabuta

# インストール作業(docker build時に実行される内容)
RUN yum update -y
RUN yum install -y java-1.8.0-openjdk.x86_64
RUN mkdir /minecraft.d

# 起動(docker run時に実行される内容)
WORKDIR /minecraft.d
CMD java -jar minecraft_server.1.8.3.jar nogui
----------------------------------------------

minecraft_serverのjarファイルを入れたディレクトリはdockerのホスト
/var/minecraft.d というディレクトリに配置し、コンテナ起動時にマウントさせます。

Dockerfileをもとにイメージをビルドします。
ビルドが完了するとminecraft_centosというイメージが作成されているはずです。(docker imagesで確認できる)
cd ~/docker/minecraft
docker build -t minecraft_centos .

あとは、dockerホストの/var/minecraft.dディレクトリをコンテナへマウントしてデーモン起動させればOKです!
起動したらdocker ps で動作しているのがわかると思います。
終了させるのは docker kill [ContainerId] で終了させられます。
docker run -d -v /var/minecraft.d:/minecraft.d -p 25565:25565 minecraft_centos






2015年3月8日日曜日

マインクラフトサーバー構築(minecraft_server)

マインクラフト初めてみました。
彼女と二人でやりたかったので、マルチプレイをする為にサーバーを構築していきます。

ギミックを組んで色々できるみたいなのを知って、面白そうだと思ったんで思い切ってアカウント作成しました!
価格は今の為替で2700円くらい?になってました。

家の周りを開拓するだけでも、没頭して直ぐに時間が過ぎてしまいます。
色々なにをするか相談するのも楽しいので、二人でやるのには丁度いいですね♪
見た目はレトロで、はたからみるとそんなに楽しく見えなかったんですが、結構はまりそうです。


インストールする環境
CentOS6.6
32bit


javaのインストール
OpenJDKで問題なく動作します。
su -
yum install java-1.8.0-openjdk-devel.i686

インストール先のディレクトリを作成しjarファイルをダウンロードしてきます。
mkdir minecraft.d
cd minecraft.d
wget https://s3.amazonaws.com/Minecraft.Download/versions/1.8.3/minecraft_server.1.8.3.jar


一旦実行すると、カレントディレクトリに、eula.txtとserver.propertiesファイルが作成されるので、
eula.txtはeula=flase を trueに変更します。
java -jar minecraft_server.1.8.3.jar nogui
vim eula.txt          # trueに変更
vim server.properties # 必要な設定を行う

eula.txt(同意する意味のtrueに変更)
#By changing the setting below to TRUE you are indicating your agreement to our EULA (https://account.mojang.com/documents/minecraft_eula).
eula=true

server.properties (pvpのみfalseに変更しました。)
spawn-protection=16
max-tick-time=60000
generator-settings=
force-gamemode=false
allow-nether=true
gamemode=0
enable-query=false
player-idle-timeout=0
difficulty=1
spawn-monsters=true
op-permission-level=4
resource-pack-hash=
announce-player-achievements=true
pvp=false
snooper-enabled=true
level-type=DEFAULT
hardcore=false
enable-command-block=false
max-players=20
network-compression-threshold=256
max-world-size=29999984
server-port=25565
server-ip=
spawn-npcs=true
allow-flight=false
level-name=world
view-distance=10
resource-pack=
spawn-animals=true
white-list=false
generate-structures=true
online-mode=true
max-build-height=256
level-seed=
enable-rcon=false
motd=A Minecraft Server

# 改めて、nohupを使ってログアウトしても実行するようにする
nohup java -jar minecraft_server.1.8.3.jar nogui &



あと、iptablesで、25565ポートの通信を許可しておく必要があります。
# iptablesの設定ファイル編集
su -
vim /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 25565 -j ACCEPT


# 再起動
vim /etc/init.d/iptables restart


マインクラフトのクライアント側で、マルチプレイ > AddServerでIPを指定すれば
プレイすることができます。
jarファイルと同じディレクトリに、logs, world、プレイヤーデータなどが作成されます。

2015年2月23日月曜日

brew install openssl でエラーが出る

環境CentOS6.6 x86

linuxbrewを使って、owncloudをインストールできるのかなと思ってやっていた時に
つまずいた話、結局owncloudをインストールするまでに至らなかったが、
opensslのインストール時に発生したビルドエラー対処法だけ記載します。

linuxbrew でopensslをインストールしようとした時に、ビルドエラーで進めない時の対処法
opensslビルド動作中にこんなエラーがでる

cryptlib.c:1: sorry, unimplemented: 64-bit mode not compiled in

ググると、32-bit環境にも関わらず、64-bit環境用にビルドしようとしてるとのこと
configureしてるところにオプションを指定してやればよいよと知ったが、brewってどうやってそこんところ弄るの?

fomulaってのがあって、Rubyで書かれたスクリプトがあるんだけど、
そこでconfigure用のコマンド文字列を生成しているみたい。
brew edit openssl ってするとそれを編集できる。
58行目あたりに、32 or 64bit の判定をしている部分があるけど、おそらくここで64bitが選ばれてしまうからだろう。。。

def arch_args
  return { :i386  => %w[linux-generic32], :x86_64 => %w[linux-x86_64] } if OS.linux?
    {
    :x86_64 => %w[darwin64-x86_64-cc enable-ec_nistp_64_gcc_128],
    :i386   => %w[darwin-i386-cc],
    }
end

# -- 省略

def install
  if build.universal?
    ENV.permit_arch_flags
    archs = Hardware::CPU.universal_archs
  elsif MacOS.prefer_64_bit?
    archs = [Hardware::CPU.arch_64_bit]
  else
    archs = [Hardware::CPU.arch_32_bit]
  end

  dirs = []

  archs.each do |arch|
    if build.universal?
      dir = "build-#{arch}"
      dirs << dir
      mkdir dir
      mkdir "#{dir}/engines"
      system "make", "clean"
    end

    arch=:i386 # 無理やりここで32-bit用にしてしまう。

    ENV.deparallelize
    system "perl", "./Configure", *(configure_args + arch_args[arch])
    system "make", "depend"
    system "make"

# -- 省略

上記のarch変数を直接書き換えることで、対応できた!

2013年1月4日金曜日

PerlのDBIモジュールを使ってSQLite3データベースを利用する。

最近、Perlの勉強を始めました。
Perlって取っ付きにくい感じがしてたんですが、Unix, Linux環境ではデフォルトでインストールされてるしモジュールが充実してるのでやりたい事を手っ取り早く実行できるじゃん!
って感動してます。
モジュールのインストールはppmやcpan、更にはapt-getで管理できちゃう。
やっぱりapt-getが一番楽な感じです。
数行のコーディングでもかなりの機能が実装できそうな言語ですね。

下記、Ubuntu12.04でPerlのDBIからSQLite3データベースを使う時の忘備録を記載します。
  1. perldocコマンドのインストール

    Perlのドキュメントを参照できるコマンドをインストールする。
    なくても良いけど、モジュールのPATHとかも調べられるようなのであると便利かと思う。
    $ sudo apt-get install perl-doc

    # Perlモジュールのドキュメントを読む。
    perldoc <モジュール名>


    # Perlモジュールのインストール先を調べる。
    perldoc -ml <モジュール名>


  2. DBD::SQLiteをインストール

    SQLiteを扱う為のDBD::SQLiteモジュールをインストールする。
    $ sudo apt-get install libdbd-sqlite3-perl

    apt-getでインストールする場合は、基本的に先頭にlibを付けて、小文字で表記。 ”::”は”-”に変わり、最後にPerlモジュールを表す -perl が付くようだ。
    apt-cache search dbd-sqlite などと検索すると良い。

- SQLite3 を利用するPerlのサンプルスクリプト -
use DBI
my $dbfile = "sample.sqlite3";
my $dbh = DBI->connect("dbi:SQLite:dbname=$dbfile");

# TODO:

$dbh->disconnect();
undef($dbh);


2012年11月24日土曜日

DNS ホスト名の名前解決ができなくなったら

動作環境:
Debian (squeeze)


DNS ホスト名の名前解決ができなくなった。
出来ていたものが出来なくなったので、理由は不明…。
nslookup tyabsite.net とやってもタイムアウトになる。

/etc/resolv.conf に下記のように
DefaultGateWayをネームサーバに設定すると解決できました。

nameserver 192.168.1.1


※ルーターがDNSサーバーで解決したものをLAN内のPCは使用する為、
ルーターのアドレス(DefaultGateWay)を設定する。

※192.168.1.1は環境によって変わります。
自身の環境のDefaultGateWayを調べるには、/sbin/route -n コマンドをつかう。


2012年11月10日土曜日

~/public_html を有効にする。

動作環境: Ubuntu 12.04

# ホームディレクトリにpublic_htmlディレクトリを作成しておく。
$ cd
$ mkdir public_html

# apache2 の設定
$ sudo a2enmod userdir
$ sudo /etc/init.d/apache2 restart

index.html ファイルを作成すれば
http://localhost/~username/ でアクセスできるようになる。

2012年11月9日金曜日

Vim (+Ruby)のコンパイル

vim でRubyの補完がしたくて、vim-rubyプラグインを導入したけど
vim --version した時に、+Rubyがないと意味がないみたいだ。
Ubuntu 12.04 のapt-get でインストールしたvim  は-Rubyなので、使えない。

動作環境: Ubuntu12.04

GoogleCode より、vimソースを取得して+Rubyでコンパイルする方法を記載する。
# mercurialというパッケージをダウンロード
$ sudo apt-get install mercurial

# hgコマンドが使えるようになったので、GoogleCodeからソースをクローン。
$ hg clone https://vim.googlecode.com/hg/ vim
$ cd vim

# 依存するパッケージをインストール
$ sudo apt-get install libncurses5-dev

# --enable-rubyinterpオプションを指定してconfigure
$ ./configure --with-features=huge --enable-multibyte --enable-rubyinterp

# makeしてインストール。 /usr/local/bin にインストールされる。
$ make
$ sudo make install

# /usr/binより前に /usr/local/bin が書かれていたら、
# vimコマンドで今回インストールしたvimが起動する。
$ echo $PATH
$ which vim

 - note 1 -

libncurses5-devをインストールしていないと、configureで下記のようなエラーがでる。
no terminal library found
checking for tgetent()... configure: error: NOT FOUND!
You need to install a terminal library; for example ncurses.
Or specify the name of the library with --with-tlib.

 - note 2 -

vim --versionで+Ruryを確認すると、/usr/binにあるほうのvimバージョンが表示される…。
/usr/local/bin/vim --versionで確認すると、ちゃんと+Rubyが確認できた。vimコマンドたたくと、/usr/local/bin/vimが起動するにも関わらずなんでだろ汗。

2012年10月24日水曜日

git on SkyDrive

git on SkyDrive を試してみた。
# SkyDrive 上にリポジトリを作成
mkdir ~/SkyDrive/Project.git
cd ~/SkyDrive/Project.git
git init --bare

# 作業ディレクトリへ移動しプロジェクト用のファイル作成
cd ~/work/Project
touch README

# 作業ディレクトリをgit初期化し、ファイルをコミット。
git init
git add .
git commit -m "first commit"

# SkyDrive 上のリポジトリをリモートに登録し、Push する。
git remote add origin ~/SkyDrive/Project.git
git push -u origin master

これで、SkyDrive 上にリポジトリ管理する事ができたので、
ほかのPCでも下記の用にして Project の作業ができる。
git clone ~/SkyDrive/Project.git

2012年10月9日火曜日

cdrecordコマンドでCDを焼く。(Linux)

ISOファイルからCDを焼く方法。
Ubuntu 12.04 LTS

▼CDドライブのデバイス番号を調べる。
$ cdrecord -scabus
scsibus1:
1,0,0 100) 'TSSTcorp' 'CDDVDW TS-L633A ' 'TM00' Removable CD-ROM
1,1,0 101) *
1,2,0 102) *
1,3,0 103) *
1,4,0 104) *
1,5,0 105) *
1,6,0 106) *
1,7,0 107) *
1,0,0 がCDドライブのデバイス番号(環境によって変わる)

▼デバイス番号とisoファイルを指定して焼く。
$ cdrecord -dev=1,0,0 -v -eject  -data image.iso

-v進捗を表示する。
-eject焼き終わったらEjectする。