メモ Linux


自分の使用したパソコンの設定メモのうち、Linuxに関するものです。2012/06現在、ほとんどがUbuntuです。

MariaDB(mysql Ver 15.1 Distrib 10.0.26-MariaDB)でNOT NULL

MariaDBに格納するデーターに、間違えて未入力のデーターを格納してしまったので制約でNOT NULLをつけようと。


ALTER TABLE [テーブル名] MODIFY COLUMN [カラム名] [カラムの型] NOT NULL;

して、INSERT INTO [テーブル名] VALUES ('','','','') したら空白文字列や0に丸まってしまいました。

無効データの制約

1.8.3.3 無効データの制約

デフォルトでは、MySQL は無効または不適切なデータ値を許容しており、これらをデータエントリに対する有効な値に強制的に変更します。ただし、厳密 SQL モードを有効にして、サーバーが不良値を拒否し、不良値が発生するステートメントを中止するという従来の方法に近い不良値の取り扱いを選択できます。セクション5.1.7「サーバー SQL モード」を参照してください。

だそうです。

SQL モードの設定

MySQL 5.6.6 以降でのデフォルトの SQL モードは NO_ENGINE_SUBSTITUTION で、MySQL 5.6.5 以前では、これは空白です (モードの設定なし)。

サーバー起動時に SQL モードを設定するには、コマンド行で --sql-mode="modes" オプションを使用するか、my.cnf (Unix オペレーティングシステム) または my.ini (Windows) などのオプションファイル内で sql-mode="modes" を使用します。modes は、カンマで区切られるさまざまなモードのリストです。SQL モードを明示的にクリアするには、コマンド行で --sql-mode="" を使用するかオプションファイル内で sql-mode="" を使用して、SQL モードを空の文字列に設定します。

STRICT_TRANS_TABLES

値を指定したとおりにトランザクションテーブルに挿入できない場合、ステートメントを中止します。非トランザクションテーブルの場合、値が単一行ステートメントで発生するか、複数行ステートメントの先頭行で発生した場合、ステートメントを中止します。詳細については、このセクションのあとの方で説明します。

だそうで設定ファイルを変更。


$ ls /etc/mysql/my.cnf
/etc/mysql/my.cnf


sudo vi /etc/mysql/my.cnf

[mysqld]
#
# * Basic Settings
#
sql-mode        = "STRICT_TRANS_TABLES"

に編集。


$ sudo systemctl restart mysql

してもう一度insertしてみます。


MariaDB [xxxx]> insert into xxxx values('', 'NULLテスト', '', '', '');
ERROR 1366 (22007): Incorrect integer value: '' for column 'xxxx' at row 1

いまいち上手いこと行っているかは分からないんですが、とりあえずエラーは出せました。以上メモです。

Raspbian jessieで保留のパッケージをアップグレード

apt-getで保留のパッケージをインストールする を参考に。


sudo apt-get dist-upgrade

でアップグレード。メモ。

Ubuntu16.04+lubuntu-desktopでノートPCサスペンド後にマウスカーソルが消える続き

launchpadをのぞいたらxorgのIntelドライバーのオプションを指定したらカーソル消えなくなったよ、と書いてあったので試しました。

Mouse cursor lost when unlocking with Intel graphics を参考に。


cd /usr/share/X11/xorg.conf.d/

sudo touch 20-intel.conf
sudo vi 20-intel.conf
cat ./20-intel.conf

Section "Device"
  Identifier "Card0"
  Driver "Intel"
  Option "AccelMethod" "uxa"
EndSection

上のような設定ファイルを書いてreboot。リブート後はサスペンドから復帰してもマウスカーソルが表示されました。以上メモです。

Ubuntu16.04+lubuntu-desktopでノートPCサスペンド後にマウスカーソルが消える

Ubuntu16.04+lubuntu-desktopでノートPCサスペンド復帰後にマウスカーソルが消えるので、


#!/bin/bash

sudo chvt 1 && sudo chvt 7

なシェルスクリプトをユーザーホームの適当な場所に置いてサスペンド復帰後にはたいています。サスペンド後のアンロック後に自動で実行されるようにすればさらに快適でしょう。

ぐぐってみたところ、グラフィックドライバーにIntelを使ってlight-lockerからアンロック戻るとマウスカーソルが消える、アップストリームにもレポートした、と幾つかページが引っかかりましたので、ポイントリリースでなくなっているといいなー、くらいです。

FMV-7000NA5/HにUbuntu16.04Serverをインストールしました

FMV-7000NA5/HにUbuntu12.04をインストールして使っていて。16.04がリリースされたタイミングでノートパソコンを買い換えてクリーンインストールしようかなと思っていましたが、このノートパソコンまだ使えないかなーと。

ですので今まで使っていたノートPCにUbuntu16.04Serverをインストールしてデスクトップ環境をインストールしました。

Ubuntu16.04のisoイメージをダウンロードしてインストーラーを立ち上げました。コケたので、Ubuntuでインストールディスクが起動しない場合を参考に、人型のマークとキーボードが表示されている画面でキーを押下、nomodesetを指定してインストーラー起動。

インストーラーの起動が遅かったので諦めました。Ubuntu16.04Serverのisoイメージをダウンロードしてインストーラー起動。立ち上がったのでOSをインストール。


sudo apt-get install ubuntu-desktop
sudo apt-get install lxde

してデスクトップ環境をインストール。ログイン画面が立ち上がりましたが、Unity以外のウインドウマネージャーの選択ボタンがログイン画面に表示されませんでした。

How To Switch Between GDM, LightDM, MDM Or KDM In Ubuntu [Quick Tip] を参考に、sudo dpkg-reconfigure gdm しましたが、gdmはインストールされていない、と表示されました。ですので、


sudo apt-get install gdm

でインストール。ログイン画面はlightdmを選択しました。その後GNOMEとUnityが選択できたのですが、LXDEが一覧に出なかったので、


sudo apt-get install xfce4

してウインドウマネージャーはxfce4を使ってみました。lxdeは改めて使おうと、


sudo apt-get remove lxde && sudo apt-get autoremove

しました。またいずれ。

日本語入力を設定しました。第417回 Ubuntu 16.04 LTSの日本語入力を参考に、[設定] - [言語サポート]を押下してパッケージをインストール。ログアウトして再ログイン。

ターミナルエミュレーターで日本語が入力できたので画面上のmozcのインジケーターを押下してかな入力に設定しました。

emacsをインストール。


sudo apt-get install emacs24

して、以前使用していたinit.elファイルでanthyの設定していた部分をなくしてemacs起動。EmacsでMozcを使うための設定を参考に、init.elに


(require 'mozc)
(setq default-input-method "japanese-mozc")
(global-set-key "\C-o" 'mozc-mode)

を記述してM-x eval-buffer。Ctrl-oで、ヘルパープロセスにアクセス出来ないとエラー。ヘルパーインストールしてないからなあ、と


sudo apt-get install emacs-mozc emacs-mozc-bin

でインストール。emacsで日本語の入力が出来ました。takaoフォントで表示させよう、とUbuntu に インストールした Emacs の設定:フォントを参考に設定。init.elは大体これくらいになりました。


;=========================
; 言語・文字コード関連の設定
;=========================
(set-language-environment "Japanese")
(set-terminal-coding-system 'utf-8)
(set-keyboard-coding-system 'utf-8)
(set-buffer-file-coding-system 'utf-8)
(setq default-buffer-file-coding-system 'utf-8)
(prefer-coding-system 'utf-8)
(set-default-coding-systems 'utf-8)
(setq file-name-coding-system 'utf-8)
;=========================
; melpa
;=========================
(require 'package)
(add-to-list 'package-archives
	     '("melpa" . "http://melpa.milkbox.net/packages/") t)
;=========================
; mozc
;=========================
(require 'mozc)
(setq default-input-method "japanese-mozc")
(global-set-key "\C-o" 'mozc-mode)
;=========================
; 日付挿入。
;
;=========================
(defun my-get-date-gen (form) (insert (format-time-string form)))
(defun my-get-date () (interactive) (my-get-date-gen "%Y/%m/%d %H:%M:%S"))
(global-set-key "\C-cd" 'my-get-date)
;=========================
; ビープ音を抑制
;=========================
(setq ring-bell-function '(lambda ()))
;=========================
;フォント
;=========================
(cond (window-system
    (set-default-font "monospace")
    (set-fontset-font (frame-parameter nil 'font)
        'japanese-jisx0208
        '("monospace" . "unicode-bmp"))))
;=========================
;フレームサイズ・位置・色など
;=========================
(setq initial-frame-alist
	(append (list
		   '(width . 100) ;; フレームの幅
		   '(height . 32) ;; フレームの高さ
		   '(top . 0)	  ;; Y 表示位置
		   '(left . 0)	  ;; X 表示位置
		   )
		initial-frame-alist))
(setq default-frame-alist initial-frame-alist)
;=========================
; Misc
;=========================
(mouse-wheel-mode)        ;;ホイールマウス
(global-font-lock-mode t) ;;文字の色つけ
(setq line-number-mode t) ;;カーソルのある行番号を表示
(auto-compression-mode t) ;;日本語infoの文字化け防止
(set-scroll-bar-mode 'right) ;;スクロールバーを右に表示
(setq frame-title-format
(concat "%b - emacs@" system-name)) ;;フレームのタイトル指定
(global-set-key "\C-h" 'delete-backward-char) ;;Ctrl-Hでバックスペース

あとはちょこちょこ設定しました。以上で使いたい範囲の設定は出来たので設定を終えました。xfce4はFreeBSDで使っているので、いずれUbuntu16.04にLXDEを設定します。

次のクリーンインストールは20.04の予定です。PenIV 3.0Ghzのノートパソコンをその時期まで使えれば御の字です。

PentiumIVはセキュリティ的になんとかかんとかで、ない人にはセキュリティはないのでしょうが、ペンタゴンを月の裏側まで吹っ飛ばす訳ではないのでこのまま使います。以上です。

追記。sudo apt-get install lxde && sudo apt-get install lubuntu-desktop でLXDEが設定できました。

sudo apt-get install lxde && sudo apt-get install lxde-common でもやってみたのですが、ログアウトボタンを押下した時に、ファイルがないと警告されたので諦めました。

abiwordは使う予定がないので、sudo apt-get remove abiword && sudo apt-get autoremove しました。LXDなども使う予定はないのでアンインストールしようかなあ。追記です。

RaspberryPiで/tmpのファイルを起動時に消す設定を変更


$ ls /etc/default/rcS
/etc/default/rcS

$ sudo vi /etc/default/rcS


TMPTIME=5

にしました。これだと5日前以前のファイルを消去するようです。以上、メモです。

RaspberryPi2を設定

RaspberryPi2を買ったので設定しました。メモです。

OSのインストールから。Download Raspbian for RaspberryPiからダウンロード。unzipで展開。

MacMiniにはSDカードのリーダーライターの口がついていたのでそれを使用します。


$ diskutil list

$ sudo diskutil unmountDisk [SDカードのデバイス名]

$ sudo dd bs=1m if=./2015-05-05-raspbian-wheezy.img of=[SDカードのデバイス名]


dd: /dev/disk1: Permission denied

ロックをかけていたのでそのせいでしょうか。外してもう一度。変わらずパーミション禁止です。

バッドテクニックですがSDカードが読み出しのみを見て、書き込みラッチを禁止側に少しずらしてSDカードを挿してみたらディスクユーティリティーで読み込み/書き込みと表示されたのでddしたら書き込みが始まりました。

書き込みが終わったら、Finderの機能でアンマウント。RaspberryPi2にSDカードを指して起動。


$ sudo raspi-config

せよと表示されたので実行。ディスク領域を増やしました。


$ sudo apt-get update && sudo apt-get upgrade

一応やっておきます。

ロケールの設定。Localeの設定(Ubuntu)を参考に。


$ sudo dpkg-reconfigure locales

ja_JP.UTF-8を追加。リブート。


$ sudo locale-gen ja_JP.UTF-8

$ sudo update-locale LC_ALL=ja_JP.UTF-8

なんかこの辺こしょこしょ作業して覚えていません。

2016/02/07に追記。


$sudo dpkg-reconfigure locales

ja_JP.UTF-8を選択。リブート。.bashrcに記述。


export LANGUAGE=ja_JP.UTF-8
export LANG=ja_JP.UTF-8
export LC_ALL=ja_JP.UTF-8

タイムゾーンを変えます。


$ sudo dpkg-reconfigure tzdata

あとはセキュリティは疑心暗鬼になるので苦手ですが、セキュリティの設定をしました。

CentOS6でffmpegのコンパイルその2

mp3もエンコード出来るようにしたいな、とffmpegを再コンパイルしました。

How to quickly compile FFmpeg with mp3, aac+ and x264を参考に。


$ ./configure --enable-gpl --enable-libx264 --enable-libmp3lame --enable-nonfree

ERROR: libmp3lame >= 3.98.3 not found

まあ入れていないので。

lameを参考に。

LAME (Lame Aint an MP3 Encoder)から3.98.3を探したが見当たらないので3.98.4にしました。

OSXでダウンロードしてftpで転送。


$ gzip -cd lame-3.98.4.tar.gz | tar -xvf -

$ cd lame-3.98.4

$ ./configure

$ make

$ sudo make install

$ sudo ldconfig

ffmpegのディレクトリーに移動してもう一度configure。通りました。


$ make

$ sudo make install

インストールされました。以上、メモです。

CentOS6でffmpegのコンパイル

CentOS6でffmpegをコンパイルしました。CentOS7 ffmpegをソースからインストールを参考にしました。自分はAACを使う予定はないので入れませんでした。


$ sudo yum groupinstall "Development Tools" "Development Libraries"

Index of /projects/yasm/releases/をWEBブラウザーで見てみました。2015/09/12現在1.3.0が最新っぽいです。yasmをインストールしました。


$ curl -O http://www.tortall.net/
projects/yasm/releases/yasm-1.3.0.tar.gz

$ gzip -cd ./yasm-1.3.0.tar.gz | tar -xvf -

$ cd ./yasm-1.3.0

$ ./configure

$ make

$ sudo make install

x264をインストールしました。


$ git clone git://git.videolan.org/x264

$ cd x264

$ ./configure --enable-shared

$ make

$ sudo make install

ffmpegをインストールしました。


$ git clone git://source.ffmpeg.org/ffmpeg.git ffmpeg

$ cd ffmpeg

$ ./configure --enable-gpl --enable-nonfree --enable-libx264

標準出力に何も出てこなくてだんまりですが待ちます。しばらく待ったらばらっと出てきました。


$ make

覚悟はしていましたが、やっぱり時間がかかります。


$ sudo make install


$ which ffmpeg
/usr/local/bin/ffmpeg

$ ffmpeg -i ...
ffmpeg: error while loading shared libraries: libx264.so.148: cannot open shared object file: No such file or directory

コケた。ldconfigしないといけないかな?


$ ls -ltra /usr/local/lib | grep x264
lrwxrwxrwx.  1 root root       14  9月 12 11:46 2015 libx264.so -> libx264.so.148
-rwxr-xr-x.  1 root root  1446919  9月 12 11:46 2015 libx264.so.148

シェアードライブラリー自体は/usr/local/lib に格納されているようです。


$ sudo ldconfig

動きました。あとは上手いこと行くかどうかその都度確認します。メモです。

CentOS6にrtmpdump2.4

CentOS6にインストールしているrtmpdumpをバージョンアップ。ソースを取得してコンパイルしました。CentOSでソースからプログラムをコンパイルしてインストールするのは初めてなのでどきどきでした。

RTMPDumpによるNHKラジオ放送の録音(現状メモ)を参考に。


$ which git

ないのでインストール。


$ sudo yum install git\*

$ git clone git://git.ffmpeg.org/rtmpdump

取得したディレクトリーに移動して、


$ make SYS=posix

handshake.h:1077: error: ‘RC4_handle’ undeclared (first use in this function)
handshake.h:1077: error: expected ‘;’ before ‘keyIn’
handshake.h:1078: error: expected ‘;’ before ‘keyOut’
handshake.h:1160: 警告: assignment makes pointer from integer without a cast
handshake.h:1195: error: ‘SHA256_DIGEST_LENGTH’ undeclared (first use in this function)
handshake.h:1277: error: ‘keyIn’ undeclared (first use in this function)
handshake.h:1277: error: ‘keyOut’ undeclared (first use in this function)
handshake.h:1277: error: too many arguments to function ‘InitRC4Encryption’

コケた。SHA256のレングスが定義されていないとかだったら暗号関係かな?

RTMPDump ver.2.4をソースからイントールradikoの録音 in Cent OS6 パート1を参考に。


$ sudo yum install openssl-devel

もう一度コンパイル。


$ make SYS=posix

コンパイルは通った。


$ ./rtmpdump --version
./rtmpdump: error while loading shared libraries: librtmp.so.1: cannot open shared object file: No such file or directory

READMEとMakefile見る。Makefileにinstallエントリーはあるっぽいです。


$ make install

$ which rtmpdump
/usr/local/bin/rtmpdump

あれま/usr/local/ にインストールされるのかあ。Makefileを見てみたらそうでした。


$ rtmpdump --version
rtmpdump: error while loading shared libraries: librtmp.so.1: cannot open shared object file: No such file or directory

/usr/local/lib にシェアードライブラリーのパスが通っていないんでしょう。

共有ライブラリへパスを通す見て、cronから動かすときもあるのでld.so.confに書いてしまおうと。


$ sudo vi /etc/ld.so.conf

ld.so.conf.dに設定ファイル格納しているよ、と書かれていたので、


$ pwd
/etc/ld.so.conf.d

$ sudo touch rtmpdump.conf

$ sudo vi rtmpdump.conf

/usr/local/lib を記述。/usr/local/libにシェアードライブラリーのパス通すのはrtmpdumpだけの話ではないのでrtmpdump.confって名前はどうなんだかな、ですがまずはこのファイル名にしました。


$ sudo ldconfig

$ rtmpdump --version
RTMPDump v2.4
(c) 2010 Andrej Stepanchuk, Howard Chu, The Flvstreamer Team; license: GPL

こんな感じでした。以上、メモです。

MariaDBのアップグレード中に止まったのでserviceファイルをmysql.serviceに戻しました

Ubuntu15.04Serverをインストールしているノートパソコンにsshでログインしたら、アップデートできるパッケージがありますよ、と表示されました。

ですのでsudo apt-get update && sudo apt-get upgradeしました。そうしたらmariadbのアップデートで止まったのでメモします。


mariadb-server-10.0 (10.0.20-0ubuntu0.15.04.1) を設定しています ...
invoke-rc.d: mysql.service doesn't exist but the upstart job does. Nothing to start or stop until a systemd or init job is present.

serviceファイルはmariadb.serviceって名前に変えていました。別のターミナルからログインしてsudo apt-get upgradeのプロセスをkill。


$ cd /lib/systemd/system
$ sudo systemctl disable mariadb
Removed symlink /etc/systemd/system/multi-user.target.wants/mariadb.service.


$ sudo mv ./mariadb.service ./mysql.service

$ sudo systemctl enable mysql.service

$ sudo systemctl start mysql

$ sudo systemctl status mysql
● mysql.service - MariaDB Server
   Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)


sudo apt-get update && sudo apt-get upgrade

E: dpkg は中断されました。問題を修正するには 'sudo dpkg --configure -a' を手動で実行する必要があります。

$ sudo dpkg --configure -a

最後まで通りました。もう一度sudo apt-get update && sudo apt-get upgradeしてみます。


アップグレード: 0 個、新規インストール: 0 個、削除: 0 個、保留: 0 個。

ノートパソコンを再起動してからログインしたら、パッケージがいくつアップグレードできますの表示がアップグレード前のままでした。


$ cat /var/lib/update-notifier/updates-available

8 packages can be updated.
8 updates are security updates.

$ sudo echo > /var/lib/update-notifier/updates-available

内容を消しておきました。またアップグレード出来るパッケージが出たら内容が更新されるでしょう。

以上、メモです。

CentOS6でmailコマンド

cron動いた後、メールが届いてますぜ、とシェルに表示されたのでmailコマンドを打ったけれどNot Foundだったのでインストールしました。sudo yum install mailx でインストール出来ました。メモ。

RubyのGemのアップグレード

sudo gem update でインストールされているGemをアップグレードしてくれるそうです。メモ。

Ubuntu15.04にインストールしたMariaDBでrootでログイン

新しくWordPressのページ作ろうかなとrootでログインしようとしたらログイン出来なかったので作業メモです。


mysql -u root -p
Enter password: 
ERROR 1698 (28000): Access denied for user 'root'@'localhost'

エラーになった。mariadb止めて、--skip-grant-tablesでmariadbを起動して確認。


sudo systemctl stop mariadb

sudo systemctl status mariadb

止まっているのを確認。


sudo mysqld_safe --skip-grant-tables &
mysql -p root

use mysql;

select Host,User,Password from user;

+--------------+------------------+-------------------------------------------+
| Host         | User             | Password                                  |
+--------------+------------------+-------------------------------------------+
| localhost    | root             |                                           |
| 127.0.0.1    | root             |                                           |

なんでか知らないけれどPasswordが空になっている。mysqld_safeで立ち上げたのkillってsudo systemctl start mariadbしてから、


sudo mysqladmin password [パスワード] -u root -p

してみた。もう一度--skip-grant-tablesで立ち上げてみてuserテーブル見てみる。


sudo mysqld_safe --skip-grant-tables --general-log &

mysql -u root

use mysql;

MariaDB [mysql]> select Host,User,Password from user;
+--------------+------------------+----------+
| Host         | User             | Password |
+--------------+------------------+----------+
| localhost    | root             | XXX      |
| 127.0.0.1    | root             |          |

パスワードは設定されたっぽげだけれども、


$ mysql -u root -p
Enter password: 
ERROR 1698 (28000): Access denied for user 'root'@'localhost'

結局ダメ。ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) を見て、


use mysql;

update user set plugin=' ' where User='root';
flush privileges;

したらログインできました。メモ。

WordPressの文言変更

WordPressの文言変更。メモ。poファイルを編集してmoファイルを作成。WordPressをインストールしてあるディレクトリーに移動して文言を検索。


grep -R [文言] *

見つかった。poファイルとmoファイルをバックアップしてからpoファイルを編集。


vi twentyeleven-ja.po

編集したpoファイルからmoファイルを作成。


msgfmt -o twentyeleven-ja.mo twentyeleven-ja.po

WordPressで構築している室内メモWEBLOGのページをリロード。文言の編集が反映されているのを確認。以上、メモです。

MariaDBのserviceファイル作成続き

MariaDBのserviceファイル作成続き。パソコンを再起動したらMariaDBが上がっていなかった。そもそもで、"mariadb"という名前ではブート時の起動設定していなかったので、


sudo vi mariadb.service

[Install]
WantedBy=multi-user.target
のコメントを外す。


$ sudo systemctl enable mariadb
Created symlink from /etc/systemd/system/multi-user.target.wants/mariadb.service to /lib/systemd/system/mariadb.service.

して再起動。起動時にmariadbが起動しました。以上、メモです。

MariaDBのserviceファイルを作成した

MySQLのソースからけっぱって来たserviceファイルを使用していたのですが、mysqlのままだとなんだかなあと思ったのでMariaDBと名乗りだけ変更しました。


cd /lib/systemd/system

sudo systemctl stop mysql
sudo mv ./mysql.service mariadb.service

sudo vi ./mariadb.service


# MariaDB systemd service file

[Unit]
Description=MariaDB Server
After=network.target
After=syslog.target

#[Install]
#WantedBy=multi-user.target

[Service]
User=mysql
Group=mysql
PermissionsStartOnly=true
#ExecStartPre=/usr/share/mysql/mysql-systemd-start pre
ExecStart=/usr/bin/mysqld_safe
#ExecStartPost=/usr/share/mysql/mysql-systemd-start post
TimeoutSec=600
Restart=on-failure
RuntimeDirectory=mysqld
RuntimeDirectoryMode=755

こんな感じで編集しました。


sudo systemctl daemon-reload

sudo systemctl start mariadb


$ sudo systemctl status mariadb
● mariadb.service - MariaDB Server
   Loaded: loaded (/lib/systemd/system/mariadb.service; static; vendor preset: enabled)
   Active: active (running)
 Main PID: 16088 (mysqld_safe)
   CGroup: /system.slice/mariadb.service
           ├─16088 /bin/bash /usr/bin/mysqld_safe
           └─16225 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql -...

こんな感じ。

mysqlコマンドでテーブルのSELECTが出来るのを確認しましたし、室内でメモ代わりに使っているWordPressが閲覧とエントリーのポストができるのも確認しました。以上、メモです。

Ubuntu15.04ServerにインストールしたMySQLをMariaDBに移行しました

Ubuntu15.04に上げたからかどうか分かりませんが、Ubuntu15.04に上げた後にMySQLのmysqlコマンドを使ってselect * from [TABLE名] where [カラム名]='日本語条件';と入力したら日本語条件が取りこぼされて。

libeditが--enable-widecでコンパイルされてないのかなあ、とsudo apt-get source libeditでソースを取得して--enable-widecが付いてるの確認してコンパイルして入れ替えてみてもmysqlコマンドで日本語入力が出来ませんでした。

なのでMariaDBに移行してみました。裏でMySQLのビルドをしながら移行したら、途中でsystemdがあかんことになったっぽくってぐだぐだな移行になりました。


$ sudo apt-cache search mariadb

mariadb-serverとかmariadb-clientが一覧されました。MySQLを止めてから両方インストールしてみます。


$ sudo systemctl status mysql
● mysql.service - MySQL Community Server
   Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
...

止める。


$ sudo systemctl stop mysql
$ sudo systemctl status mysql
● mysql.service - MySQL Community Server
   Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
   Active: inactive (dead)

インストール。


$ sudo apt-get install mariadb-server mariadb-client

MariaDBのインストール中、mysqlを削除しにかかると表示されました。データーベースのダンプはしておきましたので削除されてもいいかなーとそのまま進めました。

クライアントはmysqlって名前なんかい? そのまま使えるかなあ。

本当にMariaDBをインストールしますか? というダイアログが出たので、はいを選択してスペース。インストール終わり。

MariaDBのmysqlコマンドがlibedit使っているかどうか確認。


$ which mysql
/usr/bin/mysql
$ ldd /usr/bin/mysql
	linux-gate.so.1 =>  (0xb7721000)
	libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xb76f7000)
	libreadline.so.5 => /lib/i386-linux-gnu/libreadline.so.5 (0xb76be000)
	libncurses.so.5 => /lib/i386-linux-gnu/libncurses.so.5 (0xb7696000)
	libtinfo.so.5 => /lib/i386-linux-gnu/libtinfo.so.5 (0xb7673000)
	libz.so.1 => /lib/i386-linux-gnu/libz.so.1 (0xb7658000)
	libdl.so.2 => /lib/i386-linux-gnu/libdl.so.2 (0xb7652000)
	libstdc++.so.6 => /usr/lib/i386-linux-gnu/libstdc++.so.6 (0xb755d000)
	libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xb7510000)
	libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xb7355000)
	/lib/ld-linux.so.2 (0xb7722000)
	libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xb7338000)
$ ls -ltra /usr/bin/mysql
-rwxr-xr-x 1 root root 3816892  4月 17 01:44 /usr/bin/mysql

readline使ってる。これなら日本語が入力出来るかもしれない。


$ mysql --version
mysql  Ver 15.1 Distrib 10.0.17-MariaDB, for debian-linux-gnu (i686) using readline 5.2

$ mysqld --version
mysqld  Ver 10.0.17-MariaDB-0ubuntu1 for debian-linux-gnu on i686 ((Ubuntu))

MariaDBに置き換わったようです。


$ sudo systemctl start mysql
Failed to start mysql.service: Unit mysql.service is masked.

MariaDBのインストール中にマスクします、と表示されていたのでそれはOK。後でマスク外せばいいです。


$ which mysql_secure_installation
/usr/bin/mysql_secure_installation

$ sudo mysql_secure_installation

Enter current password for root (enter for none): 
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2 "No such file or directory")
Enter current password for root (enter for none): 
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2 "No such file or directory")
Enter current password for root (enter for none): 

サービスが上がっていないので設定できない。上げてみる。mariadb.serviceなのか、mysql.serviceなのかどっちなのかしらん。


$ sudo systemctl enable mariadb.service
Failed to execute operation: No such file or directory

$ sudo systemctl start mariadb.service
Failed to start mariadb.service: Unit mariadb.service failed to load: No such file or directory.

mariadb.serviceじゃなくてmysql.serviceなのかな? MySQLのマスク外します。


$ sudo systemctl unmask mysql

$ sudo systemctl unmask mysql
Removed symlink /etc/systemd/system/mysql.service.
$ ls -ltra /etc/systemd/system/my*
ls: /etc/systemd/system/my* にアクセスできません: そのようなファイルやディレクトリはありません

$ sudo systemctl enable mysql
Synchronizing state for mysql.service with sysvinit using update-rc.d...
Executing /usr/sbin/update-rc.d mysql defaults
Executing /usr/sbin/update-rc.d mysql enable

$ sudo systemctl start mysql
Failed to start mysql.service: 接続がタイムアウトしました

あれま。どうなんだかなあ。
後で見てみれば、この段階で既にsystemdがあかんことになっていたのですが、気づかなかったので/lib/system/systemd 配下のファイルを編集しました。

確認はしていないですが、多分、systemdがあかんことになっていなければ、


sudo systemctl unmask mysql
sudo systemctl enable mysql
sudo systemctl start mysql

で行けそうです。ですが気付かずに、mysql.serviceをMySQLのソースから取ってきてしまいました。

MySQLのソースのdebianディレクトリーの中に格納されていた、mysql...serviceファイルをコピーして/lib/systemd/systemにmysql.serviceという名前で格納。


/lib/systemd/system$ sudo cp /home/.../src/mysql-5.6-5.6.24/debian/mysql-server-5.6.mysql.service ./mysql.service


#ExecStartPre=/usr/share/mysql/mysql-systemd-start pre
ExecStart=/usr/bin/mysqld_safe
#ExecStartPost=/usr/share/mysql/mysql-systemd-start post

/usr/share/mysql/mysql-systemd-startというファイルはないのでコメントアウト。こんなファイルになりました。


# MySQL systemd service file

[Unit]
Description=MySQL Community Server
After=network.target
After=syslog.target

#[Install]
#WantedBy=multi-user.target

[Service]
User=mysql
Group=mysql
PermissionsStartOnly=true
#ExecStartPre=/usr/share/mysql/mysql-systemd-start pre
ExecStart=/usr/bin/mysqld_safe
#ExecStartPost=/usr/share/mysql/mysql-systemd-start post
TimeoutSec=600
Restart=on-failure
RuntimeDirectory=mysqld
RuntimeDirectoryMode=755

ついでに/etc/init.dの下のファイルを削除しました。


$ sudo tar -cvf mysql.tar ./mysql
./mysql
$ sudo rm -i ./mysql
rm: 通常ファイル `./mysql' を削除しますか? y

その次、「Plugin 'unix_socket' is not loaded」と表示されて接続できないエラーに手を付けました。


$ sudo mysqld_safe &
$ mysql -u root
ERROR 1524 (HY000): Plugin 'unix_socket' is not loaded

エラーになる。

/etc/mysql/my.cnfに


plugin-load-add = auth_socket.so

と記述しても


$ mysql -u root -p
Enter password: 
ERROR 1524 (HY000): Plugin 'unix_socket' is not loaded

同様のエラー。

sudo journalctl -l | grep mysql したら、インストール時のログで「トラブルがあった時は次のコマンドで立ち上げるとよい」的に書いてあったので実行してみます。


[...] mysqld_safe[31679]: shell> /usr/sbin/mysqld --skip-grant --general-log &


$ sudo -u mysql /usr/sbin/mysqld --skip-grant --general-log &[1] 2017
$ mysql -u root
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 2
Server version: 10.0.17-MariaDB-0ubuntu1-log (Ubuntu)

Copyright (c) 2000, 2015, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> 

接続できました。

Cannot access mariadb after upgrading to Ubuntu 15.04: Plugin 'unix_socket' is not loaded を見て、


INSERT INTO mysql.plugin (name, dl) VALUES ('unix_socket', 'auth_socket');

MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.08 sec)

MariaDB [(none)]> quit;
Bye

を挿入。ぼちぼちで進めます。


$ sudo systemctl status mysql
Failed to get properties: 接続がタイムアウトしました

$ sudo systemctl status mysql
Failed to get properties: 接続がタイムアウトしました
$ sudo systemctl status mediatomb
Failed to get properties: 接続がタイムアウトしました

MariaDBだけではなく、全体的にいけてないっぽい。裏でMySQLのコンパイル走らせてるからか。

コンパイルが終わるまで待ちます。…いつ終わるんだか分かりませんけれども。Ctrl-Cで止めてもいいですが、どうだかなあ。

結局Ctrl-Cでコンパイルを止めました。取得したソースのディレクトリーもrm -rfで消しました。

リブート時にもsystemdに接続できなかったっぽげでおっかなかったですが、リブート後、OSをインストールしてあるパソコンの画面から直接操作したらmysqlコマンドでデーターベースに接続できたのでOSXからsshで接続を試してみます。日本語入力できました。

また、以前使用していたデーターベースやユーザーは移行されているようで、そのまま使えました。

ちなみに、なんかsshでログインしたら次のリブート時にfsckすると表示されたのでもう一度リブート。

リブートして、読書ログに使用しているWordPressに書き込めるのを確認。mysqlコマンドでMariaDBに接続して、日本語が入力できるのも確認。


$ sudo systemctl status mysql
● mysql.service - MySQL Community Server
   Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
   Active: active (running)

ステータスを見たらActiveでした。「MySQL Community Server」って名乗りはmysql.serviceのDescriptionを編集すれば変えられるかしら。それに、mariadb.serviceって名前でファイル作ってsystemctlコマンドでなんだったかのオプションを引数にとって登録できそうです。

ぽちぽちで使います。以上、メモです。

WordPressを4.2.2にアップグレードしました

室内でなし崩し的にファイルサーバーっぽくなっているUbuntu15.04にインストールしているWordPressにアクセスしたら、4.2.2にアップグレード出来ますと表示されました。

adminでログインして更新したら、更新ファイルを展開できませんでした、的なエラーが表示されました。アップグレード画面からリンクが張られていた、WordPress のアップグレードを参考に、手でファイルを置き換えて更新しました。

現在WordPressが展開されているディレクトリーをtarでまとめてバックアップ。同じディレクトリーにwordpress-4.2.2-ja.zipを置き、unzip -l で確認。

wordpressというディレクトリーに展開される様子。その名前のディレクトリーはないので、unzipで展開。

wp-includesを取り替え。


cd ./[wordpressをインストールしているディレクトリー]
rm -rf ./wp-includes/
cp -r ./../wordpress/wp-includes/ .

wp-adminを取り替え。


rm -rf ./wp-admin
cp -r ./../wordpress/wp-admin/ .

wp-contentの内容を上書き。


cd wp-content
cp -r ./../../wordpress/wp-content/* .

一応wp-config.phpをバックアップ。それからWordPressをインストールしているディレクトリーのルートディレクトリーのファイルを上書き。


cd ./../
cp ./../wordpress/*.* .

その後、WordPressのログイン画面にWEBブラウザーでアクセスしたら、データーベースをアップデートしますと表示されたのでボタン押下。

その後ログイン出来たのでログインしました。以上、メモです。

アップグレードしたUbuntu15.04Serverにgit-daemon-runを設定しました

アップグレードミス手作業でつじつま合わせメモその二です。Ubuntu15.04にgit-daemon-runをインストールしました。


$ sudo apt-get install git-daemon-run

runit (2.1.2-3ubuntu1) を設定しています ...
start: Unable to connect to Upstart: Failed to connect to socket /com/ubuntu/upstart: 接続を拒否されました
dpkg: パッケージ runit の処理中にエラーが発生しました (--configure):
 サブプロセス インストール済みの post-installation スクリプト はエラー終了ステータス 1 を返しました

まあエラー。


$ sudo systemctl status runit
● runit.service - Runit service supervision
   Loaded: loaded (/lib/systemd/system/runit.service; enabled; vendor preset: enabled)
   Active: active (running) since 土 2015-05-02 13:48:23 JST; 1min 1s ago
 Main PID: 14596 (runsvdir)
   CGroup: /system.slice/runit.service
           ├─14596 runsvdir -P /etc/service log: ...............................
           ├─14597 runsv git-daemon
           ├─14598 svlogd -tt /var/log/git-daemon
           └─14599 /usr/lib/git-core/git-daemon --verbose --reuseaddr --base-...

 5月 02 13:48:23 xxx systemd[1]: Started Runit service supervision.
 5月 02 13:48:23 xxx systemd[1]: Starting Runit service supervision...
 5月 02 13:48:26 xxx systemd[1]: Started Runit service supervision.
 5月 02 13:49:16 xxx systemd[1]: Started Runit service supervision.
Hint: Some lines were ellipsized, use -l to show in full.

あれ? 起動してる?

OSX Yosemiteからgit pullしたらpull出来てしまいました。あとはapt-getの時にエラーさえ出なければそれでいいかなあ。

runitのインストール後スクリプトで失敗している、とエラーが表示されていたので、なんかのスクリプトファイルで処理してるべや、とlocate runitして適当に探しました。


sudo vi /var/lib/dpkg/info/runit.postinst 

Upstart使ってたとこコメントアウト。アップグレードミスって、Upstartの実行ファイルが残ってしまっているのかも知れません。


#if [ -x /sbin/start ]; then #provided by upstart
#  /sbin/start runsvdir
#fi


$ sudo apt-get install runit
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています                
状態情報を読み取っています... 完了
runit はすでに最新版です。
runit は手動でインストールしたと設定されました。
アップグレード: 0 個、新規インストール: 0 個、削除: 0 個、保留: 0 個。
2 個のパッケージが完全にインストールまたは削除されていません。
この操作後に追加で 0 B のディスク容量が消費されます。
続行しますか? [Y/n] y
runit (2.1.2-3ubuntu1) を設定しています ...
git-daemon-run (1:2.1.4-2.1) を設定しています ...
Service git-daemon already added.
ok: run: git-daemon: (pid 14885) 0s


$ sudo systemctl status runit
● runit.service - Runit service supervision
   Loaded: loaded (/lib/systemd/system/runit.service; enabled; vendor preset: enabled)
   Active: active (running) since 土 2015-05-02 13:48:23 JST; 13min ago
 Main PID: 14596 (runsvdir)
   CGroup: /system.slice/runit.service
           ├─14596 runsvdir -P /etc/service log: ...............................
           ├─14597 runsv git-daemon
           ├─14598 svlogd -tt /var/log/git-daemon
           └─14885 /usr/lib/git-core/git-daemon --verbose --reuseaddr --base-...

 5月 02 13:48:23 xxx systemd[1]: Started Runit service supervision.
 5月 02 13:48:23 xxx systemd[1]: Starting Runit service supervision...
 5月 02 13:48:26 xxx systemd[1]: Started Runit service supervision.
 5月 02 13:49:16 xxx systemd[1]: Started Runit service supervision.
 5月 02 13:54:49 xxx systemd[1]: Started Runit service supervision.
 5月 02 13:54:52 xxx systemd[1]: Started Runit service supervision.
 5月 02 14:00:37 xxx systemd[1]: Started Runit service supervision.
 5月 02 14:00:40 xxx systemd[1]: Started Runit service supervision.
Hint: Some lines were ellipsized, use -l to show in full.

手元のOSX Yosemiteのemacsのmagitからpullして編集してcommitしてpush出来ました。また、FreeBSD10.1のemacsのmagitからpullして編集してcommitしてpush出来ました。このまま使います。

/sbin/start が残っているのおかしいのかな? オペレーションミスでアップグレードに失敗してしまったかも知れません。

16.04はクリーンインストールしようかなあ。だいたいそれくらいの気持ちで考えておきます。

追記。dpkg -l | grep upstart したら、


ii  upstart                             1.13.2-0ubuntu13                    i386         event-based init daemon - essential binaries
rc  upstart-bin                         1.13.2-0ubuntu13                    all          event-based init daemon - transitional dummy package

と残っていました。sudo dpkg --listfiles upstart したら、


...
/sbin/start
/sbin/reload
/sbin/stop
/sbin/status
/sbin/restart

でした。ここらへんどうせコケるからいらね、と、sudo apt-get remove upstart してリブートしました。

とりあえず、gitとapache2とftpとsshとsmbと…と、使いたいデーモンのstatusはactiveだったし、OSX Yosemiteからざっと確認して使えたので削除してしまってよかったのではないかと。

アップグレードしたUbuntu15.04Serverにmediatombを設定しました

systemd目当てで、Ubuntu15.04Serverにアップグレードして見ました。オペレーションミスでアップグレードに失敗したっぽくって、手動でつじつま合わせた作業をメモします。

sudo systemctl start mediatomb すると、Unable to connect to Upstartっつって廃止されたUpstartに接続しに行くので設定ファイルを編集しました。

/etc/init.d/mediatomb をバックアップ取って削除。

/etc/default/mediatomb は元々あったのを使用して、systemdの設定ファイルを合わせました。(編集してない。)


# Set whether the daemon should be started. Set this value to anything
# but 'yes' to enable the daemon
NO_START="no"

# Additional options that are passed to the daemon.
OPTIONS=""

# The network interface for MediaTomb to bind to and for which the multicast
# routing entry should be added; "" if the route shouldn't be added at all.
# For example: INTERFACE="eth0"
#INTERFACE=""
INTERFACE="eth0"

# The route command and arguments to be used if INTERFACE is defined.
# These variables should normally be left unmodified.
ROUTE_ADD="/sbin/route add -net 239.0.0.0 netmask 255.0.0.0"
ROUTE_DEL="/sbin/route del -net 239.0.0.0 netmask 255.0.0.0"

# The user and group that MediaTomb should be run as.
USER="mediatomb"
GROUP="mediatomb"

/lib/systemd/system/
mediatomb.service を編集。


[Unit]
Description=UPnP MediaServer
After=NetworkManager-wait-online.service network.target

[Service]
Type=forking
EnvironmentFile=/etc/default/mediatomb
PIDFile=/run/mediatomb.pid
ExecStartPre=/bin/grep -q USER /etc/default/mediatomb
ExecStartPre=/bin/grep -q GROUP /etc/default/mediatomb
ExecStartPre=/bin/grep -q INTERFACE /etc/default/mediatomb
ExecStartPre=-/sbin/route add -net 239.0.0.0 netmask 255.0.0.0 $INTERFACE
ExecStartPre=-/sbin/ifconfig $INTERFACE allmulti
ExecStart=/usr/bin/mediatomb -d -u $USER -g $GROUP -P /run/mediatomb.pid -e $INTERFACE -c /etc/mediatomb/config.xml
ExecStopPost=-/sbin/route del -net 239.0.0.0 netmask 255.0.0.0
ExecStopPost=-/sbin/ifconfig $INTERFACE -allmulti

[Install]
WantedBy=multi-user.target


sudo systemctl daemon-reload

sudo systemctl start mediatomb


sudo systemctl status mediatomb

Main PID: 13788 (mediatomb)
   CGroup: /system.slice/mediatomb.service
           └─13788 /usr/bin/mediatomb -d -u mediatomb -g mediatomb -P /run/me...

http://[hostname]:49152/ に接続してディレクトリーを指定してdb構築。動画もOSX YosemiteにインストールしてあるVLCから見えました。作業日2015/05/02。メモ。

追記。sudo systemctl enable mediatombして、リブートしてsudo systemctl status mediatombして確認したらfailedだった。試しにそのままsudo systemctl start mediatombしてみたら起動した。

ブート中になんか失敗してるのかなー、ログに出さないとわっかんないなー、と、


ExecStart=/usr/bin/mediatomb -d -u $USER -g $GROUP -P /run/mediatomb.pid -e $INTERFACE -l /etc/mediatomb/mediatomb.log -c /etc/mediatomb/config.xml

にしてリブート。そうしたら、ログに


2015-05-02 19:34:20   ERROR: Could not determine interface address: 要求アドレス
に割り当てられません
2015-05-02 19:34:20   ERROR: Could not find interface: eth0

と記録されていた。じゃあNICが上がった後にmediatomb上がればいいんじゃない、systemdありがとう、と、


After=network.target systemd-networkd-wait-online.service network-online.target systemd-networkd.service ifup-wait-all-auto.service

と記述して、sudo systemctl daemon-reload してからsudo reboot。リブート後にsudo systemctl status mediatombしてみたら上がっていました。mediatomb.serviceは結局、


[Unit]
Description=UPnP MediaServer
After=network.target systemd-networkd-wait-online.service network-online.target systemd-networkd.service ifup-wait-all-auto.service
#After=NetworkManager-wait-online.service network.target systemd-networkd.service

[Service]
Type=forking
EnvironmentFile=/etc/default/mediatomb
PIDFile=/run/mediatomb.pid
ExecStartPre=/bin/grep -q USER /etc/default/mediatomb
ExecStartPre=/bin/grep -q GROUP /etc/default/mediatomb
ExecStartPre=/bin/grep -q INTERFACE /etc/default/mediatomb
ExecStartPre=-/sbin/route add -net 239.0.0.0 netmask 255.0.0.0 $INTERFACE
ExecStartPre=-/sbin/ifconfig $INTERFACE allmulti
#ExecStart=/usr/bin/mediatomb -d -u $MT_USER -g $MT_GROUP -P /run/mediatomb.pid -l $MT_LOGFILE -m $MT_HOME -f $MT_CFGDIR -p $MT_PORT -e $MT_INTERFACE 
ExecStart=/usr/bin/mediatomb -d -u $USER -g $GROUP -P /run/mediatomb.pid -e $INTERFACE -l /etc/mediatomb/mediatomb.log -c /etc/mediatomb/config.xml
ExecStopPost=-/sbin/route del -net 239.0.0.0 netmask 255.0.0.0
ExecStopPost=-/sbin/ifconfig $INTERFACE -allmulti

[Install]
WantedBy=multi-user.target

Afterはもっと詰められそうですが、こんな感じになりました。メモ。

DebianをJessieにアップグレードしました

DebianをJessieにアップグレードしました。Debian 8 (jessie) リリースノート (32 ビット PC 用)を参考に作業しました。2015/05/01に作業。

まずはwheezyのパッケージを最新にしました。


sudo apt-get update && sudo apt-get upgrade

今までのパッケージの残りファイルを削除。


$ cd /etc
$ ls -ltra *.dpkg*
-rw-r--r-- 1 root root 7134  4月  5  2014 ca-certificates.conf.dpkg-old

なんか証明書の設定ファイルかなあ。消しました。


$ sudo rm -i ca-certificates.conf.dpkg-old


$ sudo apt-get autoremove


/etc/apt$ sudo vi ./sources.list

Jessieに変更。


deb http://ftp.jp.debian.org/debian jessie-updates main contrib
deb-src http://ftp.jp.debian.org/debian jessie-updates main contrib

deb http://ftp.jp.debian.org/debian/ jessie main contrib non-free


$ sudo apt-get update


$ sudo apt-get -o APT::Get::Trivial-Only=true dist-upgrade

アップグレード: 466 個、新規インストール: 238 個、削除: 8 個、保留: 1 個。
285 MB のアーカイブを取得する必要があります。
この操作後に追加で 355 MB のディスク容量が消費されます。


$ df -h
  
ファイルシス                                           サイズ  使用  残り 使用% マウント位置
rootfs                                                    73G  1.6G   68G    3% /

大丈夫っぽげ。


$ sudo apt-get autoremove
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています                
状態情報を読み取っています... 完了
アップグレード: 0 個、新規インストール: 0 個、削除: 0 個、保留: 468 個。


$ sudo apt-get clean
$ sudo apt-get upgrade

リリースノートが表示されるのでざっとみてページャーを抜けたらごんごんパッケージのアップグレードが走りました。終わったら、


$ sudo apt-get dist-upgrade

してごんごんアップグレードしました。

次に不要になったパッケージのパージ。


$ sudo dpkg -l | awk '/^rc/ {print $2}'
We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:

    #1) Respect the privacy of others.
    #2) Think before you type.
    #3) With great power comes great responsibility.

...
foomatic-filters
libcupsdriver1:i386
libescpr1:i386
libsnmp15

数少ないのでコピーアンドペーストでパージ。


sudo apt-get purge foomatic-filters
sudo apt-get purge libcupsdriver1:i386
sudo apt-get purge libescpr1:i386
sudo apt-get purge libsnmp15

また、


以下のパッケージが自動でインストールされましたが、もう必要とされていません:

と表示されたので、sudo apt-get autoremoveした。

その後、確認でsudo dpkg -l | awk '/^rc/ {print $2}'したらさらに一覧が表示された。一覧の数が多かったので、


$ sudo apt-get purge $(sudo dpkg -l | awk '/^rc/ { print $2 }')

で削除。


以下のパッケージは「削除」されます:
  libasound2* libbind9-80* libcolord1* libdns88* libffi5* libgd2-xpm*
  libgphoto2-2* libgphoto2-port0* libgssglue1*
  libgstreamer-plugins-base0.10-0* libgstreamer0.10-0* libisc84* libisccc80*
  libisccfg82* liblcms1* liblwres80* libmpc2* libopenjpeg2* liborc-0.4-0*
  libpoppler19* libreadline5* libslp1* libsystemd-login0* libtiff4*

libsystemd-login0を削除しますというのが怖かったのですが削除。

削除した後にsudo dpkg -l | awk '/^rc/ { print $2 }'したら一覧が表示されなかったのでreboot。

リブートした後、無線LANアクセスポイントがiPodTouchから見えて、使えました。

ノートパソコンの画面を閉じるとサスペンドするっぽいのでモニターを閉じるとサスペンドされるのを防止を見て解決。


$ ls -ltra /etc/systemd/logind.conf
-rw-r--r-- 1 root root 750  4月 18 01:37 /etc/systemd/logind.conf
$ sudo vi /etc/systemd/logind.conf


[Login]
HandleLidSwitch=ignore


sudo systemctl restart systemd-logind

OKとかFailとかでないけれど、sudo systemctl statusで見ると再起動はしたっぽい? モニターを閉じてみます。

モニターを閉じても無線LAN切れなかったので大丈夫そうです。しばらく使います。某お菓子な方の西日本方面の車載配信をしばらく聞いても途切れなかったのでこのまま使います。

UbuntuServer14.04にWN-G150UMを接続して無線LAN親機にした

UbuntuServer14.04にWN-G150UMを接続して無線LAN親機にした。

後になって思えば、How to create an accesspoint using a RealTek 8192cu Usb Wifi Dongleの流れでした。

Ubuntu Server14.04をインストールしたノートパソコンにWN-G150UMを挿して起動してみる。


$ sudo lsusb
Bus 001 Device 002: ID 04bb:094c I-O Data Device, Inc. 

ドライバーのインストール。

USB無線LANアダプタdebian/ubuntu/LMDE で 無線LAN子機 WN-G150UMK を認識させるによればWN-G150UMはRealtecの8192cuを使用しているらしい。

Ubuntuのセットアップ事項を参考にRealTek - DownloadsよりOSXでダウンロード、ftpでUbuntuServer14.04に転送。 アーカイブをunzipで展開。出来たディレクトリーで、


sudo sh ./install.sh

gccがないとエラー。そう言えば入れてなかった。


sudo apt-get install gcc

でインストール。再度シェルスクリプトを使用してコンパイル。


  .../RTL8188C_
  8192C_USB_linux_v4.0.2_9000.20130911/
driver/rtl8188C_8192C_
usb_linux_v4.0.2_9000.20130911/
os_dep/linux/os_intfs.c:313:3:
error: implicit declaration of function ‘create_proc_entry’
[-Werror=implicit-function-declaration]

.../RTL8188C_8192C_
USB_linux_v4.0.2_9000.20130911/
driver/rtl8188C_8192C_
usb_linux_v4.0.2_9000.20130911/
os_dep/linux/os_intfs.c:332:8:
error: dereferencing pointer to incomplete type
   entry->write_proc = proc_set_log_level;

なんかエラーになるので別のドライバーをダウンロードする。


git clone https://github.com/dz0ny/rt8192cu.git
make
sudo make install


.../rt8192cu$ sudo make install
install -p -m 644 8192cu.ko  /lib/modules/3.13.0-46-generic/kernel/drivers/net/wireless/
/sbin/depmod -a 3.13.0-46-generic
echo "blacklist rtl8192cu" >> /etc/modprobe.d/blacklist.conf

blacklist.confへの追加はmake installの時にやってくれたっぽい。


sudo lsmod | grep 8192

表示されない。


.../rt8192cu$ sudo modprobe -r rtl8192cu
.../rt8192cu$ sudo modprobe 8192cu
.../rt8192cu$ lsmod | grep 8192
8192cu                572775  0 

表示された。


.../rt8192cu$ iwconfig
wlan0     unassociated  Nickname:"<WIFI@REALTEK>"
          Mode:Auto  Frequency=2.412 GHz  Access Point: Not-Associated   
          Sensitivity:0/0  
          Retry:off   RTS thr:off   Fragment thr:off
          Power Management:off
          Link Quality:0  Signal level:0  Noise level:0
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

lo        no wireless extensions.

eth0      no wireless extensions.

認識された。再起動してもwifiデバイスが認識されるか確認。認識されている。

無線LANインターフェイスの設定をした。


$ ls -ltra /etc/network/interfaces
-rw-r--r-- 1 root root 268 11月 25  2012 /etc/network/interfaces

あった。編集。


auto wlan0
allow-hotplug wlan0
iface wlan0 inet static
    address 192.168.2.1
    netmask 255.255.255.0
    network 192.168.2.0
    broadcast 192.168.1.255
    post-up /bin/echo "1" > /proc/sys/net/ipv4/ip_forward

二台目なので192.168.2.0/255.255.255.0で。


sudo ifup wlan0

sudo apt-get install hostapd

/etc/hostapd/hostapd.confがなかったので作成。


interface=wlan0
driver=rtl8192cu
ssid=[SSID名]
hw_mode=g
channel=11
wpa=2
wpa_passphrase=[パスフレーズ]
wpa_key_mgmt=WPA-PSK
rsn_pairwise=CCMP


$ sudo service hostapd stop
$ sudo service hostapd start

してもなんにも表示されませんでしたが、それは/etc/default/hostapd に、設定ファイルの位置を指定するエントリーを書いていないからでした。/etc/default/hostapd に、


  DAEMON_CONF=
  "/etc/hostapd/hostapd.conf"

を記述。


$ sudo service hostapd stop
 * Stopping advanced IEEE 802.11 management hostapd                      [ OK ] 
$ sudo service hostapd start
 * Starting advanced IEEE 802.11 management hostapd                      [fail] 

エラー。


sudo hostapd /etc/hostapd/hostapd.conf

$ sudo hostapd /etc/hostapd/hostapd.conf 
Configuration file: /etc/hostapd/hostapd.conf
Line 2: invalid/unknown driver 'rtl8192cu'
1 errors found in configuration file '/etc/hostapd/hostapd.conf'
Failed to set up interface with /etc/hostapd/hostapd.conf
Failed to initialize interface

じゃあUbuntu を無線 LAN ルータとして稼働させるを参考にドライバーはnl80211で。


$ sudo hostapd /etc/hostapd/hostapd.conf 
Configuration file: /etc/hostapd/hostapd.conf
nl80211: Driver does not support authentication/association or connect commands
nl80211 driver initialization failed.
hostapd_free_hapd_data: Interface wlan0 wasn't started

結局エラー。ダメ元でカーネルをアップグレードしても同じエラー。

How to create an accesspoint using a RealTek 8192cu Usb Wifi Dongleによれば、apt-get installでインストールされるhostapdはRealTek 8192cuに対応してないっぽい。

hostapdをRealTekからダウンロードしたソースファイルからコンパイル。


cd ./RTL8188C_8192C_
USB_linux_v4.0.2_9000.20130911/
wpa_supplicant_hostapd/
wpa_supplicant_hostapd-0.8_rtw_r7475.20130812/hostapd

make

コンパイルしたhostapdとhostapd_cliを入れ替えた。これからOSのバージョンのアップデートの際に、無線LANドライバーのインストールとhostapdの入れ替えを手動でやらなくてはならない。バージョンアップに伴って、自分で手動でやらなくて良くなるかどうかは不明。

ちなみにカーネル入れ替えたのでドライバーをもう一度コンパイルした。それからhostapd.confを以下のように書いた。


interface=wlan0
driver=rtl871xdrv
#driver=nl80211
ssid=[SSID]
hw_mode=g
channel=11
wpa=2
wpa_passphrase=[PASS]
wpa_key_mgmt=WPA-PSK
rsn_pairwise=CCMP

以上の設定ファイルを使用してhostapdを試しで起動したらエラーは出なかった。


sudo service hostapd start

OKだった。


sudo apt-get install isc-dhcp-server

sudo vi /etc/dhcp/dhcpd.conf


subnet 192.168.2.0 netmask 255.255.255.0 {
  range 192.168.2.2 192.168.2.254;
  option routers 192.168.2.1;
  option domain-name-servers 192.168.0.1;
}


sudo service isc-dhcp-server restart


sudo iptables -A POSTROUTING -t nat -s 192.168.2.0/24 -o eth0 -j MASQUERADE

sudo apt-get install iptables-persistent

してルーティングの設定を保存。iPodTouchかららじるらじるが聞けましたし、ニコニコ動画も見られました。以上、メモ。

ハードディスクのSMARTの簡単な診断

ハードディスク障害かを参考に。


sudo smartctl -t short /dev/[デバイス名]

すると2分待ってください、と表示されるので待って、


sudo smartctl -l selftest /dev/[デバイス名]

すると結果が一覧されました。メモ。

MySQLでデーターベースの一覧とユーザーの一覧

rootでmysqlにログインして、show databases; 、 select user from mysql.user; 。以上、メモです。

Ubuntu Server 14.04でハードディスクのSMART情報を参照する

Ubuntu Server 14.04にログインしたら、ファイルシステムに異常が発見されたのでreboot後にfsckします、的なメッセージが表示されたのでSMART情報を参照しました。


$ sudo smartctl [デバイス名] -i -d sat -A

RawReadErrorやReallocated Sectorは0だったけれど…。ハードディスクのデーターをバックアップして、rebootしてfsck走らせてもらいます。

CentOSのバージョン確認

CentOSのバージョン確認方法。


$ cat /etc/redhat-release
CentOS release 6.6 (Final)

以上、メモです。

glibcのバージョン確認

GHOST脆弱性で室内でなしくずし的にファイルサーバーっぽくなっているLinuxマシンのglibcのバージョンを確認したかったので確認した時のメモ。

インストール済パッケージの確認方法 with Ubuntuglibcに重大な脆弱性を参考に。

Ubuntu 14.04 ServerとDebian Wheezy


$ sudo dpkg -l | grep libc-bin

CentOS6.6


$ sudo yum list installed | grep glibc

以上、メモです。

gitのリポジトリー作成

gitのリポジトリーを作成しました。

サーバー側


$ sudo mkdir jaku.git
$ sudo chown gitdaemon ./jaku.git/
$ cd jaku.git
$ sudo -u gitdaemon git --bare init --shared
Initialized empty shared Git repository in [ディレクトリー]/jaku.git/

クライアント側


$ git clone git://[サーバー名]/jaku.git
Cloning into 'jaku'...
warning: You appear to have cloned an empty repository.
Checking connectivity... done.

$ cd jaku
$ touch jaku.txt
$ touch moral.txt
$ git add ./jaku.txt
$ git add moral.txt
$ git commit
[master (root-commit) fef6b87] 創作のプロット新規作成。

 2 files changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 jaku.txt
 create mode 100644 moral.txt

$ git push -u origin master

Counting objects: 3, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 279 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To git://[サーバー名]/jaku.git
 * [new branch]      master -> master
Branch master set up to track remote branch master from origin.

以上、新しくリポジトリーを作成しました。

UbuntuServer12.04を14.04にバージョンアップしました

12.04は2017年にEOLですが、16.04が最後の32bit版のリリースになるかも、というgihyo.jpでの記事を見て、12.04 → 14.04 → 16.04と使おうと、なし崩しに室内ファイルサーバーっぽく使っているUbuntuServer12.04を14.04にバージョンアップしました。

Ubuntu Weekly Recipe 第337回 12.04から14.04へアップグレードする際に気をつけるべきことTrustyTahr/ReleaseNote Ja を参考にしました。


sudo apt-get update ; sudo apt-get upgrade

してパッケージを最新に。10.04からのアップグレード時にdo-release-upgradeはすでにインストールしていたので、


sudo do-release-upgrade

元々rootでsshでログインしないので、rootでのSSHパスワード認証は無効にしました。sambaの設定ファイルは既存のファイルを残しました。

アップグレードが終了し、室内で閲覧しているWordPressの動作を確認したところDocumentRootがデフォルトのDocumentRootでした。apache2設定しなきゃならないのかあ、と。


cd /etc/apache2/sites-available

/etc/apache2/sites-available$ sudo a2dissite ./000-default.conf
Site ./000-default already disabled

/etc/apache2/sites-available$ sudo a2ensite ./[設定ファイル名]
ERROR: Site ./[設定ファイル名] does not exist!

エラーになりました。Apache2 on ubuntu で a2ensite すると does not exist と言われるときの対処法によれば、設定ファイルに.confの拡張子が必要でした。

拡張子に.confつけて000-default.confからコピーして、DocumentRootを任意に変更してsudo service apache2 reload。もう一度ブラウザーからアクセスしてみたところ、Forbiddenでした。/var/log/apache2/error.logには


AH01630: client denied by server configuration [DocumentRootのディレクトリーパス]

とエラーが。apacheで「client denied by server configuration: ・・・」というエラーが出たUpgrading to 2.4 from 2.2見て、grantつけちゃおうかなと。


<Directory "/">
    Require all granted
</Directory>

を記述。ブラウザーでアクセスできました。試しでDocumentRootに.htaccessを置いてブラウザーでアクセスしたところ、Forbiddenでアクセス出来ないことも確認しました。

mysqlに今まで格納したデーターが見えるかどうか、mysqlコマンドでデーターベースに接続し、SELECTで今まで格納したデーターを一覧しました。

OSX YosemiteのFinderとWindows7のエクスプローラーからsambaで公開されているディレクトリーに格納されているファイルが閲覧できることを確認しました。

OSX YosemiteにインストールしているVLCからmediatombで公開している動画が閲覧できることを確認しました。

OSX Yosemiteにインストールしているemacsでmagitを立ち上げ、コミットしたファイルをPUSHできることを確認しました。

自分の使用する範囲はだいたいそれくらいなので確認を切り上げました。また使っていてエラーがあったら、その度落ち着いて解消します。以上、UbuntuServer14.04バージョンアップ時のメモです。

Debian wheezyを7.5にバージョンアップ


cat /etc/debian_version

で、7.4と表示された。sudo apt-get update ; sudo apt-get upgrade でバージョンアップ出来るらしい。

sudo apt-get update ; sudo apt-get upgrade したら、パッケージの一覧が表示され、インストールしたら/etc/debian_versionが7.5に書き換わった。

以上、メモです。

Ubuntu Server 12.04のsshログインに公開鍵認証を使用

別に室内のパソコンなので必要不可欠ではないのですが、やってみたいと思い、sshのログインに公開鍵を使うようにしてみました。

クライアントに使用しているOSX Marvericksで鍵ペアの作成。


ssh-keygen -t rsa

公開鍵のパスフレーズの入力を求められるので入力。出来た鍵ペアの、公開鍵をサーバの.sshにコピー。

サーバ側に.sshディレクトリがなかったので作成し、サーバ側の.sshに公開鍵をauthorized_keysという名前でコピー。


mkdir ./.ssh
cd ./.ssh
cp -p ./../id_rsa.pub ./authorized_keys

.sshディレクトリのパーミションを700に、authorized_keysのパーミションを600に。


cd $HOME
chmod 700 ./.ssh
chmod 600 ./.ssh/authorized_keys

ログアウトしてOSXからもう一度sshでログイン。すると、公開鍵認証のパスフレーズを入力する画面が立ち上がり、パスフレーズを入力したらログインできた。

Ubuntu12.04をインストールしているノートパソコンからもログインしたかったので、Ubuntu12.04をインストールしているノートパソコンでも鍵ペアを作成してサーバに追加。


ssh-keygen -t dsa

して作成した鍵ペアの公開鍵id_dsa.pubをサーバに転送して、 cat ./id_dsa.pub >> ./.ssh/authorized_keys で追加。

Ubuntu12.04からログインしたところ、公開鍵認証のパスフレーズを入力するダイアログが立ち上がったのでパスフレーズを入力してログイン。

以上、メモ。

CentOS6.5 emacs23.1.1でバッファの移動

cyclebuffer.elはすでに古くて、bs.elというのが標準で入っているらしい。init.elに、


(global-set-key [(f8)] 'bs-cycle-previous)
(global-set-key [(f9)] 'bs-cycle-next)
; *scratch*バッファも表示候補に入れる                                           
(setq bs-cycle-configuration-name "files-and-scratch")

と記述。[?\C-.], [?\C-,]で記述したら動かなかったのでファンクションキーに割り当てました。以上、メモ。

CentOSでパッケージのアップデート

sudo yum update で出来るようです。

yumでパッケージ削除

sudo yum remove [パッケージ名] で削除出来ました。メモ。

gccでアセンブラソースコンパイル

ソースコードファイルの拡張子を.sにして、gcc -o hello ./hello.s みたいな感じでコンパイル出来ました。

hello.aをコンパイルしたところ、「file format not recognized; treating as linker script」とおこられました。拡張子で判断しているのかもしれません。

CentOS6.5をインストールしました

新しくノートパソコンを買ってきてCentOS6.5をインストールしました。minimalでインストールしたからなのか、インストール後に多少設定したのでメモします。

SHARPのPC-MC30Fだとビジュアルなインストーラーがうまいこと表示されなかったのでインストーラーをテキストモードに。

最初のインストール画面で、「Install or upgrade an existing system」を選択し、tabキーを押す。すると、インストーラーの引数が編集できるので、最後に「text」を追加。

インストール直後、ネットワークカードのeth0が生きていませんでした。/etc/sysconfig/network-scripts/ifcfg-eth0 を編集して、


ONBOOT=yes

で設定。

ホスト名設定。/etc/sysconfig/network に、


HOSTNAME=[ホスト名]

を設定。

root以外のユーザーは作っていないので、


adduser [ユーザーID] -g wheel
passwd [パスワード]

で作成と設定。rootでvisudoして、


## Allows people in group wheel to run all commands
# %wheel        ALL=(ALL)       ALL

のコメントを外して保存。以上、メモ。

Debian WheezyにGW-US54Mini2を接続して無線LANアクセスポイントにしてみた

Debian Wheezyにハードオフで買ったGW-US54Mini2を接続して無線LANアクセスポイントにしました。WEBの閲覧はややかったるいですが、らじるらじる聞けているし当面これでいいです。

Debianで無線APを作る(2)と、Wifi/rt73を参考に作業しました。

GW-US54Mini2を接続してDebian wheezyをインストールしたノートパソコンを起動。lsusbで、


Bus 001 Device 002: ID 2019:ab50 PLANEX GW-US54Mini2

てな感じで見えました。

GW-US54Mini2はralinkのチップを使っているようです。ralinkのファームウェアをインストールするために、/etc/apt/sources.listを編集してnon-freeなリポジトリを追加する。


deb http://http.debian.net/debian/ wheezy main contrib non-free

を追加して、ralinkのファームウェアをインストールする。


apt-get update && apt-get install firmware-ralink

でファームウェアを追加。rebootしたあと、iwconfigで、


wlan0 IEEE802.11bg Mode:...

が見えることを確認。

その後、wlan0を設定しました。/etc/network/interfacesを編集。


auto wlan0
allow-hotplug wlan0
iface wlan0 inet static
    address 192.168.1.1
    netmask 255.255.255.0
    network 192.168.1.0
    broadcast 192.168.1.255
    post-up /bin/echo "1" > /proc/sys/net/ipv4/ip_forward

したあと、ifup wlan0。したら、


RTNETLINK answers: File exists

とエラーになった。そういえば再起動してwlan0が生きていたので、ifdown wlan0してもう一度ifup wlan0したら、エラーは出ませんでした。

hostapdをインストールしました。


apt-get install hostapd

/etc/hostapd/hostapd.confに設定を記述。WPA2-PSKで設定。


interface=wlan0
driver=nl80211
ssid=[SSID名]
hw_mode=g
channel=11
wpa=2
wpa_passphrase=[PASSフレーズ]
wpa_key_mgmt=WPA-PSK
rsn_pairwise=CCMP

/etc/default/hostapd に、設定ファイルの位置を指定するエントリがあったので、


DAEMON_CONF="/etc/hostapd/hostapd.conf"

と記述。次は無線LAN子機にIPアドレスを振り出すためのdhcpをインストール。


apt-get install dhcp3-server

したら、


注意、'dhcp3-server' の代わりに 'isc-dhcp-server' を選択しています

と表示され、isc-dhcpがインストールされました。(2014/03/22現在。)

/etc/dhcp/dhcpd.conf を編集して設定。


subnet 192.168.1.0 netmask 255.255.255.0 {
    range 192.168.1.2 192.168.1.254;
    option routers 192.168.1.1;
    option domain-name-servers [DNSサーバに使っているダイアルアップルータのIPアドレス];
}

と設定。iptablesでIPマスカレードの設定。


iptables -A POSTROUTING -t nat -s 192.168.1.0/24 -o eth0 -j MASQUERADE

設定してから、hostapdとisc-dhcpを再スタート。


service hostapd restart
service isc-dhcp restart

で、無線LANアクセスポイントにを作成できました。大してスピード出なくて、iPodTouchでニコニコ動画を見ると大して見られないです。

ですが、らじるらじるとRadikoは使えているのでそちらで使います。


apt-get install iptables-persistent

をインストールして、iptablesの設定を保存。/etc/iptables/rules.v4 に、


:POSTROUTING ACCEPT [9:967]
-A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE
COMMIT

てな感じでIPマスカレードの設定が保存されました。この後再起動したら、iPodTouch←→インターネットの使用感が、再起動前と比べて早く、実用に堪えるかなー程度になりました。

理由はわかりませんが、使えているので使用しています。

Debian Wheezyでapt-get updateの際、DVDを探しに行かなくする

なぜだかわかりませんが、Debian wheezyをインストールした後、rootでapt-get updateすると、security.debian.orgと一緒にDVDドライブも探しに行っていました。

DVDドライブにDVDを格納していないので、止めました。以下手順。rootになって、/etc/apt/sources.listを編集。このファイルに、apt-get update時に見に行く先が書いてあるようです。


deb cdrom:[Debian GNU/Linux 7.4.0 _Wheezy_ ...

の行をコメントアウト。以上、メモです。

sudoでユーザを指定する

sudo -u [ユーザID] [コマンド] で、ユーザIDを指定できるそうです。メモ。

Ubuntu Serverにgitのリポジトリを作りました

Ubuntu Serverにgitのリポジトリを作成した際の作業ログを記述します。gitはまだまだ分かっていないんだなーと思いつつの作業でした。

Ubuntu Serverでの作業。gitのリポジトリを格納しているディレトクリに移動して、


sudo mkdir rep.git
sudo chown git-daemon:root ./rep.git
cd rep.git
sudo git --bare init --shared

しました。次に、テキストを記述するMacintosh側で、


git clone git://[サーバのIPアドレス]/rep.git

しました。


Cloning into 'rep'...
warning: You appear to have cloned an empty repository.

と表示され、空のリポジトリがクローンされたようでした。

sample.txtというテキストファイルを作成して、


git add ./sample.txt
git commit
git push

したら、


No refs in common and none specified; doing nothing.
Perhaps you should specify a branch such as 'master'.
Everything up-to-date

と表示されました。上記の作業では、まだブランチが作成されておらず、pushの対象がないからのようでした。


git push -u origin master

でmasterブランチを作成しようとしたのですが、


Counting objects: 9, done.
Delta compression using up to 4 threads.
Compressing objects:  16% (1/6)   
Compressing objects:  33% (2/6)   
Compressing objects:  50% (3/6)   
Compressing objects:  66% (4/6)   
Compressing objects:  83% (5/6)   
Compressing objects: 100% (6/6)   
Compressing objects: 100% (6/6), done.
Writing objects:  11% (1/9)   
Writing objects:  22% (2/9)   
Writing objects:  33% (3/9)   
Writing objects:  44% (4/9)   
Writing objects:  55% (5/9)   
Writing objects:  77% (7/9)   
Writing objects:  88% (8/9)   
Writing objects: 100% (9/9)   
Writing objects: 100% (9/9), 1.22 KiB, done.
Total 9 (delta 1), reused 0 (delta 0)
error: unpack failed: unpack-objects abnormal exit
To git://[サーバのIPアドレス]/rep.git
 ! [remote rejected] master -> master (n/a (unpacker error))
error: failed to push some refs to 'git://[サーバのIPアドレス]/rep.git'

と表示され、pushに失敗しました。「unpack failed: unpack-objects abnormal exit」ということはサーバ側の書き込みで失敗しているのだろうなあ、と思いました。そういえば、sudo git --bare init --sharedしたあと、ファイルを一覧したら、


合計 40
drwxr-xr-x 4 root root 4096 10月  8 20:56 ..
drwxrwsr-x 4 root root 4096 10月  8 20:57 refs
drwxrwsr-x 2 root root 4096 10月  8 20:57 info
drwxrwsr-x 2 root root 4096 10月  8 20:57 hooks
-rw-rw-r-- 1 root root   73 10月  8 20:57 description
drwxrwsr-x 2 root root 4096 10月  8 20:57 branches
-rw-rw-r-- 1 root root   23 10月  8 20:57 HEAD
drwxrwsr-x 4 root root 4096 10月  8 20:57 objects
-rw-rw-r-- 1 root root  126 10月  8 20:57 config
drwxrwsr-x 7 root root 4096 10月  8 20:57 .

で、リポジトリの中のファイルのオーナはrootでした。

作成したリポジトリのディレクトリに移動し、


sudo chown -R git-daemon:root *

して、オーナーをgit-daemonに変更したあと、Macintosh側からgit push -u origin master したら、


Counting objects: 9, done.
Delta compression using up to 4 threads.
Compressing objects:  16% (1/6)   
Compressing objects:  33% (2/6)   
Compressing objects:  50% (3/6)   
Compressing objects:  66% (4/6)   
Compressing objects:  83% (5/6)   
Compressing objects: 100% (6/6)   
Compressing objects: 100% (6/6), done.
Writing objects:  11% (1/9)   
Writing objects:  22% (2/9)   
Writing objects:  33% (3/9)   
Writing objects:  44% (4/9)   
Writing objects:  55% (5/9)   
Writing objects:  77% (7/9)   
Writing objects:  88% (8/9)   
Writing objects: 100% (9/9)   
Writing objects: 100% (9/9), 1.22 KiB, done.
Total 9 (delta 1), reused 0 (delta 0)
To git://[サーバのIPアドレス]/rep.git
 * [new branch]      master -> master
Branch master set up to track remote branch master from origin.

と、pushすることが出来ました。次にリポジトリを作成するときは上記の手順で使えるリポジトリは作成できると思います。おそらく、chownでオーナを変えなくても、別のコマンドでgit-daemonがオーナのリポジトリが作成できるのではと思っています。さらに調べます。

以上、メモです。

Ubuntu Serverでカーネルのアップグレードをしました

UbuntuServerにときどきログインすると、パッケージがアップグレード出来ます、みたいな表示が出ます。sudo apt-get update ; sudo apt-get upgradeでパッケージをアップグレードしていました。

カーネルのパッケージだけは、取り残されてアップグレードされませんでした。アップグレードするのは別の方法だと知ったのでメモ。


sudo apt-get dist-upgrade

でカーネルのアップグレードをするらしいです。確かにアップグレードされました。カーネルをアップグレードした後、sudo apt-get autoremoveしたら、前のバージョンのkernel-headerパッケージを削除してくれました。

sudo apt-get autoremoveでは、前のバージョンのカーネルは削除されませんでした。カーネルをアップグレードしたら立ち上がらなくなりました、トラブルが発生しました、みたいなときのために前のカーネルを残しているのかなあ、と思いました。

OSが立ち上がったのを確認したので、4個前とか3個前のカーネルを削除しました。


sudo apt-get remove --purge linux-image-2.6.32-33-generic-pae

みたいな感じで削除。paeと後ろについていますが、PenIIIのノートパソコンに1GBのメモリを積んでいるだけですので、特に32bitCPUで4GB以上のメモリを積んでいるわけではないです。

使えていますので、このままで使用していきます。以上、メモです。

Ubuntu Serverでマシンのモニタで操作したとき

Ubuntu 12.04 Server。たぶん12.04じゃなくても当てはまる話だと思う。

Ubuntu Serverをインストールしているマシンのモニタとキーボードを直接使うと、日本語のメッセージが文字化けて読めない。

LANG=Cにして英語に表示すれば読める。けれどもLANG=Cで設定した場合なんか副作用あったらこわいなーとびびりが入ったので、ぐぐった結果を.bashrcにコピペして、


# If console LANG=C
case $TERM in
    linux) LANG=C ;;
    *) LANG=ja_JP.UTF-8 ;;
esac

としてみた。結局マシンのモニタとキーボードを直接使ったときにLANG=Cにするのでビビりの回避にはなっていない。けれども、別のマシンからsshとかでログインしたときはja_JP.UTF-8で設定されるので多少気休め。

以上、メモ。

Ubuntu 12.04 ServerにアップグレードしたらMySQLのバージョンが5.5に上がって

Ubuntu Serverを12.04にアップグレードしたらMySQLのバージョンが5.5系に上がりました。そうしたら原因は分からないのだけれど、前にutf8でCREATE DATABASEしたデータベースにCREATE TABLEしてデータをINSERTしていたテーブルのSELECT結果が文字化けて一覧されるようになりました。

/etc/mysql/my.cnfを変更して前のデータが文字化けして見えないようにしてもよかったです。けれども、WordPressもMySQLを使用しています。なぜだか分からないけれど、WordPressはMySQL5.5に上げても以前のポストが文字化けていないです。

WordPressで使用しているデータベースにuseで入って、テーブルをSELECTしてポストの内容を見てみてもSELECTの一覧は文字化けしませんでした。だから、サーバのパラメータいじってあっちこっちモグラたたきしたくなかったです。なのでローファイな方法で回避しました。

新しくinsertしたデータはselectの結果で文字化けしませんでした。なので全部DELETEしてもう一度INSERTしなおせばいいかなと思いました。

以前ごしょごしょ環境をいじっている際に、


mysqldump -u root -p -l --default-character-set=latin1 --opt -B [データベース名] > [ダンプファイル名]

でデータをダンプしていました。なので、そこまでのデータは、CREATE DATABASEとかCREATE TABLE文削って、


mysql [データベース名] -u [普段使いのユーザID] -p < [ダンプファイル名]

でデータをリストアしました。そこからの差分は、データを格納したファイルが手元にあるので、同じようにINSERTしなおしました。そうしたらSELECTの結果が文字化けしなくなりました。メモでshow variables like 'char%'した結果を書いておきます。


+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | latin1                     |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.01 sec)

たぶんローファイな方法だと思います。一応メモしておきます。自分が現在使用していないディストリビューションのことはよく分からないのだけれど、FedoraCoreがMariaDBを採用、みたいな話をWEBで見ました。

なので、いつまでMySQLを使うかは分かりません。けれど、当面はMySQLを使用していく予定です。以上メモです。

WordPress3.5.1をインストールしているホストのIPアドレスが変わったので

WordPress3.5.1を室内のあまったノートパソコンにインストールしている。他のパソコンからWordPressのインストールされたノートパソコンへは、ホスト名ではなく、IPアドレスを指定してアクセスしている。最近WordPress3.5.1をインストールしているホストのIPアドレスを変えた。

IPアドレスが変わった後、WEBブラウザでwp-login.phpにアクセスしたら応答が帰ってこなかった。設定変えなくてはならないのかな、と思った。インターネットで検索した。設定変えなくてはならないらしい。設定を変えた。

WordPressで使用しているデータベース名とデータベースに接続するためのユーザIDを忘れた。なので、mysql -u root -pでログイン。

show databasesでそれっぽいデータベース見つけてデータベース名は判明。ユーザIDはデータベースに作成されたユーザIDの一覧がmysqlデータベースの中のuserテーブルの中に書かれている。一覧してそれっぽいの見つけて判明。

mysql [WordPressで使用しているデータベース] -u [WordPressで使用しているユーザID] -pでログイン。

wp_optionsテーブルの中にホスト名だったりIPアドレスが書かれているらしいとインターネットで読んだので前に設定していたIPアドレスでlike検索。したら、option_nameフィールドが「siteurl」「home」「dashboard_widget_options」「_transient_feed_[適当な文字列]」のレコードが引っかかった。

dashboard_widget_optionsと_transient_feed...のレコードはいじるの怖かったので、siteurlとhomeのレコードの、IPアドレスの部分を変更。


update wp_options set option_value="http://[新しいIPアドレス]/[ディレクトリ]" where option_name="siteurl";
update wp_options set option_value="http://[新しいIPアドレス]/[ディレクトリ]" where option_name="home";

こんな感じでした。


select * from wp_options where option_name="siteurl";
select * from wp_options where option_name="home";

して結果を確認。mysqlから抜けた後、いちおうおまじないで、sudo service apache2 stop ; sudo service apache2 startした。

その後は室内で運用しているWordPressにログイン出来て、書き込みも出来た。あとでまたトラブルがでたらそのときに対応する予定です。以上です。

Ubuntu10.04Serverを12.04にアップグレードした

PrecisePangolin/ReleaseNote Jaに記載されている内容でアップグレードした。

sudo apt-get update ; sudo apt-get upgradeで10.04のパッケージを最新にして、sudo apt-get install update-manager-coreをインストール。

/etc/update-manager/release-updatesをエディタで見て、[DEFAULT]エントリを確認。Promptプロパティはltsと記述されていたのでそのままアップグレードを続行。

sudo do-release-upgrade -dでアップグレード。途中で質問画面になって、現在格納されている設定ファイルを残すかどうか聞かれた。すべて、既存のファイルを残すと選択した。

以上でUbuntu 12.04 Serverにアップグレードした。以上、メモ。

Ubuntu10.04ServerにUSB接続ハードディスクを接続した

バージョンアップする前にバックアップを取ろうと思ってハードディスクを接続した。

fdisk -l でデバイス名を確認したらsdc5で認識していた。また、ハードディスクはFAT32でフォーマットされているものだったので、あわせてsudo mount -f vfat /dev/sdc5 /media/hdd でマウントした。

以上、メモ。

Ubuntu10.04をUbuntu12.04.1にアップグレードした

Ubuntu12.04.1にアップデートしたときのメモ。

FMV-7000NA5/HにインストールしていたUbuntu10.04を、12.04.1にアップグレードした。10.04の人は12.04.1のポイントリリースまで待つのがよいでしょう、的なことがリリースノートに書いてあったので10.04→12.04.1にアップグレードした。

アップデートマネージャから12.04.1にアップグレード、的なボタンを選択。

その際に、このマシンに搭載されているのはIntel i8xxのチップセットなのでアップグレード時にトラブルがあるかもしれない、 i8xxUnsupported を参照せよ、とダイアログが表示された。

訳が間違っているかもしれないけれど、「どんなケースであれ、UbuntuはLaunchpadでの8xxに関するバグレポートを受け付けない」「アドバイスとしては、8xxオーナーは『常に』アップグレードする前にLiveCDイメージでテストすることを勧める」と読んだ。

なので、12.04のJapaneseRemixのDVDでブートした。「Ubuntuを試す」で起動したところ、デスクトップが表示され、TerminalとかFirefoxが使用できたので、アップグレードに失敗してもこのDVDからクリーンインストールすればいいかな、とアップグレードを試した。

途中、gnome.confとかvsftpd.confとかの設定ファイルについて、「設定ファイルを置き換えますか?」的なダイアログが出てきたのだけれど、すべて既存のファイルを残す選択をした。

また、途中で、文字が四角(トウフ)なダイアログが3-5回表示された。何が書いてあるか分からないので、とりあえず右下のボタンを押した。

アップグレードが終了し、再起動を促すダイアログが表示されたので「再起動する」ボタンを押して再起動。

再起動したら、


The system is running in low graphics mode (以降略)

と警告が出た。マウスカーソルが出てこないし、キーボードでスペースやリターンを押してもOKボタンを押下できなかったので、Ctrl + Alt + F1でシェルに落ちた。

以前のUbuntu10.04をインストールしてインストーラが立ち上がらなかった際、インストーラにxforcevesaを指定してインストールしていた。そこでxorg.confを見てみたら、vesaドライバが指定されていた。

なので、xorg.confのDriverエントリを"intel"にして再起動。そうしたらログイン画面が表示され、以前使用していたユーザでログインする事が出来た。intelドライバがどれだけの出来のものかは自分はまだ調べていない。後はアプリケーションやデスクトップ環境の設定をした。

10.04でインストールしていたemacs22が残っていたのでemacs22を起動した。ところが、emacs22をランチャに固定できなかった。Dashから起動しても、ターミナルから"emacs22"で起動しても固定出来なかった。

なのでemacs23をインストールした。emacs23はランチャに固定できた。

emacs23 + anthyで入力が遅かったので、.emacsで


(load-library "anthy")

の後に、


(setq anthy-accept-timeout 1)

を記述した。

CtrlとCapsを入れ替えるため、ランチャからシステム設定 - キーボードレイアウト - オプション - Ctrlキーの位置、でCapsとCtrlキーを入れ替えた。

あとはランチャーによく使うアプリケーションを登録した。以上でアップグレードと設定を終了した。

以上、メモ。

Ubuntu 10.04 ServerにWordPressをインストールした

読書ログを書き留めておきたいな、と思ったのでUbuntu 10.04 ServerにWordPressをインストールした。以下メモ。

すでにmysqlはインストールしていたのでapacheとphpをインストールした。

apacheのインストール。


sudo apt-get install apache2

apacheの公開ディレクトリを変更した。


cd /etc/apache2/sites-available
sudo cp -p ./default ./[新しく作成する設定ファイル]

上でコピーしたファイルの、DocumentRootを任意のディレクトリに変更した。


sudo a2dissite default
sudo a2ensite [新しく作成した設定ファイル]
sudo service apache2 restart

で、ディレクトリ変更。

phpインストール。


sudo apt-get install php5 libapache2-mod-php5
sudo service apache2 restart

WordPressをインストールした。

http://ja.wordpress.org/ から取得した。2012/05/04現在、バージョンは3.3.2だった。

上で設定したwwwディレクトリに展開。wordpressというディレクトリが作成されたけれど面倒なのでそのまま使った。

mysqlは以前インストールしていたのでそれを使用した。


mysql -u root -p

CREATE DATABASE [データベース名];

GRANT ALL PRIVILEGES ON [作成したデータベース名].* TO "[ユーザ名]"@"localhost" IDENTIFIED BY "[パスワード]";

FLUSH PRIVILEGES;

EXIT;


cp -p wp-config-sample.php ./wp-config.php

して、データベース名とデータベースに接続するユーザ名とパスワードをwp-config.phpに書いて、http://[サーバのIPアドレス]/wordpress/wp-admin/install.phpにアクセスしたところ、「お使いのサーバーの PHP では WordPress に必要な MySQL 拡張を利用できないようです。」というエラーが表示された。

そういえばphpからmysqlに接続するためのプログラム入れてなかった。


sudo apt-get install php5-mysql

して、sudo service apache2 restartとsudo service mysql restartしてサービス再起動して、もう一度install.phpにアクセスしたらインストール画面が表示された。

あとは画面に従ってWordPressの管理者ユーザを登録し、管理者ユーザでログインして普段使いのユーザを作成した。

以上、メモ。

mediatombの設定

PenIII 800MhzのノートPCにmediatomb入れて動画見ているのですけれど、CPU80パーセントくらい使っていて再生ぷちぷち止まるので設定を変更した。


<transcoding enabled="no">
トランスコードさせるのをやめた。

以上、メモ。

Ubuntu10.04でCPUの情報を参照する

Ubuntu12.04は古いCPUでもPAEに対応していないとインストーラが立ち上がらない、的な情報をWEBで見たので、現在10.04をインストールしているPenIV 3.0Ghzのノートパソコンの情報を見てみた。

cat /proc/cpuinfoとかlscpuとかで情報見られるらしい。以下、cat /proc/cpuinfo | grep flagsした結果。


flags : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe up pebs bts cid xtpr

以上、メモです。

Ubuntu11.04でEmacsをランチャーに登録する

Ubuntu11.04にemacs23をインストールして、ターミナルから起動してランチャーに登録しようとしたら出来なかった。

で、UbuntuのLaunchpadを検索したら似たような話が出ていて、「Dashから起動したら登録できたよー」とか「"emacs23"で立ち上げたら登録できたよー」という書き込みがあったので、Dashからemacsを起動して、右クリックで「ランチャーに登録する」でやったらランチャーに登録された。

参考にしたLaunchpadは、Keep in launcher option for Emacs does not save over restartsでした。以上、メモです。

Ubuntu11.04でフォーマット

NTFSでフォーマットしたSSDをマウントしたのはいいけれど、ファイルコピーしたらオーナーはrootになるし、パーミションは777になるしで気になったのでext4でフォーマットした。

df -kで確かめたら/dev/sdb1だったのでそれで作業。


fdisk /dev/xxx

で一度NTFS領域を削除して空の領域を新規作成。umountしてから、


mkfs.ext4 /dev/xxx

でext4のフォーマットをした。fstabはext4に合わせて変えた。


UUID=XXXXXXXX /media/SecDir ext4 defaults 0 0

こんな感じでマウントされました。以上、メモ。

EeePC901+Ubuntu11.04で8GBの方のSSDを起動時にマウント

買ったときのままの構成で使っているので4GB+8GB。8GBの方のSSDを起動時にマウント。8GBのSSDはNTFSのままにしてしまったのでNTFSを指定してマウント。

sudo blkidでUUIDを調べる。で、/etc/fstabに記述した。


UUID="XXXXXXX" /media/SecDir ntfs 0 0 0 

のような感じでマウントできた。以上。

EeePC901にUbuntu11.04をインストールした

EeePC901にUbuntu11.04をインストールした。

ブックマークの移行は、ブックマーク - 未整理のブックマーク、でブックマーク管理画面を表示できたのでそちらからエクスポートしたbookmark.htmlを読み込んだ。

anthyのかな打ち設定は、alt-ローマ字、で切り替えた。

emacsは、22がインストール出来なかったので23をインストールした。anthyで日本語入力したら、ちょっともっさり感があった。

がまんできない、ってほどではないけれど、mozcもいいかもなあ、なんて気分ではいます。

以上、メモです。

Ubuntu10.04ServerでDLNAサーバー

UbuntuMagazin vol.6と他人さまのWEBLOGを参考にしてUbuntu10.04ServerにmediatombをインストールしてDLNAサーバーにした。


sudo su - 
apt-get install mediatomb

でインストール。

/etc/default/mediatombと/etc/mediatomb/config.xmlを編集した。

/etc/default/mediatomb。INTERFACEエントリが空欄になっているのでNICのデバイス名を記述した。


# The network interface for MediaTomb to bind to and for which the multicast
# routing entry should be added; "" if the route shouldn't be added at all.
# For example: INTERFACE="eth0"
#INTERFACE=""
INTERFACE="eth0"

/etc/mediatomb/config.xml。ここら辺はUbuntuMagazinに書いてあるままぼちぼちで記述しました。文字コードのあたり、MacOSXからも使うのでCP932って書いちゃってるけれどどうだかなあ、と思っています。metadataってどんなメタデータなんだろう、と思っています。


  <server>
    <ui enabled="yes" show-tooltips="yes">

ui enabledをyesに。


<!--  <transcoding enabled="no"> -->
  <transcoding enabled="yes">
    <mimetype-profile-mappings>

transcodingをenabledに。

次はfilesystem-charsetを追加。


  <import hidden-files="no">
    <filesystem-charset>UTF-8</filesystem-charset>
    <metadata-charset>CP932</metadata-charset>
    <scripting script-charset="UTF-8">

で、service mediatomb restartでリスタート。http://[hostname]:49152で操作画面にアクセス出来る。

Filesystemで動画ファイルを格納したディレクトリを選択。右側のコンテンツの追加ボタンを押下。

ScanModeはInotifyで常時監視、InitialScanはFullの方が確実、とUbuntuMagazinに書いてあったのでこちらを選択。下にディレクトリ作るかも知れないので、Recursiveもまあチェックしておいた。で、Setボタンを押下。

これで共有が設定された。MacOSX LionにインストールしたVLCからアクセスしに行ったら見えた。

使用したVLCのバージョンは1.1.12。VLCの方の操作は、ファイル-サービスの検出-Universal Plug'n'Playをチェック。

右下のプレイリストボタンからプレイリストを表示すると、Universal Plug'n'Playという項目が追加されているのでここから辿っていくと、DLNAサーバーで共有をかけている動画が見られた。

以上、メモ。

Ubuntu10.04NetbookEditionで空き容量が少なくなったので

Ubuntu10.04NetbookEditionをインストールしているEeePCは4GBのSSDを積んでいるのだけれど、パッチを当てていくごとに空き容量が少なくなったのでSSDをあけた。

これで、なんとか空き容量を確保できました。現在のカーネルで問題なく動作しているし、古いの消していいかな、と思った上で消しました。以上メモです。

MySQLでデータベースやテーブルを一覧する

データベースの一覧は、rootでログインして、SHOW DATABASES。テーブルの一覧は、任意のデータベースに任意のユーザでログインして、SHOW TABLESで一覧が見られました。以上、メモです。

Ubuntu10.04でDVDを再生する

vlc入れた。apt-get install vlcでインストールした。

vlc立ち上げたらDVDが再生できなかったので、DVDの再生方法についてを見た。


sudo /usr/share/doc/libdvdread4/install-css.sh

して再起動した。なんつかOSS的に問題がない環境でパソコン使いたいなあ、とは思うのだけれど…。これはどうなんだろう、と思っていますです。

MySQL5.1.41からフルバックアップ

Ubuntu10.04ServerにインストールしていたMySQL5.1.41からデータを引っこ抜いた。たぶん迂遠なことしているかもしれないけれど、これでとりあえずはデータが取得できたのでメモ。


mysqldump -u root -p -l --default-character-set=latin1 --opt -B [データベース名] > [出力先ファイル名]

以上です。

Ubuntu10.04ServerにMySQLをインストールした

Ubuntu10.04ServerにMySQLをインストールした。versionは5.1.41らしい。2011/11/05現在。


apt-get install mysql-server

でインストールされた。管理者ユーザはrootという名前らしく、インストール中にパスワードを聞かれるので設定した。

インストールが終わった後に、mysql -u root -pでログインして、データベースを作成した。


CREATE DATABASE (データベース名) CHARACTER SET utf8;

で作成。use (データベース名)でデータベースを変更してCREATE TABLE。

普段使いのユーザはSELECTとCUDくらいの権限をつけた。


GRANT SELECT, INSERT, UPDATE, DELETE ON (データベース名).* TO (ユーザ名) IDENTIFIED BY "(パスワード)";

ログインするときは、mysql (データベース名) -u (ユーザ名) -p でログイン出来る。

SQLを記述したファイルを実行(?)させるには、mysql (データベース名) -u (ユーザ名) -p < (ファイル名)で出来た。

postgreSQLからデータを移行したのだけれど、pg_dumpで出力したCOPY文はmysqlの方でエラーが出た。なので、insert文で出力させてmysqlの方で読み込んだ。postgreSQLのバージョンは忘れてしまったし、アンインストールしてしまったので現在確認も出来ない。


pg_dump --insert --data-only (データベース名) > (ファイル名)

で、INSERT文をずらずらと出力させた。

mysql (データベース名) -u (ユーザ名) -p < (ファイル名)でmysqlの方にデータを格納しようとしたけれど、頭の方のSET文でエラーになった。

なので、頭の方のSET文をコメントアウトしてINSERT文だけにして実行したらエラーが出なかったのでデータが移行できた。

以上、メモ。

LC800J/8にUbuntu10.04Serverをインストールした

2011/09/21現在。

現在ファイルサーバーっぽく使っていて、別にGUI環境いらないんだよなあ、ということで、Ubuntu10.04Serverをインストールしました。基本的にはインストーラーの指示に従ってインストールしたらインストール出来ました。

また、Ubuntuの日本語環境を参考にして、リポジトリを追加しました。

あとはopenssh-server入れて、vsftpd入れて、postgreSQL入れてデータベースのデータ移行して、samba入れて、mt-daapd入れました。

音楽ファイルのコピーはまだ行っていないので、後日時間がある際に行おうと思います。以上です。それでは。

EeePC901にUbuntu 10.04 Netbook Editionをインストールした

EeePC901にUbuntu 10.04 Netbook Editionをインストールしました。

2011/08/07にメモ。

Ubuntu Releases から10.04(Lucid Lynx)のNetbookEditionをダウンロード。EeePC901はAtomCPUなのでi386を選択した。

Download Ubuntu に書いてある手順を参考にしてブートできるUSBメモリを作成。

記述されている手順でMacintoshで作成したらEeePC901でブートできなかった。記述された手順でWindowsXPをインストールしたAT互換機で作成したらEeePC901でブートできた。

USBメモリスティックから起動するには起動中にF2でBIOSの設定画面になるのでブートの順番を設定できる。

起動時にESCを押しながら起動すると、起動デバイスの選択が出来るのでUSBメモリスティックを選択してブートするとインストーラが立ち上がる。

以上でUbuntu10.04 Netbook Editionがインストール出来た。

インストール直後はメニューなどが日本語ではないので、System - Language Supportで日本語を選択する。

そうすると必要なパッケージがダウンロードされ、インストールされる。インストールした後再起動を指示されるので再起動。再起動したらメニューなどが日本語で表示された。

anthyのかな打ちを設定したかったので、インジケーターアプレットのキーボードアイコンをクリック、設定 - インプットメソッド - インプットメソッドの選択でanthyを選択し、追加(A)ボタンを押下。

日本語入力をONにした際に画面右下に表示されるanthyのトレイ(?)の「i」アイコンをクリックすると設定画面が表示されるのでそこでかな入力を選択。

あとはemacs22をインストールしたりemacsにtwittering modeを設定したりcyclebufferを設定したりGnomeのキーバインドをEmacs風にしたりした。

以上、設定メモ。

Ubuntu10.04でgdmを停止したり起動したり

sudo /etc/init.d/gdm stop で停止、開始したければsudo /etc/init.d/gdm start。

Ubuntu10.04でパネルにCPU使用率のグラフを表示した

パネルを右クリック、パネルへ追加を選択、システムモニタを追加。以上でパネルにシステムモニタが追加された。

Ubuntu10.04でisoイメージをCD-Rに焼いた

Ubuntu10.04でisoイメージをCD-Rに焼いた。まず、CD-Rのブランクメディアを光学ドライブに入れた。その後、


cdrecord --scanbus

scsibus2:
	2,0,0	200) 'MATSHITA' 'UJDA710         ' '1.00' Removable CD-ROM
	2,1,0	201) *
	2,2,0	202) *
	2,3,0	203) *
	2,4,0	204) *
	2,5,0	205) *
	2,6,0	206) *
	2,7,0	207) *

で、光学ドライブに2,0,0という番号が割り振られていることを確認。


cdrecord dev=2,0,0 ./ubcd503.iso

で、isoイメージの内容をブランクCD-Rに焼いた。


mount -r -t iso9660 /dev/cdrom /cdrom

で、CD-Rをマウントして内容を確認した。


cd /cdrom
ls -ltra

合計 18
-r-xr-xr-x  1 root root 3158 2008-04-18 15:22 license.txt
-r-xr-xr-x  1 root root   69 2008-08-18 11:02 autorun.inf
dr-xr-xr-x  5 root root 2048 2010-07-09 09:27 boot
dr-xr-xr-x  4 root root 2048 2010-07-09 09:27 pmagic
dr-xr-xr-x  6 root root 2048 2010-07-09 09:27 .
dr-xr-xr-x  9 root root 2048 2010-07-09 09:27 ubcd
dr-xr-xr-x  3 root root 2048 2010-08-25 05:44 antivir
drwxr-xr-x 22 root root 4096 2011-03-23 17:38 ..

で、内容が書き込まれていることを確認した。以上、メモ。

Ubuntu10.04でGnomeメニューの編集

メニューで右クリック、メニューの編集を選択した。

Ubuntu10.04にaudacityをインストールした


apt-get install audacity

でインストールした。メモ。

Ubuntu10.04でworm

Ubuntu10.04でwormが遊びたくなったので調べた。


apt-get install bsdgames

で行けました。メモ。

Ubuntu10.04のGnomeでEmacs風キーバインド

GnomeEmacsKeyThemeを参考に。

1.Alt+F2を押し“gconf-editor”と入力して実行し、gconf-editorを起動する。
2."/desktop/gnome/interface"を選択。
3.gtk_key_themeの値を「Emacs」に変更する。で、


$HOME/.gconf/desktop/
  gnome/interface/gconf.xml

に値が保存されて、Gnomeがemacs風のキーバインドになる。

Utuntu10.04で音声ライブラリの追加


apt-get install libavformat-extra-52

としたらlameだのなんだのが追加されたみたいです。特に使わないと思うけれど…とりあえずメモ。

Ubuntu10.04でライン出力の録音

Ubuntu10.04でライン出力の録音をした。サウンドレコーダーを使用した。Gnomeメニューのアプリケーション-サウンドとビデオ-サウンドレコーダー。

ファイル-音量調節ツールを開く、ハードウェアでAnalog Stereo Outputを選択したら、ライン出力の録音が出来た。

現在Ubuntu10.04をインストールしているのはFMV-7000A5/H、サウンドチップは以下。


$ cat /proc/asound/cards
 0 [I82801DBICH4   ]: ICH4 - Intel 82801DB-ICH4
                      Intel 82801DB-ICH4 with ALC202 at irq 17

ハードディスクが回るとイヤホンで聞いている音にノイズが乗ることがあったりして、それほど快適な音環境ではないけれど、ライン出力の録音にはそれほどノイズが乗っていませんでした。メモ。

Ubuntu10.04にsambaを設定した

リッピングはWindowsXPのiTunes、sambaでサーバにコピーして…という方法でmt-daapdと組み合わせて室内音楽共有サーバを動かしていこうかなと思ったので。


sudo su -
apt-get install samba

設定ファイルは/etc/samba/smb.confとしてインストールされるので設定する。以下変更/追加した部分。


[global]

workgroup = MSHOME
(大して手間ではないですが、WindowsXPのワークグループ変えるの面倒だったのでこっちを合わせた)

dos charset=CP932
unix charset=UTF-8
display charset=UTF-8
(コピー時にファイル名を変換してくれるように設定。)

[share]
path=/home/media
writable=yes
force create mode=0644
force directory mode=0755

smbpasswdでsambaにユーザ追加とパスワード設定。


smbpasswd -a [ユーザ名]
New SMB password:
Retype new SMB password:

で、あとはWindows側から閲覧。ファイルの書き込みも出来てmt-daapdを立ち上げている、Ubuntuをインストールしたマシンに音楽ファイルのコピーが出来た。メモ。

Ubuntu10.04にmt-daapdを設定した

Ubuntu10.04にmt-daapdを設定した。


sudo su - 
apt-get install mt-daapd

/etc/mt-daapd.confを編集。編集したのは以下の項目。管理者パスワードを変更したのと、共有するファイルを格納するディレクトリを指定したのと、wavとaiffを拡張子に追加した。


admin_pw = *******
mp3_dir = /home/media/music
extensions = .mp3,.m4a,.m4p,.ogg,.flac,.mpc,.wav,.aiff

あとはdaapデーモンを再起動。


service mt-daapd restart

以上で他のUbuntuをインストールしたマシンのRhythmBoxやWindowsXPをインストールしたマシンのiTunesから音楽ファイル聞けた。以上です。

iconv

iconv使って文字コードを変換しました。


iconv -f Shift_JIS -t UTF-8 ./2011_01.sql > 2011_01.utf.sql

Ubuntu10.04LTSインストール時のメモ

新しく買った中古ノートPCにUbuntu10.04LTSをインストールしたときのメモ。

emacs関係。emacs23を使ってみたのだけれど、PenIV3.0Ghzでもanthyの入力でもっさり感があったのでemacs22にした。まあ、imをmozcにするという手もあるかなと思っているのだけれど…。


apt-get install emacs22
apt-get install xfonts-shinonome
apt-get install anthy-el
apt-get install w3m-el

flash playerをインストールした。


apt-get install flashplugin-installer

あとはopenssh入れたりvsftp入れたりpostgreSQL入れたりしました。以上、メモです。

postgreSQLのpg_dumpで取得したデータをリストア


psql -d [DataBaseName] -f [DumpFileName]

でデータを格納することが出来ました。まあ…pg_dumpで取得したデータってCREATE TABLE文とCOPY文が書いてあるので…。ちなみにsequenceとかはどうなるんだろうと思いました。sequence使っていないのでちょっとよく分からないですね…。別の機会に調べてみようかなあ、と思いますです。

Windows+スレイプニールのブックマークをUbuntu+FireFoxに移した

スレイプニール ファイル-おきにいりのエクスポートでFavoritiesの下にインターネットショートカットを作成。

FireFoxでブックマーク-ブックマークの管理-インポートとバックアップ-HTMLからインポート-ブックマークをインポートする対象をInternetExplorer、でFavoritiesの下のインターネットショートカットをインポート。

FireFoxでブックマーク-ブックマークの管理-インポートとバックアップ-HTMLとしてエクスポート、でbookmarks.htmlを作成。

作成したbookmarks.htmlをUbuntuのインストールされたマシンに転送してFireFoxからインポート。ローテクですけれど、上記の手順でブックマークを移しました。

FMV-7000NA5/HにUbuntu10.04をインストールした

ノートパソコンのFMV-7000NA5/HにUbuntu10.04をインストールした際、インストーラが立ち上がらなかった。

FMV-7000NA5/HはチップセットがIntel82852/82855なのだけれど、これが問題のようだとubuntu 10.04 インストールに失敗しますとか10.04インストール後 起動できません。を読んで知った。

自分が行った解決方法としては、インストーラのカーネル引数にxforcevesaを記述して起動するという方法。使用したインストールCDはUbuntuMagazinに付属してきたもの。

インストールCDから起動した際、Ubuntuロゴが表示される前にESCキーを押す。するとメニューが出てくるのでF6を押してその他のオプションを選択する。他の方法でも出来るかも知れないけれど、F6を押すとインストーラのカーネル引数が編集できるようになるので一番最後にxforcevesaを追記してインストーラを起動。するとインストーラが起動された。以上、メモです。

UbuntuのGnomeでCtrlをAの横にする方法

システム-設定-キーボード-レイアウトのオプション-Ctrlkey Position、で設定。

sedでCRなくすとかそんな話

sed -d 's/^M//g' hoge.txt > hoge2.txt

^MはCtrl-v, Ctrl-mで入力、とか。

postgresでSQLの書かれたファイルを指定して実行させる


psql [データベース名] -f [SQLファイル]

ってな感じ。

zipでディレクトリをアーカイブする

zipでディレクトリをアーカイブするには多少オプションが必要なようなのでメモ。


zip -rv hoge.zip ./hoge_directory

みたいな感じでアーカイブされました。

UbuntuのtcpdumpでFTPコマンド確認


tcpdump -l -w - dst port ftp | strings

こんな感じで。

Ubuntuでパッケージのアップデート

いまさらっぽい感じですがメモ。パッケージリストのアップデートはapt-get update, パッケージのアップデートはapt-get upgrade。

postgreSQLのpsqlで自動コミットをやめる

$HOME/.psqlrcに


\set AUTOCOMMIT off

と記述。psqlを立ち上げた後に同じ構文を入力しても設定できる。

postgreSQLでバックアップ

pg_dumpコマンドでフルバックアップ。pg_restoreコマンドでリストアできるらしい。


pg_dump [dbname] > dumpfileName.dmp

でバックアップしてみた。差分バックアップとかはどうするんだろう…?あとロールフォワードとかロールバックとかは…これから調べます。

Ubuntu10.04にPostgreSQLをインストールした


sudo apt-get install postgreSQL

でインストールした。postgresユーザーはインストーラが作成してくれた。postgresユーザーにsuして、


createdb [databaseName]

でデータベースを作成した。psql [databaseName]でログインして、create role [userName] with loginでログインできるようにしてしまったけれど、まあ管理用のユーザと使用するだけのユーザ、などなど分けた方が綺麗な使い方だなあと思っています。

Ubuntu9.10でSCSIテープデバイス

Ubuntu9.10でSCSIテープデバイスを使用した。使用マシンはLavicCのノート。SCSIカードはPCMCIAのを使用した。AdaptecのAPA-1460。ドライブは富士通のC5684-01050。

特にインストールしたアプリケーションはなし。ポン付けで認識された。/proc/scsi/scsiの様子。


# cat /proc/scsi/scsi
Attached devices:
(中略)
Host: scsi3 Channel: 00 Id: 00 Lun: 00
  Vendor: HP       Model: C5683A           Rev: C004
  Type:   Sequential-Access                ANSI  SCSI revision: 02

デバイスファイルは/dev/nst0とか/dev/st0。一応rewindしてから、eomで前に書いたファイルの次にテープ位置を移動する。


# mt -f /dev/nst0 rewind
# mt -f /dev/nst0 eom

ステータスを見てみた。


# mt -f /dev/nst0 status
drive type = 114
drive status = 637534208
sense key error = 0
residue count = 0
file number = 1
block number = -1

すでに一つバックアップファイルを格納していたので、その次から書きたかった。これで大丈夫なはず。tarでバックアップした。


tar -cvf /dev/nst0 ./2010_04_27_iMacG4.tar

バックアップが終わった後確認してみた。


# mt -f /dev/nst0 rewind
# tar -tvf /dev/nst0
-rw------- ***/*** 12602040320 2009-12-08 02:29 ./2009_12_07.tar
# mt -f /dev/nst0 fsf 1
# tar -tvf /dev/nst0
-rw-r--r-- ***/*** 3132569600 2010-04-28 00:26 ./2010_04_27_iMacG4.tar

これでたぶんバックアップが取れていると思う。mtコマンドががcompressionオプションを受け付けてくれなかったんだけれど…。理由を調べてみたけれど調べきれなかった。デフォルトでハードウェア圧縮してくれているといいな、と甘いことを考えている。

rewindしてからofflineしてテープを排出した。


# mt -f /dev/nst0 rewind
# mt -f /dev/nst0 offline

以上です。

Gnomeでキーボードショートカットでパネルメニュー表示

Gnomeでキーボードショートカットでパネルメニューを表示するにはAlt-F1、だそうです。結構便利。

xchatにUberScriptを設定

xchatにUberScriptを設定しました。joinとかquitとかのメッセージ表示を消したかったので。XChatの操作性を格段に向上させるUberScriptプラグインを参考にしました。

UberScriptからUberScriptのzipを取得。ファイルの内容を、unzipを使用して$HOME/.xchat2に展開。

UberScript.plを編集しました。my $uber_editorと言う変数の定数を、


my $uber_editor = "emacs"; 

というふうに編集しました。別にemacsでなくてもviでも構わないとは思いますけれど…。ちょっとよく分からないです。

そのあとxchatを起動するとメニューにUberScriptが追加されました。以上です。

Ubuntu9.10にsshサーバをインストール


sudo apt-get install openssh-server

でインストールされました。サーバ側の鍵の生成も、インストール中に行ってくれたようです。割と楽をさせてもらったのではないかと…思います。

ATOK辞書をAnthyに持ち越す

ATOKユーザ辞書をAnthyの個人形式辞書に変換するを参考にさせて頂きました。

私はperl詳しくないので、正規表現のところ分からなくて削っちゃった…。随分ダサいスクリプトになりましたが、メモとして残しておきます。

ATOKのメニュー-辞書メンテナンス-辞書ユーティリティ、でユーティリティを起動、ツール-単語・用例の一覧出力でATOKの辞書をファイルに出力し、あとはperlスクリプトで変換しました。使用したperlは、v5.10.0 built for cygwin-thread-multi-64int。


#!/usr/bin/perl

#
# Usage: atok2anthy.pl atoc-dic.txt > ~/.anthy/private_words_default
#
my %dictionary = ();

open( INPUT, "<$ARGV[0]" );

while ( $line = <INPUT> )
{

  # ATOK辞書ユーティリティで出力した辞書ファイルは「読み、単語、品詞」の
  # 順番に並んでいて、区切り文字としてタブ文字が間に入る

	@arr = split ("\t", $line);
	$reading = $arr[0];
	$word = $arr[1];
	$class = $arr[2];

	#品詞の最後の$や*を削ります。
	$class =~ s/\$//g;
	$class =~ s/\*//g;
	$class =~ s/\r\n//g;

    # Anthyの品詞に相当する品詞に置き換え、辞書に追加する
    if ( $class eq "独立語" or $class eq "単漢字" ) {
      # ATOKの独立語・単漢字はAnthyの「単漢字」に変換する
      $dictionary{$reading} = "#KJ*500 $word";
    }
    elsif ( $class eq "名詞サ変" or  $class eq "名詞ザ変" ) {
      # ATOKの名詞サ変・名詞ザ変はAnthyの「名詞 - する接続」に変換する
      $dictionary{$reading} = "#T30*500 $word";
    }
    elsif ( $class eq "固有人名" ) {
      # ATOKの固有人名はAnthyの「名詞 - 人名」に変換する
      $dictionary{$reading} = "#JNM*500 $word";
    }
    elsif ( $class eq "名詞" or $class =~ /固有.*/ ) {
      # ATOKの名詞、固有組織、固有地名等はAnthyの「名詞 - 一般名詞」に変換する
      $dictionary{$reading} = "#T35*500 $word";
    }
    elsif ( $class eq "感動詞" ) {
      # ATOKの感動詞はAnthyの「感動詞」に変換する
      $dictionary{$reading} = "#CK*500 $word";
    }
    else {
      # その他の品詞は(対応させるのが面倒なので)変換しない
      print STDERR "unsupported class '$class' - '$word'\n";
    }
}

close( INPUT );

# 辞書を読みの順にソートして出力
foreach my $reading ( sort keys %dictionary ) {
  print "$reading $dictionary{$reading}\n";
}

あとは、ftpでファイルを転送して、文字コードをUTF-8に変換して使用できました。Ubuntu9.10をインストールしているマシンだったので、UTF-8じゃないとダメだったんでしょうな…。最初EUCに変換しててダメでした。

ファイルは$HOME/.anthy/private_words_default、一度Anthy辞書管理から開いて、保存ボタンを押下したら辞書が反映されました。「・」は辞書エントリとして認めない、という仕様が面倒でしたが、まあ、grep -vで抜きました。以上、メモです。

Ubuntu9.10でftpの設定

vsftpdを使いました。


sudo su - 

apt-get install vsftpd

/etc/vsftpd.confを以下のように編集しました。以下、grep -v \# vsftpd.confした一覧。


listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem

Ubuntu9.10JapaneseRemixにemacsをインストールしてみた

うぶんちゅ!読んでからUbuntuに興味が湧いていたので、以前買ったUbuntuMagazinに付属で付いていたCDから、Ubuntu9.10 Japanese RemixをLavieCにインストールして使ってみました。

サイトではインストールもメンテナンスもカンタン!みたいな惹句が印象的でしたので、その分マシンがハイスペックじゃないと使えないのかなーと思っていましたが、思ったほど重くはなく、結構快適に使用できているのではないかなと個人的な所感を持ちましたので、今のところ結構楽しいです。

以下、emacsの設定をしたときのメモです。 apt-getを使用してemacsをインストールしました。


sudo su -

apt-get emacs
apt-get emacs-env-ja
(この辺、apt-get install emacsだったかapt-get emacsだったか記憶が曖昧です。すみません。)
apt-get install xfonts-shinonome

xfonts-shinonomeをインストールしたら一度ログアウトして、再ログインします。


xlsfonts | grep shinonome

で、shinonomeが認識されていることを確認します。


-shinonome-gothic-bold-i-normal--0-0-75-75-c-0-iso8859-1
-shinonome-gothic-bold-i-normal--0-0-75-75-c-0-jisx0201.1976-0
-shinonome-gothic-bold-i-normal--0-0-75-75-c-0-jisx0208.1990-0
(以下略)

dot.emacs.exampleを.emacsのテンプレートとして使用しました。


cd $HOME
cp /usr/share/doc/emacs-env-ja/dot.emacs.example ./.emacs

設定した.emacsは以下です。 やりたかったことは、emacsでかな打ちです。anthyを使う設定にしました。


;========================
; 言語・文字コード関連の設定
;========================
(when (equal emacs-major-version 21) (require 'un-define))
(set-language-environment "Japanese")
(set-terminal-coding-system 'utf-8)
(set-keyboard-coding-system 'utf-8)
(set-buffer-file-coding-system 'utf-8)
(setq default-buffer-file-coding-system 'utf-8)
(prefer-coding-system 'utf-8)
(set-default-coding-systems 'utf-8)
(setq file-name-coding-system 'utf-8)
;;
;==========================
; Anthy
;    CTRL-oで入力モード切替え
;==========================
(load-library "anthy")
(setq default-input-method "japanese-anthy")
(anthy-kana-map-mode)
(global-set-key "\C-h" 'delete-backward-char)
(global-set-key "\C-o" 'anthy-mode)
;;
;==========================
;フォント
;==========================
(cond (window-system
;;       (progn
;;         (create-fontset-from-fontset-spec
;;	  "-shinonome-marumoji-medium-r-normal--12-*-*-*-*-*-fontset-12")
;;	 (set-default-font "fontset-12")
;;       )))
;;	 ))
       (progn
         (set-face-font 'default
                        "-shinonome-gothic-medium-r-normal--12-*-*-*-*-*-*-*")
         (set-face-font 'bold
                        "-shinonome-gothic-bold-r-normal--12-*-*-*-*-*-*-*")
         (set-face-font 'italic
                        "-shinonome-gothic-medium-i-normal--12-*-*-*-*-*-*-*")
         (set-face-font 'bold-italic
                        "-shinonome-gothic-bold-i-normal--12-*-*-*-*-*-*-*")
       )))
;;))
;==========================
;フレームサイズ・位置・色など
;==========================
(setq initial-frame-alist
	(append (list
;		   '(foreground-color . "white")		;; 文字色
;		   '(background-color . "#333366")		;; 背景色
;		   '(border-color . "black")
;		   '(mouse-color . "white")
;		   '(cursor-color . "white")
		   '(width . 150)				;; フレームの幅
		   '(height . 55)				;; フレームの高さ
		   '(top . 0)					;; Y 表示位置
		   '(left . 0)				;; X 表示位置
		   )
		initial-frame-alist))
(setq default-frame-alist initial-frame-alist)
;;
;==========================
; Misc
;==========================
(mouse-wheel-mode)						;;ホイールマウス
(global-font-lock-mode t)					;;文字の色つけ
(setq line-number-mode t)					;;カーソルのある行番号を表示
(auto-compression-mode t)					;;日本語infoの文字化け防止
(set-scroll-bar-mode 'right)					;;スクロールバーを右に表示
;;(global-set-key "\C-z" 'undo)					;;UNDO
(setq frame-title-format					;;フレームのタイトル指定
	(concat "%b - emacs@" system-name))

;(display-time)							;;時計を表示
;(global-set-key "\C-h" 'backward-delete-char)			;;Ctrl-Hでバックスペース
;(setq make-backup-files nil)					;;バックアップファイルを作成しない
;(setq visible-bell t)						;;警告音を消す
;(setq kill-whole-line t)					;;カーソルが行頭にある場合も行全体を削除
(when (boundp 'show-trailing-whitespace) (setq-default show-trailing-whitespace t))	;;行末のスペースを強調表示

以上です。

FedoraCore11にemacsをインストールしてAnthyでかな入力

FedoraCore11にemacsをyumからインストールして、Anthyでかな入力できるようにしました。

.emacsに、


(load-library "anthy")
(anthy-kana-map-mode)
(setq default-input-method "japanese-anthy")
(grobal-set-key "C-o" 'toggle-input-method)

と記述しました。yumからemacsインストールしたら、/usr/share/emacs/site-lisp/に、anthy関係のelファイルが格納されていたので、.emacsにload-libraryいきなり書いちゃってOKでした。800MHzのノートPCだとちょっともっさり感があるかな…。以上です。

LavieC LC800J/8にFedoraCore11をインストールしてxorg.confを書き換えた

WindowsXPをインストールして使っていたときは、Trident VideoAccelarator CyberBlade i1 AGPのドライバで動作させていた。

xorg.confの設定は以下。


Section "Device"
  Identifier "Videocard0"
  Driver "vesa"
EndSection

Section "Screen"
  Identifier "Screen0"
  Device "Videocard0"
  DefaultDepth 24
  SubSection "Display"
    Viewport 0 0
    Depth 24
    Modes "1024×768"
  EndSubSection
EndSection

/etc/X11/xorg.confに以上の内容を記載して、vesaドライバで動作させました。

bashで無限ループ


while :; do ls -lh *.tar; sleep 10; done

こんな感じです。「while : 」で無限ループに入ってくれます。

FedoraCore11でSCSIテープドライブ

使用マシンはLavicCのノート。なのでSCSIカードはPCMCIAのを使用した。AdaptecのAPA-1460。

ドライブは富士通のC5684-01050。でも、


Vendor: HP       Model: C5683A           Rev: C004

って認識されるんだけれどHPのOEM品なのかな…?ちょっとよく分からないです。pcmciaのデーモンをインストールして、OSの起動時にpcmciaデーモンを起動させたらテープデバイスも認識された。以上です。他にもっとマシな方法があるかも知れません。

FedoraCoreでinit.dにリンクを格納したりしなかったりする


chkconfig pcmcia off

みたいな感じでシンボリックリンク付けたり外したりして、起動の設定したりしなかったりできるみたいです。便利便利。

FedoraCore11でftpとかtelnetとか

iptablesを以下のように設定して自分ちの中から以外は落とすようにした。


# iptables -D INPUT -j REJECT --reject-with icmp-host-prohibited
# iptables -A INPUT -m state --state NEW -m tcp -p tcp -s xxx.xxx.0.0/24 -d xxx.xxx.xxx.xxx --dport 21 -j ACCEPT
# iptables -A INPUT -m state --state NEW -m tcp -p tcp -s xxx.xxx.0.0/24 -d xxx.xxx.xxx.xxx --dport 20 -j ACCEPT
# iptables -A INPUT -m state --state NEW -m tcp -p tcp -s xxx.xxx.0.0/24 -d xxx.xxx.xxx.xxx --dport 23 -j ACCEPT
# iptables -A INPUT -j REJECT --reject-with icmp-host-prohibite

で、最後にserviceコマンド使って設定を保存。


service iptables save

sedで大文字から小文字に変換

例えばcatで標準出力してから、


cat ファイル名 | sed 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/
  abcdefghijklmnopqrstuvwxyz/'

とか。


[目次]