Linuxで普通にext4などでパーティションを作成すると、後でディスク容量が不足した場合、サイズを大きくすることができない。
LVMは複数ディスクを束ねることによってディスクサイズの拡張、縮小を行うことができる技術である。

以下の手順は/varのファイルが圧迫してディスクがフルになりそうになったとき、/var以下を新たに追加したディスクに移す手順である。
(作業はシングルユーザーモードで行ったほうがいいでしょう。)

まず、物理ディスクを追加するか、VirtualBoxなどのVMの場合は仮想ディスクの追加を行う。

物理ディスク追加後、Linux上では以下のようなパーティションになるものとする。

デバイス 説明
/dev/sda1 Linux ルートパーティション
/dev/sda2 Linuxスワップ スワップ
/dev/system/var Linux LVM /varパーティション

新規に追加したディスクは/dev/sdbとして認識されるのでLVMパーティション/dev/system/varとして設定する。

1 追加したディスクにディスクラベルを作成する。

2 LVMコマンドをインストールする。

3 PV(Physical Volume)を作成する。

4 VG(Volume Group)をVG名 systemで作成する。

5 system VG上にLV(Logical Volume)をLV名 varで追加したディスクの容量いっぱいのサイズで作成する。

6 LVにext4ファイルシステムを作成する。

7 作成したLVパーティションをext4でフォーマットする。

8 /varに作成したLVMパーティションをマウントして、/var以下のファイルをコピーする。

9 UUIDを取得して、fstabにマウント情報を設定する。

再起動して追加したディスクがマウントされるか確認する。




巷ではDockerが話題になっているが、Cent OS7で導入されたsystemd-nrespownにも軽量コンテナを作成する機能がある。
ということで試してみた。

軽量コンテナを作成する前に、GrubのAudit機能をオフにする必要がある。
まず、/etc/grub.confファイルを以下のように編集する。

GRUB=CMDLINE_LINUXにaudit=0を追加する。
ファイル編集後以下のコマンドでGrubを再構成し、再起動する。

次に軽量コンテナディストリビューションを/srv/mycontainerに作成する。

/srv/mycontainerの軽量コンテナを起動し、パスワードを設定する。

軽量コンテナをデーモンモードで起動してみる。

軽量コンテナをサービスとしてsystemdに登録する。

サービスとして起動。

systemctl statusコマンドでコンテナ情報を表示する。

machinectl listコマンドで登録コンテナリストを表示する。




Linux Mint 15でデスクトップ上でウィンドウを上の端っこまで移動させると勝手にウィンドウが最大化されるのがうざい。
(Windows7と同じデフォルトの動きになってるけど、そんなところは見習わなくてよろしい。)
ということで、これをディスエーブルする方法は以下の通り。

メニュー > 設定 > ウィンドウズマネージャー(詳細)を選択。

menu

「ウィンドウが画面端に移動された時自動的にタイル表示する」チェックボックスをはずす。

dialog

やっとうざいから解放された。




/etc/apt/sources.list.d/pgdg.listを以下の内容で作成する。

リポジトリサインキーのインポートを行う。

リポジトリインデックスを更新する。

PostgreSQLをインストールする。

Ubuntu 8.04上でWordPress3を動かして、管理画面で作成した固定ページのパーマリンクを変えた時、404 Not Foundエラーが出てしまうので半日はまった。
最初、WordPressの設定が悪いのかと思って色々設定を変えたが変わらず。
ネットで調べていると以下のページでApacheのrewriteモジュールが有効になっていないことに気づく。

WordPressでパーマリンク設定後に404エラーが出る場合

以下のコマンドでRewriteモジュールを有効化する。
sudo a2enmod rewrite

Apacheのサイト設定ファイルのディレクトリ設定のAllowOverrideをAllに設定する
/etc/apache2/sites-enable/000-xxxx

Options FollowSymLinks MultiViews
AllowOverride All < -- 変更 Order allow,deny allow from all

Apacheを再起動する。
sudo /etc/init.d/apache2 restart

これで変更したパーマリンクをブラウザで指定すると該当ページが表示されるようになる。

Ubuntu Server 8.04(Hardy)にBazaarをインストールする場合、普通にapt-getをすると古いバージョンがインストールされてしまうので、開発サイトから直接インストールできるようにする。

/etc/apt/sources.listに以下の2行を追加する。

deb http://ppa.launchpad.net/bzr-beta-ppa/ppa/ubuntu hardy main
deb-src http://ppa.launchpad.net/bzr-beta-ppa/ppa/ubuntu hardy main

以下のコマンドをシェルで実行して公開鍵の登録を行う

# sudo apt-key adv –keyserver keyserver.ubuntu.com –recv-keys 37B19B80

以下のコマンドをシェルで実行する

# sudo apt-get update
# sudo apt-get bzr

参考URL
https://launchpad.net/~bzr-beta-ppa/+archive/ppa

Ubuntu 7.10 Subversionインストールメモ。
以前もSubversionのインストール方法は書いたのだが、今回はWebDAVを使うパターン。

まず以下のソフトウェアをインストールする。
(Apache2は入っているものとする)

# apt-get install subversion libapache2-svn

次にWebDAVの設定ファイルを編集する。

# sudo vi /etc/apache2/mods-enabled/dav_svn.conf

dav_svn.confに以下のように記述する。

<Location /svn_repos>
DAV svn
SVNPath /home/svn/repos

AuthType Basic
AuthName “Subversion Repository”
AuthUserFile /etc/apache2/dav_svn.passwd
Require valid-user
</Location>

LocationでアクセスするURLを指定し、SVNPathでsubversionのリポジトリディレクトリがあるところを指定する。

AuthTypeでベーシック認証を設定し、パスワードファイルのパスをAuthUserFileとして設定する。

パスワードファイルはhtpasswdコマンドで以下のように作成する。

# htpasswd -c dav_svn.passwd hoge

-cオプションはファイルを作成するときだけ使用する。

Subversionのリポジトリは以下のコマンドで作成する。

# sudo mkdir /home/svn
# sudo svnadmin create /home/svn/repos

ApacheがSubversionファイルを読めるようにwww-dataユーザーにファイルオーナーを変更しておく。

sudo chown -R www-data /home/svn

変更を有効にするためにapacheを再起動する。

sudo /etc/init.d/apache2 restart

Tortoise SvnなどのSubversionクライアントでhttp://ホスト名/svn_reposというURLでアクセスして確認する。

Ubuntu 7.04 Serverにrcovをインストールしようとしてエラーが発生。

stdlib.hが見つからないというエラーを出していた。

ネットで調べてみるとbuild-essentialを入れれば大丈夫のようだ。

apt-get install build-essentialと打つがこんなエラーが発生。

エラー http://jp.archive.ubuntu.com gutsy-updates/main linux-libc-dev 2.6.22-14.47
404 Not Found
エラー http://security.ubuntu.com gutsy-security/main linux-libc-dev 2.6.22-14.47
404 Not Found
http://security.ubuntu.com/ubuntu/pool/main/l/linux-source-2.6.22/linux-libc-dev_2.6.22-14.47_i386.deb
の取得に失敗しました 404 Not Found
E: いくつかのアーカイブが取得できません。apt-get update を実行するか –fix-missing オプションを付けて試してみてください。

色々ネットで調べてみるとapt-getのdbをアップデートすればいいみたいだ。

# sudo apt-get update

# sudo apt-get install build-essential

うまくいった。

さらにrcovをインストール。

# sudo gem install rcov

Ubuntu Feistyにsubversionをインストール、設定にはまった。

まずはバイナリーのインストールは
apt-get install subversion
ですんなり終了。

subversion用のユーザーを作成
useradd -d /home/svn -s /bin/bash svn
でsvnユーザーでログインしなおす。
su – svn

リポジトリの作成を行う。
svnadmin create /var/svn/repos

既存のソースをリポジトリにインポート
svn import -m ‘initial import’ mysrc file://var/svn/repos/mysrc

リモートからアクセスしたいのでsvnserveの設定を行う。
/var/svn/repos/mysrc/conf/svnserve.confを以下のように記述。
anon-access = none
auth-access = write
password-db = passwd
authz-db-authz
realm= My Source Repository

anon-accessは匿名ユーザーのアクセスを禁止しているのだが、noneにしておかないと許可しているユーザーのアクセスのときに変なエラーがでてアクセスが拒否されてしまった。
Googleで調べるとここをnoneにしろと書いてあったがなんかバグらしい。
とりあえずこれでアクセスできた。

同じディレクトリにpasswdファイルを作成し以下のような感じでアクセスさせたいユーザー名とパスワードを記述。

user1 = pass1
user2 = pass2

パスワードはクリアテキストで通常のパスワードファイルのようにハッシュになっていない。
(大丈夫か?)

これでsvnserveを以下のように起動。

svnserve -d -r /var/svn/repos

-dはデーモンモードで起動するオプションで、-rはリポジトリディレクトリを指定する。
-rで指定しないとリモートでアクセスできなかったので必ず指定しなければいけないのだろう。

後はクライアントから以下のコマンドでアクセスしてみる。

svn checkout svn://svnホスト名/mysrc dir1

リポジトリのファイルがクライアントのdir1というディレクトリにダウンロードされる。
これでクライアントローカルでファイルの変更が可能になる。
変更後svn statusで見ると変更されたファイルリストが表示されるはずだ。

M aaa.c
M bbb.pl

変更されたファイルをsvnサーバーのリポジトリに反映させるにはcommitコマンドを使う。

svn commit aaa.c bbb.pl

アクセス制御の設定をちゃんとしておかないとここで拒否される。
自分はここではまって何回もリポジトリを作りなおしたり、設定ファイルの変更を行った。
svnserveの起動ユーザーとリポジトリファイルのオーナーがあっていないとアクセスエラーになってしまうので注意が必要だ。
root権限でsvnserveを起動するのは危険なのでsvnユーザーのようにsubversion専用のユーザーを作成し、そのユーザーでsvnserveを動かした方がいいだろう。

今日は半日これをずっとやっていて疲れた。
次はWebDAV経由でアクセスできるように設定しないと。

Mongrelの不具合解消のため前の記事に書いた設定を行ったところアプリケーション実行時に以下のようなエラーが発生した。

Client does not support authentication protocol requested by server; consider upgrading MySQL client

gemで入れたmysqlモジュールが古いプロトコルしかサポートしていないのではないか。
とりあえず、MySQLサーバー側のパスワードを古いタイプにすると接続できた。
MySQLサーバーのmysqlデータベースで以下のコマンドを実行する。

update user set password=old_password(‘パスワード’) where user=’ユーザー名’;
FLUSH PRIVILEGES ;

情報元はこちら。

http://www.iwazer.com/~iwazawa/diary/archives/002934.html