2015年08月14日

Cent OS 7 にpdftkを無理やりインストール

Cent OS 7のサーバを構築していますが、これまでたくさん使ってきたCent OS 5やCent OS 6ではなくCent OS 7を選んだのは、単に新しいのが使ってみたかったというだけ。

そしてやっぱりいくつか問題発生。まずはunisonがrpmforgeからなくなっている。仕方がないので、ソースからインストールした。

$ sudo yum install ocaml ocaml-camlp4-devel ctags ctags-etags
$ cd ~/apps
$ wget http://www.seas.upenn.edu/~bcpierce/unison//download/releases/stable/unison-2.48.3.tar.gz
$ tar xvfz unison-2.48.3.tar.gz
$ make
$ sudo cp -v unison /usr/bin

次はpdftk、こちらはlibgcjとかいうライブラリがCent OS 7からなくなってしまっていたりして、普通の方法ではインストール不可能らしい。libgcjを使わないpdftkがベータ版であるらしいが、ベータだからね。そこでこちら(CentOS7にpdftkを)を参考に無理やりインストール。

$ sudo yum install libart_lgpl
$ wget http://ftp.riken.jp/Linux/centos/6/os/x86_64/Packages/gmp-4.3.1-7.el6_2.2.x86_64.rpm
$ sudo rpm -iv --force gmp-4.3.1-7.el6_2.2.x86_64.rpm
$ wget http://ftp.riken.jp/Linux/centos/6/os/x86_64/Packages/libgcj-4.4.7-16.el6.x86_64.rpm
$ sudo rpm -ivh libgcj-4.4.7-16.el6.x86_64.rpm
$ wget https://www.pdflabs.com/tools/pdftk-the-pdf-toolkit/pdftk-2.02-1.el6.x86_64.rpm
$ sudo rpm -ivh pdftk-2.02-1.el6.x86_64.rpm

これでどうだろう。まだpdftkコマンドが起動することくらいしか確かめてないが、動くかな?
ラベル:Linux Cent OS
posted by 急いでジャンプ at 11:30| Comment(0) | TrackBack(0) | Linux | このブログの読者になる | 更新情報をチェックする

2007年05月30日

Vine Linux 3.2 の Webdav に mod_encoding

先日インストールした Webdav なのですが、私が試験したWindowsXP SP2と同じバージョンなのに、認証ではじかれたり、日本語フォルダ名などでエラーになったりと、環境によってはまだまだ問題が多いことがわかりました。

しかたがない、もう少し改善の努力をしましょう、ということで、まずはmod_encodingを入れてみることにしました。これによって、WindowsXPのおかしな認証動作も改善されるかもしれないし。

WebDAV Resources JPを最初に見てみたのですが、パッチがたくさんあって、どれを使うのか調べるだけで時間がかかりそう... もう少し検索してみると、全てのパッチをまとめてくれている方がいらっしゃるのですね。

WebDAV - PukiWiki

初めは、Fedora 6用という最新(?)のmod_encoding-20061118.tar.gzを試してみたのですが、makeで失敗しました。Vine 3.2はカーネルが2.4ですからね。

mod_encoding-20040430a.tar.gzをダウンロードし、
$ tar zxvf mod_encoding-20040430a.tar.gz 
$ cd mod_encoding-20040430
$ cd lib
$ ./configure
$ make
$ su
# make install
# /sbin/ldconfig -v

これで、iconv_hookのコンパイルとインストールが終了です。次に、mod_encoding本体です。
$ cd ..
$ ./configure --with-apxs=/usr/bin/apxs --with-iconv-hook=/usr/local/include
$ make
$ gcc -shared -o mod_encoding.so mod_encoding.o -Wc,-Wall -L/usr/local/lib -Llib -liconv_hook
$ su
# cp mod_encoding.so /usr/lib/apache2/modules

最後に、apacheの設定変更ですね。こんな設定にしてみました。
# vi /etc/apache2/conf/apache2.conf

<IfModule mod_dav_fs.c>
# Location of the WebDAV lock database.
DavLockDB /var/lock/dav/DavLock
</IfModule>

Alias /webdav "/var/www/webdav"
<Location /webdav>
Options All
AllowOverride All
DAV on
AuthType Digest
AuthName "DAV"
AuthDigestFile /etc/dav/dav-auth
Require valid-user
</Location>

<IfModule mod_encoding.c>
# モジュールを有効化
EncodingEngine On
# サーバ側のファイル名エンコーディング
SetServerEncoding UTF-8
# デフォルトのエンコード(自動判定)
DefaultClientEncoding JA-AUTO-SJIS-MS
# 各種エージェントごとのエンコーディング
AddClientEncoding UTF-8 "Microsoft-WebDAV-MiniRedir/"
AddClientEncoding SJIS "Microsoft .* DAV 1\.1$"
AddClientEncoding UTF-8 "Microsoft .* DAV$"
AddClientEncoding SJIS "xdwin9x/"
AddClientEncoding EUC-JP "cadaver/"
# WindowsXPからのアクセス時にユーザ名に付加されたホスト名を消去する
NormalizeUsername On
</IfModule>

最後にapacheをリスタートして終了。
# service apache2 restart

サーバー側のエンコードをVine Linux 3.2に合わせてEUC-JPにしてみたのですが、動作は変化ありませんでした。何か足りないんでしょうね。

Mac OS Xからアップした日本語ファイル名がWindowsから見ると「デ」→「テ・」のように化ける件は、「OS Xは、UnicodeのNormalization (正規化) として、かなの濁点半濁点つきの文字等は合成文字として、基底文字と結合文字 (濁点半濁点) に分離して保持する方式 (Normalization Form D) を使っています」ということが理由のようです。なるほど、知りませんでした。

参考:Mac OS XでWebDAVサーバ

同じUTF-8なのに違ってしまうとは、何なんでしょうね。

それに対応するMac OS X用のmod_encodingパッチもあるようですが、今のバージョンに対応しているものは見つかりませんでした。きっと誰か作っているんだろうと思うんだけどなぁ。
posted by 急いでジャンプ at 13:56| Comment(1) | TrackBack(1) | Linux | このブログの読者になる | 更新情報をチェックする

2007年05月18日

Vine Linux 3.2 で Webdav

仕事上ファイルの共有をする必要が出てきたため、Vine LinuxのサーバにWebdavを設定しました。

Vine Linuxのバージョンは現在3.2。お客様のところにあってリモートで管理しているサーバなので、リモートで4.1に上げる訳にも行かず、そのままにしてあります。apt-getで気軽にバージョンアップできればするのですが。おまけに、カーネルも再起動が必要なので上げられずもうやだ〜(悲しい顔)


Apacheは2.0が入っているので、設定をするだけでWebdavが使えるはずです。

まずは、/etc/apache2/conf/httpd.conf の設定ですが、次の記述を追加するだけでした。

Alias /webdav "/var/www/webdav"
DavLockDB /var/lock/dav/DavLock
<Location /webdav>
Options All
AllowOverride All
DAV on
AuthType Digest
AuthName "DAV"
AuthDigestFile /etc/dav/dav-auth
Require valid-user
</Location>
次に、データ共有用のディレクトリとロック用のディレクトリを作ります。
# mkdir /var/www/webdav
# chown apache:apache /var/www/webdav
# mkdir /var/lock/dav
# chown apache:apache /var/lock/dav
そして認証用の設定をします。
# mkdir /etc/dav
# htdigest2 -c /etc/dav/dav-auth DAV アカウント1
# htdigest2 /etc/dav/dav-auth DAV アカウント2
以下続く...
これでApacheを再起動して、無事動きました。しかし、WindowsとMac OS Xで共有しようとしたら問題が...

まず、Mac OS XのFinderでマウントして、日本語名のファイルをコピーしてみました。これは何も問題なくできました。Vine Linuxのシェルから/var/www/webdavをのぞくと、UTF-8の日本語ファイルが確認できました。

次にWindowsXPからマイコンピュータでアクセスしようとすると、懐中電灯が回ったままいつまで経ってもリストが表示されません。エクスプローラは応答なしになっているので、仕方なく強制終了。そのままだと右下の起動ソフトのアイコンが極端に少なくなってしまうので再起動ふらふら

Mac側からさっきの日本語ファイルを削除し、再度WindowsXPからアクセスすると、問題なくアクセスできます。WindowsXPから日本語ファイルをコピーすると、これも問題なし。その状態でMac OS Xからのぞくと、その日本語名のファイルはきちんと見ることができました。

それではと、再度Mac側から日本語名のファイルをコピーすると、WindowsXPでも見ることができましたが、微妙に化けています。たとえば濁音付きのカタカナが「デ」→「テ・」のようになっています。

なるほど、Windows側からのファイル送信だと問題なさそうですが、Mac側からのファイル送信だとWindows側に問題が発生するようです。

どうやら、Apache2.0でも日本語ファイルのエンコードで工夫がいるようですね。
http://webdav.todo.gr.jp/download/
こちらのモジュールで対策できるようですが、手間がかかりそう... しばらくはMacから書き込まない運用にすることでしのぐことにしましょう。
posted by 急いでジャンプ at 19:30| Comment(0) | TrackBack(0) | Linux | このブログの読者になる | 更新情報をチェックする

2007年04月22日

Let's note T4 に Fedora Core 6

お客様のWebシステムで、どうしてもバックエンドにC言語によるサーバを設ける必要があるということで、必要に迫られてノートPCへLinuxをインストールしました。

自宅サーバにVine Linux、遊びにDebianは使っているのですが、今回は開発目的ということで、Fedora Coreを選びました。

Fedora Core 2 ぐらいまではインストールして使っていたことがあるのですが、それから2年以上経っています。それなりに進化したようですね。

最初のパーティション設定のところで、LVMって何? 論理ボリューム管理ってどう使うの? という状態でした。時間もなかったのでデフォルトでインストールしてしまいました。/bootとswapは自動的に分かれて作られて、残りは一つのボリュームグループに/(ルート)で割り当てられました。まあ、これでもいいでしょう。

無線LANははまりましたもうやだ〜(悲しい顔)

まずは、こちらを参考にipw2200のfirmwareを入れました。ライセンスの関係でプリインストールできないとは、今でもLinuxは詳しい人でないと使えないままですね。

続いて、@ITを参考に、wpa_supplicantとNetworkManagerを設定しました。しかし、WPAどころか、WEPにもWEPなしにも接続できません。1日はインターネットをうろうろして、悩みました。

結局、wpa_supplicantを起動しなければWEPに接続できることはわかったので、当面はそのまま使うことにします。

しかし、どこかでWPAにしたいので、もう少し継続して調べることにします。ネットに接続できたので、yumでupdateしたら動くようになったりして...
posted by 急いでジャンプ at 13:23| Comment(0) | TrackBack(0) | Linux | このブログの読者になる | 更新情報をチェックする