:::: MENU ::::
Posts tagged with: Redhat

PHP5.6のgd-lastがyum更新で失敗する

CentOS/sl6のyumにて、いつも通り更新を行ってましたが、gd-lastで引っかかってました。

エラー: パッケージ: gd-last-2.2.5-1.el6.remi.x86_64 (remi)
要求: libwebp.so.5()(64bit)

libwebpを要求しているようなので、epelからlibwebpをインストールするだけで解決

epelがまだインストールされていない方は、
# yum -y install epel-release
# yum update
libwebpをインストール
# yum -y install libwebp --enablerepo=epel

gd-lastをインストール
# yum -y install gd-last --enablerepo=remi


Linux上で重複したファイルを探して削除する

Linux上で重複したファイルを削除するツールにfdupesというツールがあります。
findなどで、単にファイル名やファイルサイズを比較しても、中身が同じであるとは限りませんが、fdupesは、ファイルサイズとmd5ハッシュ値を比較して、重複ファイルを抽出するので、ほぼ間違いないツールだと思います。

fdupesは標準では入っていないので、インストールする必要があります。
Debian系だと、そのままapt-getでインストール

# apt-get -y install fdupes

RedHat系だとepelのリポジトリにてインストール出来ます。

# yum -y install fdupes --enablerepo=epel

使い方
あるディレクトリ内を再帰的に重複ファイルを検索

$ fdupes -r ~/Dropbox/

重複ファイルを対話形式で削除

$ fdupes -rd ~/Dropbox/

最初に検索されたファイルを除外し、確認しながら削除

$ fdupes -frdN ~/Dropbox/

最初に検索されたファイル以外を問答無用で削除

$ fdupes -fr ~/Dropbox/ | xargs rm

注意事項
-fの引数で最初に検索されたものが除外されるが、果たして、この除外されたファイルが実際に残しておかなくてはならないのか判断する必要があります。
中には重複したファイルが、あるディレクトリ内になくてはならないものも存在します。

ですので、一番安心な方法は、fdupes -rで検索した結果をリスト化して、自分の判断で削除する事ですね。

$ fdupes -rf ~/Dropbox/ | sort | uniq | grep -v '^$' > duplicate.txt

ルート領域がフルになりそうなのでコマンドラインで確認してみる

このサイトでは、Sientific Linux 6.xの64bitで運用しており、ハードディスク容量を見てみたところ、99%使用で、危うく100%超しそうでした。

WindowsやMacでは、GUIでグラフィカルなHDD容量チェックルーツがたくさんあります。もちろんLinuxでもないわけではありませんが、コマンドラインの方が簡単で慣れてるので、コマンドラインでチェックです。

全体の容量を見るには、df -Hでパーティション毎に、容量情報を見ることが出来ます。
調べてみたところ、ルート(/)領域が99%で、その中でも/usr以下がほぼ占めてた。

それで、/usr/以下を下記コマンドで調べてみた。

# du -s /usr/* | sort -n
1.5M ./bin
4.0K ./etc
4.0K ./games
4.0K ./lib64
4.0K ./libexec
4.0K ./sbin
4.0K ./src
36G ./vpnserver
87M ./lib
382M ./rbenv
436K ./share
688K ./include

vpnserver下が圧倒的に容量を喰っていたので、さらに調べていったら、ログが溜まっていたのが原因でした。
あっさりとログを削除したころ、HDD空き容量が99%から20%にも減りましたとさ。


CentOSにYUMでownCloudをインストール

CentOS 6.xにYUMのリポジトリを追加して、yumにてownCloudをインストール

# cd /etc/yum.repos.d/
# wget http://download.opensuse.org/repositories/isv:ownCloud:community/CentOS_CentOS-6/isv:ownCloud:community.repo
# yum update 
# yum info owncloud
Name        : owncloud
Arch        : noarch
Version     : 6.0.2
Release     : 8.1
Size        : 46 M
Repo        : isv_ownCloud_community

# yum install owncloud --enablerepo=epel

ownCloudの依存パッケージで下記のようなエラーが出る場合にはepelリポジトリを読み込む事。

Error: Package: owncloud-6.0.2-8.1.noarch (isv_ownCloud_community)
Requires: php-pear-MDB2-Driver-mysqli
Error: Package: owncloud-6.0.2-8.1.noarch (isv_ownCloud_community)
Requires: php-pear-Net-Curl

ちなみに、他のLinuxディストリビューションのインストールは、こちらにて。


APCからZend OPcacheへ変更

Scientific Linux(sl6)で運営しているこちらのサイトで、APCをやめて、Zend OPcacheへ変更してみた。

現状の環境は、

Scientific Linux: 6.4
PHP: 5.4.19 (php-fpm)
nginx: 1.4.2
APC

Zend OPcache導入

redhat系のsl6,CentOS,Fedoraではパッケージが用意されていないようなので、githubからソースプログラムを引っ張って、コンパイル・ダウンロードする。

その前に、php-deveが必要なので、php-develをインストールしておく。

# yum install php-devel --enablerepo=remi

githubからインストールまでの作業

$ sudo yum install php-devel --enablerepo=remi

$ git clone https://github.com/zend-dev/ZendOptimizerPlus.git
$ cd ZendOptimizerPlus
$ phpize
$ ./configure --with-php-config=/usr/bin/php-config
$ make
$ make test
$ sudo make install

make installで、/usr/lib64/php/modules/opcache.soがインストールされるので、これをphp.iniで読み込む

php.iniに下記を追記

/usr/lib64/php/modules/opcache.so

APCが読み込まれているので、これを無効にする。

# cd  /etc/php.d/
# mv apc.ini apc.ini.bak

nginx再起動し、確認

# /sbin/service nginx restart
# php -v
PHP 5.4.19 (cli) (built: Aug 22 2013 08:03:53)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies
  with Zend OPcache v7.0.3-dev, Copyright (c) 1999-2013, by Zend Technologies

with Zend OPcacheが表示されればOK。


Linuxディストリビューションのバージョン確認

ちょいと、仕事で必要だったのでLinuxディストリビューションのバージョン確認方法を調べてみた。

Redhat系

Fedora
$ cat /etc/fedora-release 
Fedora release 19 (Schrödinger’s Cat)

Scientific Linux
$ cat /etc/redhat-release
Scientific Linux release 6.4 (Carbon)

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

RedHat/Enterprise
$ cat /etc/redhat-release
Red Hat Enterprise Linux Server release 5.6 (Tikanga)

Turbolinux
$ cat /etc/turbolinux-release
Turbolinux Server 6.5 (Jupiter)

openSUSE
$ cat /etc/SuSE-release
openSUSE 12.3 (x86_64) VERSION = 12.3 CODENAME = Dartmouth

 

Debian

Debian
$ cat /etc/debian_version
7.1

Ubuntu
$ cat /etc/debian_version
squeeze/sid

 

参考までに、

Unix/BSD

Solaris
$ uname -sr
SunOS 5.10

FreeBSD
$ uname -sr
FreeBSD 9.1-RELEASE

Mac
$ uname -sr
Darwin 12.4.0

 

この他にも沢山のLinuxディストリビューションが存在しますが、下記の2つだけ覚えておけば良いようです。

  • Linux系では、/etc/issueを閲覧
  • Unix/BSD系では、uname -srを実行

Redhat6系でuconvはどこ?

CentOSsl6 6系のyumパッケージで、uconvが見つからない。

yum searchで見つからないし、remi,epel,rpmforgeのリポジトリでも見つからないと思ったら、icuと言うパッケージに入ってた。

icuって病室みたいな名前だけど、International Components for Unicodeの略

# yum install icu

これで、uconvやmakeconvなどのなどがインストールされる。


Linuxにnamebenchをインストール

namebenchをLinuxにインストールした。
ソースからビルドしてインストールするので、Linux全般に導入可能。

尚、コンパイル・実行には、pythonで書かれているので、python必須

  1. ソースをダウンロード
    $ wget -c http://namebench.googlecode.com/files/namebench-1.3.1-source.tgz
  2. 解凍
    $ tar -xzvf namebench-1.3.1-source.tgz
  3. ビルドとインストール
    $ cd namebench-1.3.1
    $ python setup.py build
    $ sudo python setup.py install

実行するには、namebench.pyを走らせるだけ。

ちなみに、実行ファイルは/usr/bin/、データ等は、/usr/namebenchへインストールされてる。


RedHat Enterpriseへzabbixエージェント導入

RHEL 5系のRedhat5.x及びCentOS5.xへzabbixエージェント導入方法

  1. 下記サイトから最新のatomic-releaseをダウンロード
    http://www6.atomicorp.com/channels/atomic/centos/5/x86_64/RPMS/
  2. atomic-releaseをインストール
    # rpm -Uvh atomic-release*rpm
  3. zabbix-agentをインストール
    # yum install zabbix-agent 

以上、後は設定ファイルにzabbixサーバを入れて、起動するだけ。


RedHat系のOSで、不要になったパッケージを削除

package-cleanupと言うコマンドを利用するが、デフォルトで入ってない場合がある。
入ってない場合は、下記でインストール

# yum install yum-utils

不要なパッケージを探す

# package-cleanup --leaves
Setting up yum
libyaml-0.1.4-1.el5.rf.i386

不要なパッケージを削除

# yum remove libyaml-0.1.4-1.el5.rf.i386

ページ:12