目次

参考資料

基本操作

アップデート

アップデートパッケージの確認

# yum check-update

アップデート可能な全てのパッケージをアップデート

アップデート毎に確認あり

# yum update

全てアップデート

# yum -y update

日本語ディレクトリ名を英語ディレクトリ名に変更

$ LANG=C xdg-user-dirs-gtk-update

指定したパッケージのアップデート

アップデートするかどうか確認あり

# yum update パッケージ名

アップデートするかどうか確認なし

# yum -y update パッケージ名

自動アップデート

yum-cron のインストール

# yum install yum-cron

yum-cron の起動

# /etc/init.d/yum-cron start
夜間 yum 更新の有効化中:                                   [  OK  ]

yum-cron の自動起動の設定

# chkconfig yum-cron on
# chkconfig --list | grep yum-cron
yum-cron       	0:off	1:off	2:on	3:on	4:on	5:on	6:off

yum-updatesd の停止

# /etc/init.d/yum-updatesd stop
yum-updates を停止中: [ OK ]

yum-updatesd の自動起動の停止

# chkconfig yum-updatesd off
# chkconfig -–list  | grep yum-updatesd
yum-updatesd 0:off 1:off 2:off 3:off 4:off 5:off 6:off

VirtualBox? Guest Additions インストール

VirtualBox?上で作成した場合はGuest Additionsをインストールすると幸せになれる

インストール準備

# yum install gcc
# yum install kernel-devel

VirtualBox? Guest Additions インストール

# cd /media
# cd VBOXADDITIONS_4.1.14_77440
# sh VBoxLinuxAdditions.run

インストールが完了したら再起動

# reboot

必要なソフトをインストール

コンパイラー

Rubyなどのソフトなどをインストールする必要

# yum install gcc
# yum install make
# yum install gcc-c++

その他のソフト

# yum install zlib-devel
# yum install openssl-devel

データベースは適宜変更

sqlite 以外にしたら 「bundle intall」の前に設定ファイル弄る必要あるかも

# yum install sqlite-devel

yamlのインストール

yamlをhttp://pyyaml.org/wiki/LibYAMLからダウンロード

$ wget http://pyyaml.org/download/libyaml/yaml-0.1.4.tar.gz
$ tar zxvf yaml-0.1.4.tar.gz
$ cd yaml-0.1.4
$ ./configure
# make && make install

Ruby のインストール

Ruby on Rails を使用したい場合 [Ruby] [RubyGems?] [Rails] のそれぞれのバージョンの組み合わせが超重要だから全てバージョンを指定してインストールすること

ま、インストールだけで正常に動くという意味で

解決すればいいだけだけど

古いバージョンがあればアンインストールしておく

# yum remove ruby

インストールするバージョンのURLは本家から調べればおk

[手動インストール]

$ wget ftp://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p194.zip
$ unzip ruby-1.9.3-p194.zip
$ cd ruby-1.9.3-p194
$ ./configure
# make && make install
$ cd ext/zlib
# ruby ./extconf.rb
# make && make install

[自動インストール]

# yum install ruby

インストール確認

# ruby -v

ruby 1.8.7 (2012-02-08 patchlevel 358) [i686-linux]

Rubyの再インストール時

# cd ruby-1.8.7-p358
# make clean
# ./configure
# make && make install

Ruby の書き方

Ruby の項目を見ればおk

RubyGems? のインストール

インストールするバージョンのURLは http://rubyforge.org/frs/?group_id=126&release_id=46643 から調べればおk

$ wget http://rubyforge.org/frs/download.php/76072/rubygems-1.8.24.zip
$ unzip rubygems-1.8.24.zip
$ cd rubygems-1.8.24
# ruby setup.rb

インストール確認

# gem -v

1.8.24

Rails のインストール

必要に応じてバージョン指定

指定しなければ最新のものがインストールされる

# gem install rails (-v 3.2.3)

インストール確認

# rails -v

Rails 3.2.3

必須項目

Gemfileを以下のように編集する必要がある

アプリケーション名/Gemfile

gem 'therubyracer'

動作確認

# rails new アプリケーション名
# cd アプリケーション名
# echo >> Gemfile
# echo "gem 'therubyracer'" >> Gemfile
# bundle install
# rails s (--port=ポート番号)

サーバーが起動するので「http://localhsot:3000」にアクセス

Apache の設定

# yum install httpd

Passenger のインストール

Apache上でRailsを動かすやつ

参考サイト

必要なソフトのインストール

「httpd-devel」は Passenger で使用

# yum install curl-devel
# yum install httpd-devel

本体をインストール

# gem install passenger

設定

# passenger-install-apache2-module

「Enter」を押してインストールを開始

必要なソフトがインストールされていれば以下のように表示される

The Apache 2 module was successfully installed.

Please edit your Apache configuration file, and add these lines:

   LoadModule passenger_module /usr/local/lib/ruby/gems/1.8/gems/passenger-3.0.12/ext/apache2/mod_passenger.so
   PassengerRoot /usr/local/lib/ruby/gems/1.8/gems/passenger-3.0.12
   PassengerRuby /usr/local/bin/ruby

After you restart Apache, you are ready to deploy any number of Ruby on Rails
applications on Apache, without any further Ruby on Rails-specific
configuration!

Press ENTER to continue.

表示通りに設定ファイルに追記

# vi /etc/httpd/conf/httpd.conf

LoadModule passenger_module /usr/local/lib/ruby/gems/1.8/gems/passenger-3.0.12/ext/apache2/mod_passenger.so
PassengerRoot /usr/local/lib/ruby/gems/1.8/gems/passenger-3.0.12
PassengerRuby /usr/local/bin/ruby

続けて「Enter」を押すと

同じように「httpd.conf」に追記しろとでるので追記

<VirtualHost *:80>
    ServerName ドメイン名
    # !!! Be sure to point DocumentRoot to 'public'!
    DocumentRoot /somewhere/アプリケーション名/public
    <Directory /somewhere/アプリケーション名/public>
        # This relaxes Apache security settings.
        AllowOverride all
        # MultiViews must be turned off.
        Options -MultiViews
    </Directory>
</VirtualHost>

Apacheの再起動

# /etc/rc.d/init.d/httpd restart
httpd を停止中:                                            [  OK  ]
httpd を起動中:                                            [  OK  ]

hostsの編集

ローカルで動作確認できるようにhosts変更

特に再起動せずに反映される

# vi /etc/hosts

127.0.0.1               localhost.localdomain localhost ドメイン名
::1             localhost6.localdomain6 localhost6

再起動方法

方法 1 : 全アプリケーションの再起動

Apacheの再起動

# /etc/rc.d/init.d/httpd restart

方法 2 : 個別に再起動

下記のように「restart.txt」ファイルを設置するとアクセス時に自動で再起動を行う

アプリケーション名/tmp/restart.txt

Apacheの設定

詳しくは Webサーバ/Apache2 を見ればおk

ここには設定書いててリンク先には書いてないってのもあるけど気にすんな

設定ファイル:/etc/httpd/conf/httpd.conf

エラーページ等でOS名を表示しないようにする

ServerTokens OS
↓
ServerTokens Prod

.htaccessの許可

AllowOverride None 
↓
AllowOverride All

エラーページでサーバー情報を表示しないようにする

ServerSignature On
↓
ServerSignature Off

CGI有効化

CGIを有効化しRubyも動作するように変更

#AddHandler cgi-script .cgi
↓
AddHandler cgi-script .cgi .rb
<Directory "/var/www/html">
     # 有効化したいディレクトリの Options に ExecCGI 追加
     # Indexes : インデックスリストの表示
     # FollowSymLinks : Symlink の使用許可
     # Includes : SSI の実行権付与
     # ExecCGI : CGI の実行権付与
     Options ExecCGI
</Directory>

テストページ削除

# rm -f /etc/httpd/conf.d/welcome.conf
# rm -f /var/www/error/noindex.html

httpd 起動/停止/再起動

# /etc/rc.d/init.d/httpd {start/stop/restart}

or

# /etc/init.d/httpd {start/stop/restart}

自動起動/停止

# chkconfig httpd {on/off}

自動起動設定確認

# chkconfig --list httpd

Postfix のインストール

Gmail を用いた送信

sendmail 停止

# /etc/rc.d/init.d/sendmail stop
# chkconfig sendmail off

送信メールサーバを切り替える

# alternatives --config mta

postfixの番号を入力してEnter

必須ソフトのインストール

CentOS 6.2 だとデフォルトでインストールされているみたい

# yum install postfix cyrus-sasl-plain

初期設定

# vi /etc/postfix/main.cf

以下の内容を書き込み保存

relayhost = [smtp.gmail.com]:587
smtp_use_tls = yes
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_sasl_mechanism_filter = plain
smtp_tls_CApath = /etc/pki/tls/certs/ca-bundle.crt

パスワードファイルの生成

# vi /etc/postfix/sasl_passwd

以下の内容を書き込み保存

[smtp.gmail.com]:587 ユーザ@gmail.com:パスワード

PWファイル生成

sasl_passwd.db という名前のファイルが生成される

# postmap /etc/postfix/sasl_passwd

ファイル削除

# rm /etc/postfix/sasl_passwd

Postfix の再起動

# /etc/init.d/postfix restart

送信方法

ログイン名で送信される

$ echo "本文" | mail -s "件名" 送信先メールアドレス

PHP のインストール

CentOS 6.2 ではリポジトリ登録する必要ないみたい

# yum install php php-mbstring

書き方

PHP の項目を見ればおk

Kwartz のインストール

Kwartz - kuwata-lab.com

インストール

# gem install kwartz

コンバート

$ kwartz -l eruby -p ex.plogic ex.html > ex.erb

[ex.html] プレゼンテーションデータファイル

<table>
    <tr id="list">
        <td id="mark:item">Foo</td>
    </tr>
    <tr id="dummy:d1">
        <td>Bar</td>
    </tr>
</table>

[ex.plogic] プレゼンテーションロジックファイル

#list {
    logic: {
        for member in @members
            _stag
            _cont
            _etag
        end
    } 
}
#item {
    value: @x;
}

[ex.erb] テンプレートファイル

<table>
<%         for member in @members %>
    <tr id="list">
        <td><%= @x %></td>
    </tr>
<%         end %>
</table>

Thinreports

帳票ソリューション for Ruby and Rails | ThinReports

インストール

# gem install thinreports

サンプル

http://osc.matsukei.net/projects/thinreports/wiki/Examples

レポジトリの追加

PostgreSQL

# yum install postgresql postgresql-server

postgresql 起動/停止/再起動

# /etc/rc.d/init.d/postgresql {start/stop/restart}

or

# /etc/init.d/postgresql {start/stop/restart}

自動起動/停止

# chkconfig postgresql {on/off}

自動起動設定確認

# chkconfig --list postgresql

vsftpd インストール

# yum install vsftpd

設定

設定ファイル:/etc/vsftpd/vsftpd.conf

anonymousユーザ(匿名ユーザ)のログイン禁止

anonymous_enable=YES
↓
anonymous_enable=NO

ローカルユーザのアクセス許可

local_enable=YES

アスキーモードでのアップロード/ダウンロードを許可

#ascii_upload_enable=YES
#ascii_download_enable=YES
↓
ascii_upload_enable=YES
ascii_download_enable=YES

ホームディレクトリより上層へのアクセスを禁止する

#chroot_local_user=YES
↓
chroot_local_user=YES

ホームディレクトリより上層へのアクセスを許可するユーザのリストの有効化

#chroot_list_enable=YES
↓
chroot_list_enable=YES

vsftpd 起動/停止/再起動

# /etc/rc.d/init.d/vsftpd {start/stop/restart}

or

# /etc/init.d/httpd {start/stop/restart}

自動起動/停止

# chkconfig vsftpd {on/off}

自動起動設定確認

# chkconfig --list vsftpd

TeamViewer? のインストール

ダウンロード

公式サイトでダウンロードリンクを確認した方がいいかも

$ wget -c http://www.teamviewer.com/download/teamviewer_linux.rpm

実行に必要なパッケージをインストール

インストールの際に以下のようにエラーを吐く

# rpm -ivh teamviewer_linux.rpm
警告: teamviewer_linux.rpm: ヘッダ V3 DSA/SHA1 Signature, key ID 72db573c: NOKEY
エラー: 依存性の欠如:
	alsa-lib(x86-32) は teamviewer7-7.0.9360-1.i386 に必要とされています
	zlib(x86-32) は teamviewer7-7.0.9360-1.i386 に必要とされています
	libSM(x86-32) は teamviewer7-7.0.9360-1.i386 に必要とされています
	libXext(x86-32) は teamviewer7-7.0.9360-1.i386 に必要とされています
	libXtst(x86-32) は teamviewer7-7.0.9360-1.i386 に必要とされています
	libXdamage(x86-32) は teamviewer7-7.0.9360-1.i386 に必要とされています
	libXfixes(x86-32) は teamviewer7-7.0.9360-1.i386 に必要とされています
	libXrender(x86-32) は teamviewer7-7.0.9360-1.i386 に必要とされています
	freetype(x86-32) は teamviewer7-7.0.9360-1.i386 に必要とされています

それぞれのソフトが提供されているパッケージ名を調べるために「search」コマンドまたは「provides」コマンドを用いる

# yum search ソフト名

or

# yum provides ソフト名

対象のパッケージには「32bit」版と「64bit」版があるのでエラーで表示されている「*.i386」の「32bit」版をインストール

[2012/09/02]の段階では以下がインストール対象だった

# yum install alsa-lib-1.0.22-3.el6.i686 zlib-1.2.3-27.el6.i686 libSM-1.1.0-7.1.el6.i686 libXext-1.1-3.el6.i686 libXtst-1.0.99.2-3.el6.i686 libXdamage-1.1.2-1.el6.i686 libXfixes-4.0.4-1.el6.i686 libXrender-0.9.5-1.el6.i686 freetype-2.3.11-6.el6_2.9.i686

インストール

# rpm -ivh teamviewer_linux.rpm

FFmeg のインストール

開発環境

# yum install gcc gcc-c++ make autoconf pkgconfig which wget bzip2 unzip patch nasm

# yum install git subversion

# yum install libpng-devel libtiff-devel lcms-devel libogg-devel libvorbis-devel

x264 や Xvid をコンパイルする際に必要な Yasm のインストール

下記のURLからダウンロードリンク確認

http://yasm.tortall.net/Download.html

$ wget http://www.tortall.net/projects/yasm/releases/yasm-1.2.0.tar.gz
$ tar zxvf yasm-1.2.0.tar.gz
$ cd yasm-1.2.0
$ ./configure
$ make
# make install

mp4にエンコードするために必要な x264 のインストール

$ git clone git://git.videolan.org/x264
$ cd x264
$ ./configure --enable-shared --enable-pic
$ make
# make install

FFmpeg インストール時のオプション

--enable-libx264

aacエンコードに必要な FAAC のインストール

下記のURLからダウンロードリンク確認

http://sourceforge.net/projects/faac/files/faad2-src/

$ wget http://sourceforge.net/projects/faac/files/faac-src/faac-1.28/faac-1.28.tar.gz/download
$ tar zxvf faac-1.28.tar.gz
$ cd faac-1.28
$ ./configure
$ make
# make install

FFmpeg インストール時のオプション

--enable-libfaac

mp3エンコードに必要な Lame のインストール

下記のURLからダウンロードリンク確認

http://sourceforge.net/projects/lame/files/lame/

$ wget http://sourceforge.net/projects/lame/files/lame/3.99/lame-3.99.5.tar.gz/download
$ tar zxvf lame-3.99.5.tar.gz
$ cd lame-3.99.5
$ ./configure
$ make
# make install

FFmpeg インストール時のオプション

--enable-libmp3lame

opencore-amr のインストール

下記のURLからダウンロードリンク確認

http://sourceforge.net/projects/opencore-amr/files/opencore-amr/

$ wget http://sourceforge.net/projects/opencore-amr/files/opencore-amr/0.1.2/opencore-amr-0.1.2.tar.gz/download
$ tar zxvf opencore-amr-0.1.2.tar.gz
$ cd opencore-amr-0.1.2
$ ./configure
$ make
# make install

FFmpeg インストール時のオプション

--enable-libopencore-amrnb
--enable-libopencore-amrwb

ogg のインストール

下記のURLからダウンロードリンク確認

http://downloads.xiph.org/releases/ogg/

$ wget http://downloads.xiph.org/releases/ogg/libogg-1.3.0.tar.gz
$ tar zxvf libogg-1.3.0.tar.gz
$ cd libogg-1.3.0
$ ./configure
$ make
# make install

Vorbis Audio Compression のインストール

下記のURLからダウンロードリンク確認

http://downloads.xiph.org/releases/vorbis/

$ wget http://downloads.xiph.org/releases/vorbis/libvorbis-1.3.3.tar.gz
$ tar zxvf libvorbis-1.3.3.tar.gz
$ cd libvorbis-1.3.3
$ ./configure
$ make
# make install

FFmpeg インストール時のオプション

--enable-libvorbis

Theora Video Compression のインストール

下記のURLからダウンロードリンク確認

http://www.theora.org/downloads/

$ wget http://downloads.xiph.org/releases/theora/libtheora-1.1.1.zip
$ unzip libtheora-1.1.1.zip
$ cd libtheora-1.1.1
$ ./configure
$ make
# make install

FFmpeg インストール時のオプション

--enable-libtheora

WebMコーデックの VP8 Codec SDK のインストール

$ git clone http://git.chromium.org/webm/libvpx.git
$ cd libvpx/
$ ./configure --disable-examples --enable-pic
$ make
# make install

FFmpeg インストール時のオプション

--enable-libvpx

Xvid のインストール

下記のURLからダウンロードリンク確認

http://www.xvid.org/Downloads.43.0.html

$ wget http://downloads.xvid.org/downloads/xvidcore-1.3.2.tar.gz
$ tar zxvf xvidcore-1.3.2.tar.gz
$ cd xvidcore/build/generic/
$ ./configure
$ make
# make install

FFmpeg インストール時のオプション

--enable-libxvid

OpenJPEG のインストール

下記のURLからダウンロードリンク確認

http://code.google.com/p/openjpeg/downloads/list

$ wget http://openjpeg.googlecode.com/files/openjpeg-1.5.0.tar.gz
$ tar zxvf openjpeg-1.5.0.tar.gz
$ cd openjpeg-1.5.0/
$ ./configure
$ make
# make install

FFmpeg インストール時のオプション

--enable-libopenjpeg

SDL のインストール

下記のURLからダウンロードリンク確認

http://www.libsdl.org/release/

$ wget http://www.libsdl.org/release/SDL-1.2.9.tar.gz
$ tar zxvf SDL-1.2.9.tar.gz
$ cd SDL-1.2.9
$ ./configure --enable-ipod --enable-x11-shared --enable-video-carbon
$ make
# make install

ffmpeg のインストール

$ svn checkout svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg
$ cd ffmpeg
$ ./configure --enable-shared --enable-gpl --enable-version3 --enable-nonfree --enable-libx264 --enable-libfaac --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libvorbis --enable-libtheora --enable-libvpx --enable-libxvid --enable-libopenjpeg
$ make
# make install

オプション

http://fkob.net/blog/2012/02/centos-ffmpeg%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB/

--enable-postproc --enable-x11grab

http://www.upken.jp/kb/ffmpeg-centos.html

--disable-ffplay --disable-ffserver --enable-pthreads --enable-libgsm --disable-debug

インストールされたライブラリを読み込む

# echo '/usr/local/lib' >> /etc/ld.so.conf
$ ldconfig

How To

バージョン確認

$ ffmpeg -version

対応しているコーデックを確認

$ ffmpeg -codecs

flv => mp4

$ ffmpeg -i before.flv after.mp4

mp4 => flv

$ ffmpeg -i before.mp4 after.flv

mp4 => mov

$ ffmpeg -i before.mp4 after.mov

mp4 => wav

$ ffmpeg -y -i before.mp4 after.wav

? => ogg

$ ffmpeg -i before.mp4 -vcodec libtheora -acodec libvorbis after.ogg

動画ファイルから音声を抜き取る

$ ffmpeg -i before.mp4 after.mp3

動画ファイルから音声のみ削除

$ ffmpeg -i before.mp4 -an -vcodec libx264 -vpre medium after.mp4 

拡大/縮小

$ ffmpeg -i before.mp4 -s 640x480 after.mp4

ビデオ・コーデックの変換

$ ffmpeg -i before.mp4 -vcodec libx264 -vpre medium after.mp4

サムネイル作成

$ ffmpeg -i before.flv -f image2 -vframes 1 -s 320x240 after.jpg

音楽再生

wav 再生

$ aplay sample.wav

mp3 再生

mpg321 に必要なソフトのインストール

下記のURLからダウンロードリンク確認してダウンロード

http://pkgs.org/download/mpg321

$ wget http://elders.princeton.edu/data/puias/6/x86_64/os/Addons/mpg321-0.2.10.6-3.puias6.x86_64.rpm

インストールコマンドを実行するとエラーを吐く

[user@localhost Downloads]# rpm -ivh mpg321-0.2.10.6-3.puias6.x86_64.rpm
警告: mpg321-0.2.10.6-3.puias6.x86_64.rpm: ヘッダ V3 RSA/SHA256 Signature, key ID 41a40948: NOKEY
エラー: 依存性の欠如:
	libid3tag.so.0()(64bit) は mpg321-0.2.10.6-3.puias6.x86_64 に必要とされています
	libmad.so.0()(64bit) は mpg321-0.2.10.6-3.puias6.x86_64 に必要とされています

以下のサイトで「libid3tag.so.0()(64bit)」「libmad.so.0()(64bit)」と検索するとそのファイルを含むパッケージのダウンロードリストが表示される

http://rpm.pbone.net/

【 libmad.so.0()(64bit) 】

$ wget www-ccrma.stanford.edu/planetccrma/mirror/centos/linux/planetccrma/5/x86_64/libmad-0.15.1b-5.el5.ccrma.x86_64.rpm
# rpm -ivh libmad-0.15.1b-5.el5.ccrma.x86_64.rpm

【 libid3tag.so.0()(64bit) 】

$ wget http://mirror.centos.org/centos/6/os/x86_64/Packages/libid3tag-0.15.1b-11.el6.x86_64.rpm
# rpm -ivh libid3tag-0.15.1b-11.el6.x86_64.rpm

インストール

# rpm -ivh mpg321-0.2.10.6-3.puias6.x86_64.rpm

再生

$ mpg321 sample.mp3

ogg 再生

ogg123 のインストール

下記のURLからダウンロードリンク確認

CentOS6 64bit 最新版 [2012/09/07]

http://pkgs.org/centos-6-rhel-6/centos-rhel-x86_64/vorbis-tools-1.2.0-7.el6.x86_64.rpm.html#download

$ wget http://mirror.centos.org/centos/6/os/x86_64/Packages/vorbis-tools-1.2.0-7.el6.x86_64.rpm
# rpm -ivh vorbis-tools-1.2.0-7.el6.x86_64.rpm

再生

$ ogg123 sample.ogg

debパッケージをrpmパッケージへ変換

# yum install rpm-build

下記のURLからダウンロードリンク確認してダウンロード

http://ftp.debian.org/debian/pool/main/a/alien/

rpmbuild は実行ユーザのホームディレクトリの rpmbuild にrpmが作成される

$ wget http://ftp.debian.org/debian/pool/main/a/alien/alien_8.81.tar.gz
# yum install perl-ExtUtils-MakeMaker
$ rpmbuild -ta alien_8.81.tar.gz
$ cd ~/rpmbuild/RPMS/noarch/
# rpm -ivh alien-8.81-1.noarch.rpm

deb => rpm

$ alien --to-rpm *.deb

Netpbm のインストール

画像変換ソフト

例)画像をアスキーアートに変換

# yum install netpbm-progs

jpg => AA

$ jpegtopnm INPUT.jpg | ppmtopgm | pnmscale -width 158 | pgmnorm | pgmtopbm | pbmtoascii -2x4 > OUTPUT.txt

png => AA

$ pngtopnm INPUT.png | ppmtopgm | pgmtopbm -dither8 | pbmtoascii > OUTPUT.txt

動画からアスキーアート作成

参考

準備

まず以下の2つを終わらせて下さい

動画変換

出力ファイル名は「%d」を用いて連番にした方がいい

PNG

$ ffmpeg -i tage_file -f image2 -vcodec png %d.png

JPEG 1

$ ffmpeg -i tage_file -f image2 %d.jpg

JPEG 2

$ ffmpeg -i tage_file -f image2 -vcodec mjpeg -qscale 1 -qmin 1 -qmax 1 %d.jpg

動画変換用のスクリプト

下記のコードを「convert.sh」などで保存して実行すれば動画をアスキーアートに変換

第一引数:変換タイプ [ -j , -j2 , -p ]

第二引数:動画ファイル

convert.sh

#!/bin/sh

TEMP_FILE='.FILE_LIST.tmp'

make_temp_file() {
  cd ${NAME}
  ls -F | grep -v ./ > ${TEMP_FILE}
  cd ../.
}

convert_png() {
  BUFIFS=${IFS}
  IFS=
  exec 3< ${NAME}/${TEMP_FILE}
  while read FL 0<&3
  do
    T_NAME=${FL##*/}
    T_FILE_NAME=${T_NAME%.*}
    pngtopnm ${NAME}/${FL} | ppmtopgm | pgmtopbm -dither8 | pbmtoascii > ${NAME}/${T_FILE_NAME}.txt
    rm ${NAME}/${FL}
  done
  exec 3<&-
  IFS=${BUFIFS}
}

convert_jpg() {
  echo ${TEMP_FILE}
  BUFIFS=${IFS}
  IFS=
  exec 3< ${NAME}/${TEMP_FILE}
  while read FL 0<&3
  do
    T_NAME=${FL##*/}
    T_FILE_NAME=${T_NAME%.*}
    #jpegtopnm ${NAME}/${FL} | ppmtopgm | pnmscale -width 158 | pgmnorm | pgmtopbm | pbmtoascii -2x4 > ${NAME}/${T_FILE_NAME}.txt
    jpegtopnm ${NAME}/${FL} | ppmtopgm | pnmscale -height 150 | pgmnorm | pgmtopbm | pbmtoascii > ${NAME}/${T_FILE_NAME}.txt
    rm ${NAME}/${FL}
  done
  exec 3<&-
  IFS=${BUFIFS}
}

if [ ! $# -eq 2 ] ; then
  echo 'No Argument !'
  exit
fi

if [ -f $2 ] ; then
    FILE_NAME=${2##*/}
    NAME=${FILE_NAME%.*}
    rm -fr ${NAME}
    mkdir ${NAME}
else
  echo 'No File !';
  exit
fi

case $1 in
  '-j' )
    ffmpeg -i $2 -f image2 ${NAME}/%d.jpg
    make_temp_file
    convert_jpg
  ;;
  '-j2' )
    ffmpeg -i $2 -f image2 -vcodec mjpeg -qscale 1 -qmin 1 -qmax 1 ${NAME}/%d.jpg
    make_temp_file
    convert_jpg
  ;;
  '-p' )
    #ffmpeg -i $2 -f image2 -vcodec png ${NAME}/%d.png
    ffmpeg -i $2 -s qcif -f image2 ${NAME}/%d.jpg
    make_temp_file
    convert_png
  ;;
  * )
    echo 'No Convert Type !'
    exit
  ;;
esac

# Delete Temp File
rm -fr ${NAME}/${TEMP_FILE}

# Compression
rm -fr ${NAME}.zip
cd ${NAME}
zip ../${NAME}.zip ./*
cd ../.

# Delte Temp File
rm -fr ${NAME}

Webサーバー間通信内容暗号化(自己証明書)

ユーザ名やパスワード等の機密情報を暗号化して通信を行うシステム

URLが https://~ のやつ

mod_ssl のインストール

# yum install mod_ssl

サーバーの証明書有効期限の変更

# cd /etc/pki/tls/certs/

Makefile のバックアップ

# cp -p Makefile Makefile.orig

サーバー用証明書有効期限を1年から10年に変更

# sed -i 's/365/3650/g' Makefile

サーバー用秘密鍵/証明書作成

# make server.crt

以下が実行結果

[root@localhost certs]# make server.crt
umask 77 ; \
	 /usr/bin/openssl genrsa -aes128 2048 > server.key
Generating RSA private key, 2048 bit long modulus
................+++
.......+++
e is 65537 (0x10001)
Enter pass phrase:【任意のパスワード】
Verifying - Enter pass phrase:【上記のパスワード】
umask 77 ; \
	 /usr/bin/openssl req -utf8 -new -key server.key -x509 -days 3650 -out server.crt -set_serial 0
Enter pass phrase for server.key:【上記のパスワード】
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:JP
State or Province Name (full name) []:【都道府県 : 例) Tokyo】
Locality Name (eg, city) [Default City]:【市町村 : 例) chiyoda】
Organization Name (eg, company) [Default Company Ltd]:【サイト応答(何でもOK) : 例) batako.net】
Organizational Unit Name (eg, section) []:【空のままEnter】
Common Name (eg, your name or your server's hostname) []:【Webサーバー名応答 : 例) batako.net】
Email Address []:【管理者メールアドレス】

サーバー用秘密鍵からパスワード削除

パスワードを削除するのは、Webサーバー起動時にパスワードを要求されないようにするため

[root@localhost certs]# openssl rsa -in server.key -out server.key 
Enter pass phrase for server.key:【上記で入力したパスワード】
writing RSA key 

SSL 設定

ApachSSL設定ファイルのバックアップ

# cp -p /etc/httpd/conf.d/ssl.conf /etc/httpd/conf.d/ssl.conf.orig

ApachSSL設定ファイル編集

# vi /etc/httpd/conf.d/ssl.conf

サーバー用証明書を指定

SSLCertificateFile /etc/pki/tls/certs/localhost.crt
↓
SSLCertificateFile /etc/pki/tls/certs/server.crt

サーバー用秘密鍵を指定

SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
↓
SSLCertificateKeyFile /etc/pki/tls/certs/server.key

対象範囲

#DocumentRoot "/var/www/html"
↓
DocumentRoot "/var/www/html"

ApachSSL設定ファイルの編集箇所の確認

編集箇所以外を編集してしまっていないかオリジナルと確認

# diff ssl.conf ssl.conf.orig

以下実行結果

[root@localhost conf.d]# diff ssl.conf ssl.conf.orig 
77c77
< DocumentRoot "/var/www/html"
---
> #DocumentRoot "/var/www/html"
105c105
< SSLCertificateFile /etc/pki/tls/certs/server.crt
---
> SSLCertificateFile /etc/pki/tls/certs/localhost.crt
112c112
< SSLCertificateKeyFile /etc/pki/tls/certs/server.key
---
> SSLCertificateKeyFile /etc/pki/tls/private/localhost.key

Apacheに設定反映

# /etc/rc.d/init.d/httpd restart

ポート解放

ポートは 443番 を使用するので解放しておく事!

Webサーバー間通信内容暗号化(第三者機関による証明書)

参考サイト

証明書提供サイト

CSR作成手順

# cd /etc/httpd/conf.d/ssl/
# openssl md5 * > rand.dat
# openssl genrsa -rand rand.dat -des3 2048 > 2012_10_key.pem

任意のパスワードを入力

[root@localhost certs]# openssl req -new -key 2012_10_key.pem -out 2012_10_csr.pem
421 semi-random bytes loaded
Generating RSA private key, 2048 bit long modulus
.................+++
............................................................................+++
e is 65537 (0x10001)
Enter pass phrase:
Verifying - Enter pass phrase:
140229754414920:error:28069065:lib(40):UI_set_result:result too small:ui_lib.c:869:You must type in 4 to 8191 characters
Enter pass phrase:
Verifying - Enter pass phrase:
[root@localhost certs]# openssl req -new -key 2012_10_key.pem -out 2012_10_csr.pem
Enter pass phrase for 2012_10_key.pem:
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:【国名 : 例) JP】
State or Province Name (full name) []:【都道府県 : 例) Tokyo】
Locality Name (eg, city) [Default City]:【市町村 : 例) chiyoda】
Organization Name (eg, company) [Default Company Ltd]:【会社名・団体名 : 例) Batako Studio】
Organizational Unit Name (eg, section) []:【部門名・部署名など】
Common Name (eg, your name or your server's hostname) []:【作成する対象のドメイン : 例) *.batako.net】
Email Address []:【メールアドレス】

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:【空のままEnter】
An optional company name []:【空のままEnter】

CSRファイルに書かれている文字をメモする

BEGIN から END まで全て

[root@localhost certs]# cat 2012_10_csr.pem 
-----BEGIN CERTIFICATE REQUEST-----
3ZwYw5AQP3XavsbaBhANE+53yCnVDucThGDoO+900caeuJCP6p8mapVeW6mjvlX9
GTr/LFOpQJCEtzpVGKmoicIfeHZ1+FHELN+ausvSufV5zFHneOPrC3gWDfTiX2xx
W4PN2AjUnTKnKMXFIMYZ26LAZ7bOoS9/EYasLuYdIOsT7laqmGf6q8G4wvVkwLA/
s5haihtIUz/9zPS0OwJCapoRjNYcPlnW7xTO9z5dBZTNccjZ5qKksXGUcrd7uzXv
j96MwWWtRP7heSPRkLJT53IOXoceoW4g73/vdE5Pg/Qfg+mU2q6OVl+a4MyYEole
DYkpPGyI
-----END CERTIFICATE REQUEST-----

証明書提供サイトでの作業

CSR作成した時に入力したコモン名(ドメイン)とCSRのデータを貼付けて申請すればおk

申し込み時の承認用メールアドレスにメールがくるので確認

サーバ証明書ファイル

ダウンロード

SSLBOX の場合だと証明書詳細-情報一覧の「CERT(SSL証明書) 」をダウンロード

リネーム

「RAPID1088072.cert」→「2012_10_crt.pem」

アップロード

以下のディレクトリにアップロード

/etc/httpd/conf.d/ssl/

設定のパスを正しく設定すればコピー先はどこでもOK

ApachSSL設定ファイル編集

# vi /etc/httpd/conf.d/ssl.conf

編集内容

SSLCertificateFile /etc/httpd/conf.d/ssl/2012_10_crt.pem    # サーバ証明書ファイル
SSLCertificateKeyFile /etc/httpd/conf.d/ssl/2012_10_key.pem # 秘密鍵ファイル

Apacheの再起動

Apacheを起動させると毎回パスワード入力が必要になる

[root@fb ssl]# /etc/rc.d/init.d/httpd restart
httpd を停止中:                                            [  OK  ]
httpd を起動中: Apache/2.2.3 mod_ssl/2.2.3 (Pass Phrase Dialog)
Some of your private key files are encrypted for security reasons.
In order to read them you have to provide the pass phrases.

Server fb.mototaker.com:443 (RSA)
Enter pass phrase:【秘密鍵ファイル作成時のパスワード】

OK: Pass Phrase Dialog successful.
                                                           [  OK  ]

Apacheの起動失敗時

おそらく「サーバ証明書ファイル」と「秘密鍵ファイル」が正しくない場合があります

確認方法

openssl x509 -noout -modulus -in 2012_10_crt.pem > crtmod
openssl rsa -noout -modulus -in 2012_10_key.pem > keymod
diff crtmod keymod

差分がなければOK

NTPサーバー起動

時間を調整してくれるやつ

インストール

# yum install ntpd

NTPサーバーに問い合わせ

# ntpdate ntp.nict.jp

NTPサーバー起動

# /etc/rc.d/init.d/ntpd start

自動起動

# chkconfig ntpd on

Postfix サーバー

設定ファイルのバックアップ

# cp /etc/postfix/main.cf /etc/postfix/main.cf.orig

設定ファイルの編集

# vi /etc/postfix/main.cf

変更内容

[root@localhost postfix]# diff main.cf main.cf.orig 
77d76
< myhostname = mail.batako.net
85d83
< mydomain = batako.net
102d99
< myorigin = $myhostname
116c113
< inet_interfaces = all
---
> #inet_interfaces = all
119c116
< #inet_interfaces = localhost
---
> inet_interfaces = localhost
422c419
< home_mailbox = Maildir/
---
> #home_mailbox = Maildir/

ペーシック認証

キーファイルの作成

パスワードファイルを新規で作成する場合は[-c]を付加

# htpasswd [-c] /etc/httpd/.htpasswd [ユーザ名]

対象設定

<Directory 'フォルダーのパス'>
    AuthUserFile /etc/httpd/.htpasswd
    AuthGroupFile /dev/null
    AuthName 'キーワード'
    AuthType Basic
    Require valid-user
</Directory>

ダイジェスト認証

キーファイルの作成

パスワードファイルを新規で作成する場合は[-c]を付加

# htdigest [-c] /etc/httpd/.htdigest 'キーワード' ユーザ名

対象設定

# vi /etc/httpd/conf/httpd.conf

AuthName? は キー生成時に入力したキーワードを入力

<Directory 'フォルダーのパス'>
    AuthType Digest
    AuthName 'キーワード'
    AuthUserFile /etc/httpd/.htdigest
    require valid-user
</Directory>

MySQL InnoDB Plugin を追加インストール

正常に動作しなかったがメモとして残しておく

ダウンロード

以下のリンクからURLを調べてダウンロード

http://ftp.jaist.ac.jp/pub/Linux/scientific/6/SRPMS/vendor/

$ wget http://ftp.jaist.ac.jp/pub/Linux/scientific/6/SRPMS/vendor/mysql-5.1.61-4.el6.src.rpm

ソース RPM のインストール

$ rpm -ihv mysql-5.1.61-4.el6.src.rpm

spec ファイルの編集

$ vi ~/rpmbuild/SPECS/mysql.spec

configure オプションに --with-plugins-innodb_plugin を追記

%configure \
    --with-readline \
    --with-ssl=/usr \
    --without-debug \
    --enable-shared \
    --with-embedded-server \
    --localstatedir=/var/lib/mysql \
    --with-unix-socket-path=/var/lib/mysql/mysql.sock \
    --with-mysqld-user="mysql" \
    --with-extra-charsets=all \
    --with-big-tables \
    --with-pic \
    --with-plugin-innobase \
    --with-plugins-innodb_plugin \
    --with-plugin-partition \
    --enable-local-infile \
    --enable-largefile \
    --enable-thread-safe-client \
    --disable-dependency-tracking

ビルド

rpm-build をインストールしてない場合はインストール

# yum install rpm-build

再ビルド

相当時間がかかるのでひたすら待つ

$ rpmbuild -bb ~/rpmbuild/SPECS/mysql.spec

再ビルドしたRPMファイルは「~/rpmbuild/RPMS/」に出力される

CentOS 6 x86_64 だと以下のようにエラー吐いた

エラー: ビルド依存性の失敗:
	readline-devel は mysql-5.1.61-4.el6.x86_64 に必要とされています
	openssl-devel は mysql-5.1.61-4.el6.x86_64 に必要とされています
	ncurses-devel は mysql-5.1.61-4.el6.x86_64 に必要とされています
	libtool は mysql-5.1.61-4.el6.x86_64 に必要とされています
	perl(Time::HiRes) は mysql-5.1.61-4.el6.x86_64 に必要とされています

readline-devel & ncurses-devel インストール

# yum install readline-devel-6.0-4.el6.x86_64

openssl-devel インストール

# yum install openssl-devel-1.0.0-25.el6_3.1.x86_64

libtool インストール

# yum install libtool-2.2.6-15.5.el6.x86_64

perl(Time::HiRes?) インストール

$ wget http://mirror.centos.org/centos/6/os/x86_64/Packages/perl-Time-HiRes-1.9721-127.el6.x86_64.rpm
# rpm -ivh perl-Time-HiRes-1.9721-127.el6.x86_64.rpm

InnoDB Plugin 追加

新規インストールの場合は次の 再ビルドしたRPMファイルのインストール の項目を参照

mysql-server をインストール済みの場合は再ビルドしたRPMファイルを展開し InnoDB Plugin だけをコピーしても動作する

$ rpmdev-extract rpmbuild/RPMS/x86_64/mysql-5.1.61-4.el6.src.rpm
$ cd mysql-server-5.1.52-1.el6.1.x86_64/usr/lib64/mysql/plugin/
$ cp -r ha_innodb_plugin.* /usr/lib64/mysql/plugin/

再ビルドしたRPMファイルのインストール

新規インストール時のみ実行

既にインストール済の場合は 再ビルドしたRPMファイルのインストール の項目を参照

再ビルドしたRPMファイルは「~/rpmbuild/RPMS/」に出力されている

以下のコマンドは64bit版の場合

$ cd ~/rpmbuild/RPMS/x86_64/
# rpm -Uvh mysql-5.1.61-4.el6.x86_64.rpm mysql-server-5.1.61-4.el6.x86_64.rpm
[root@localhost x86_64]# rpm -ivh mysql-server-5.1.61-4.el6.x86_64.rpm
エラー: 依存性の欠如:
	perl(DBI) は mysql-server-5.1.61-4.el6.x86_64 に必要とされています
	perl-DBD-MySQL は mysql-server-5.1.61-4.el6.x86_64 に必要とされています
	perl-DBI は mysql-server-5.1.61-4.el6.x86_64 に必要とされています

perl(DBI) & perl-DBI

perl-DBI 一覧

http://pkgs.repoforge.org/perl-DBI/

$ wget http://pkgs.repoforge.org/perl-DBI/perl-DBI-1.621-1.el6.rfx.x86_64.rpm
[root@localhost batako]# rpm -ivh perl-DBI-1.621-1.el6.rfx.x86_64.rpm
警告: perl-DBI-1.621-1.el6.rfx.x86_64.rpm: ヘッダ V3 DSA/SHA1 Signature, key ID 6b8d79e6: NOKEY
エラー: 依存性の欠如:
	perl(Test::Simple) は perl-DBI-1.621-1.el6.rfx.x86_64 に必要とされています

perl-Test-Simple 一覧

http://pkgs.repoforge.org/perl-Test-Simple/

$ wget http://pkgs.repoforge.org/perl-Test-Simple/perl-Test-Simple-0.98-1.el6.rfx.noarch.rpm
# rpm -ivh perl-Test-Simple-0.98-1.el6.rfx.noarch.rpm
# rpm -ivh perl-DBI-1.621-1.el6.rfx.x86_64.rpm

perl-DBD-MySQL

# yum install perl-DBD-MySQL-4.013-3.el6.x86_64

InnoDB Plugin を有効にする

# vi /etc/my.cnf

設定内容は以下のリンクから

http://www.maruko2.com/mw/CentOS/MySQL_InnoDB_Plugin_%E3%82%92%E8%BF%BD%E5%8A%A0%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8B

http://d.hatena.ne.jp/sh2/20110720

依存関係問題

例えば以下のようにインストールする際に依存関係でエラーを吐く事がある

# rpm -ivh teamviewer_linux.rpm
警告: teamviewer_linux.rpm: ヘッダ V3 DSA/SHA1 Signature, key ID 72db573c: NOKEY
エラー: 依存性の欠如:
	alsa-lib(x86-32) は teamviewer7-7.0.9360-1.i386 に必要とされています
	zlib(x86-32) は teamviewer7-7.0.9360-1.i386 に必要とされています
	libSM(x86-32) は teamviewer7-7.0.9360-1.i386 に必要とされています
	libXext(x86-32) は teamviewer7-7.0.9360-1.i386 に必要とされています
	libXtst(x86-32) は teamviewer7-7.0.9360-1.i386 に必要とされています
	libXdamage(x86-32) は teamviewer7-7.0.9360-1.i386 に必要とされています
	libXfixes(x86-32) は teamviewer7-7.0.9360-1.i386 に必要とされています
	libXrender(x86-32) は teamviewer7-7.0.9360-1.i386 に必要とされています
	freetype(x86-32) は teamviewer7-7.0.9360-1.i386 に必要とされています

それぞれのソフトが提供されているパッケージ名を調べるために「search」コマンドまたは「provides」コマンドを用いる

# yum search ソフト名

or

# yum provides ソフト名

あとは表示されたソフトをインストールすればおk

ソフトが見つからない場合は以下のようなサイトでエラー文で調べたら出てくるかも

RPM Search

Linux Free Software Catalog and Packages Search - pkgs.org

リンク切れの場合もあるからソフト名で再検索してインストールすればおk

Postfix インストール

インストール後

mb_send_mailでメール送信できないときにalternativesコマンドを使ってMTAを確認・変更する - I’m hungry

利用メールサーバー確認

[root@fb ~]# alternatives --display mta
mta - ステータスは手動です。
リンクは現在 /usr/sbin/sendmail.postfix を指しています。
/usr/sbin/sendmail.sendmail - 優先項目 90
 スレーブ mta-pam: /etc/pam.d/smtp.sendmail
 スレーブ mta-mailq: /usr/bin/mailq.sendmail
 スレーブ mta-newaliases: /usr/bin/newaliases.sendmail
 スレーブ mta-rmail: /usr/bin/rmail.sendmail
 スレーブ mta-sendmail: /usr/lib/sendmail.sendmail
 スレーブ mta-mailqman: /usr/share/man/man1/mailq.sendmail.1.gz
 スレーブ mta-newaliasesman: /usr/share/man/man1/newaliases.sendmail.1.gz
 スレーブ mta-aliasesman: /usr/share/man/man5/aliases.sendmail.5.gz
 スレーブ mta-sendmailman: /usr/share/man/man8/sendmail.sendmail.8.gz
/usr/sbin/sendmail.postfix - 優先項目 30
 スレーブ mta-pam: /etc/pam.d/smtp.postfix
 スレーブ mta-mailq: /usr/bin/mailq.postfix
 スレーブ mta-newaliases: /usr/bin/newaliases.postfix
 スレーブ mta-rmail: /usr/bin/rmail.postfix
 スレーブ mta-sendmail: /usr/lib/sendmail.postfix
 スレーブ mta-mailqman: /usr/share/man/man1/mailq.postfix.1.gz
 スレーブ mta-newaliasesman: /usr/share/man/man1/newaliases.postfix.1.gz
 スレーブ mta-aliasesman: /usr/share/man/man5/aliases.postfix.5.gz
 スレーブ mta-sendmailman: /usr/share/man/man1/sendmail.postfix.1.gz
現在の「最適」バージョンは /usr/sbin/sendmail.sendmail です。

メールサーバー切り替え

[root@fb ~]# alternatives --config mta

2 プログラムがあり 'mta' を提供します。

  選択       コマンド
-----------------------------------------------
*+ 1           /usr/sbin/sendmail.sendmail
   2           /usr/sbin/sendmail.postfix

Enter を押して現在の選択 [+] を保持するか、選択番号を入力します:2

自動起動ログイン

/etc/gdm/custom.conf

[daemon]
TimedLoginEnable=true
TimedLogin=sunone
TimedLoginDelay=3

ユーザ一覧

# cat /etc/passwd

メモ

Kdump

Insufficient memory to auto-enable kdump. Use system-config-kdump to configure manually
gem uninstall therubyracer libv8

メール文字化け

№1819 mail コマンド 件名文字化け - Web Patio - CentOSで自宅サーバー構築

echo "テスト" | nkf -j | mail -s `echo "テスト" | nkf -j | nkf -M` hoge@hoge.jp

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2016-01-16 (土) 18:03:29 (435d)