2017年01月 / 12月≪ 12345678910111213141516171819202122232425262728293031≫02月

2011.11.07 (Mon)

【LINUX】 LINUX のデフォルトエディタの変更

ある Debian マシンで visudo コマンドを実行してみると、なぜか vi ではなく nano で編集が始まった。
特に設定をいじった覚えはないのだけれど、デフォルトでこうなのだろうか。
まぁとにかく、 visudo で起動するエディタを編集するにはどうすればいいものかと調べてたら次のページを発見。

Ubuntuのvisudoエディタが変nanoになる


テーマ : Linux ジャンル : コンピュータ

11:45  |  LINUX  |  TB(0)  |  CM(0)  |  EDIT  |  Top↑

2011.05.17 (Tue)

[LINUX] tee コマンドで標準出力とエラー出力をまとめてファイルと画面に表示

ただのメモです。
実行コマンドを単純にパイプで tee に繋ぐだけだと標準出力しか渡せません。
以下の様にすれば、標準出力とエラー出力をパイプすることができ、tee コマンドで標準出力とエラー出力を画面とファイルに出力することができます。

$ execute_command |& tee output_file



テーマ : Linux ジャンル : コンピュータ

15:26  |  LINUX  |  TB(0)  |  CM(0)  |  EDIT  |  Top↑

2011.05.07 (Sat)

【LINUX】 異なる文字コードのファイルに grep を実行 【grep】

grep コマンドはファイルの中身をチェックし、引数の文字列に該当する部分があるかどうかチェックするコマンド。
通常、

grep ほげ some_file


とすると some_file 内の "ほげ" という文字列がある部分が出力される。

しかし、例えばシステムが UTF-8 の環境なのに、文字列検索対象のファイルが EUC-JP だったりすると、上手く見つけてくれない。
そこで、ググったところ以下の対処法を確認。

grep コマンドには -f という、パターン(上の例でいう "ほげ" )をファイルに指定できるオプションがある。
このファイルを検索対象の文字コードで記述すれば、文字列検索を指定した文字コードで検索することになる。

たとえば、EUC-JP のファイルを対象に検索したい文字列パターンを記述する場合は

echo "ほげ" | nkf -e > pattern.txt
nkf -g pattern.txt
grep -f pattern.txt target_file1 target_file2


といったようにすれば良い。

テーマ : Linux ジャンル : コンピュータ

15:43  |  LINUX  |  TB(0)  |  CM(0)  |  EDIT  |  Top↑

2011.04.27 (Wed)

【Debian】 RSA 公開鍵認証による SSH 通信

よりセキュアな通信のために SSH を RSA で暗号化します。
Debian でのお話。

テーマ : Linux ジャンル : コンピュータ

15:16  |  LINUX  |  TB(0)  |  CM(0)  |  EDIT  |  Top↑

2011.04.20 (Wed)

【LINUX】 設定ファイルごと再インストール 【Debian】

設定ファイルをいじっていて、ふと初期状態に戻したくなった。
しかし、

# aptitude remove "package"


では設定ファイルが残ってしまう。

設定ファイルごと消すには、

dpkg --purge "package"


とすれば消えた。

後は再び aptitude で再インストール完了。

# aptitude install "package"


テーマ : Linux ジャンル : コンピュータ

12:36  |  LINUX  |  TB(0)  |  CM(0)  |  EDIT  |  Top↑

2011.04.07 (Thu)

【LINUX】screenコマンド

screen コマンドという、一つのウィンドウ上で複数のシェルプロセスを起動できるコマンドがある。
このコマンドを使って作ったシェルは、TeraTerm や Putty などを終了してもプロセスが終了しないので、いったん作業中止するときや、不意にネットワークが切れた時に便利である。

テーマ : Linux ジャンル : コンピュータ

09:47  |  LINUX  |  TB(0)  |  CM(0)  |  EDIT  |  Top↑

2010.11.06 (Sat)

[Java] Sen のインストールとエラー [LINUX]

UTF-8 環境の Debian LINUX に Sen をインストールしてみた。
しかし、どうもうまく動かない。
どのような文字列を入力しても、全て未知語だけになってしまう。
もちろん、正しく分割されていない。
これでは使いものにならない。


原因は、

   SEN_HOME/dic/dictionary.properties

の設定が間違っていた。
このファイルの中には2箇所文字コードを指定する部分があり、一つが辞書の文字コード、もうひとつが(たぶん) sen で使うための文字コードである。
そのため、 sen.charset の方だけシステムと同じものに変更する。
dic.charset はそのままにしておく。

   dic.charset=EUC_JP
   sen.charset=UTF-8

sen.charset だけ書き換え、SEN_HOME/dic 内で ant を実行したら、未知語だらけになっていたものが正しく動作するようになった。

テーマ : Linux ジャンル : コンピュータ

21:51  |  LINUX  |  TB(0)  |  CM(0)  |  EDIT  |  Top↑

2010.09.23 (Thu)

[Subversion] SVNでのSSHアクセス [Debian]

http://gasser.blog114.fc2.com/blog-entry-449.htmlで、ssh を通して SVN 使いたいと奮闘してましたが、できませんでした。
その後、グーグル先生に教えを請うたところ、以下のサイトを教えてもらいました。

SVN(Subversion)導入設定(複数リポジトリ管理)

要は、ssh の公開用には「libapache2-svn」という別のパッケージが必要ということでした。
なので、以下のようにしてインストール。

     $ sudo aptitude install libapache2-svn

次は、設定。
/etc/apache2/mods-available/dav_svn.conf という設定ファイルが作成されているはず。
既に中身は書いてあるので、以下の部分のコメントアウトを外す。



 
  DAV svn
  SVNParentPath /var/lib/svn
  AuthType Basic
  AuthName "Subversion Repository"
  AuthUserFile /etc/apache2/dav_svn.passwd
  AuthzSVNAccessFile /etc/apache2/dav_svn.authz
  
   Require valid-user
  
  SSLRequireSSL
 




SVNParentPath と SVNPath の2種類がありますが、とりあえず SVNParentPath だけで繋がるようになりました。
むしろ、SVNPath の方はあると失敗したので注意。
SVNParentPath には、ちゃんと自分のリモートリポジトリにしたいパスを設定しておきましょう。
SSLRequireSSL と記述することで、SSL通信以外は許可しないことができるぽいです。

そして、/etc/apache2/dav_svn.authz にリポジトリに対する権限を設定する。
設定は以下のような感じ。
参考サイトにわかりやすい例があったので転載。



    # グループを定義
    # admin: すべてのリポジトリに対して読み書きOK
    # developer: tagsディレクトリを除くすべてに読み書き可能
    # tester: コミット不可(※Read-Only)
    #
    # specialguest: 任意のプロジェクトのみ参加
    #
    [groups]
    admin = admin01
    developer = foo, bar
    tester = user01, user02, user03
    specialguest = user99, user98, user97

    # 認証されたすべてのユーザが読み込みOK
    # admin は すべてに対して読み書きOK
    [/]
    * = r
    @admin = rw

    # developerはリポジトリによらず trunk/branchesディレクトリを読み書き可能
    [/trunk]
    @developer = rw
    [/branches]
    @developer = rw

    # specialguest は projectHoge の trunkディレクトリのみ読み書き可能
    [projectHoge:/trunk]
    @specialguest = rw




これで、あとは apache を再起動してアクセスしてみればリポジトリと通信ができるはずです。
リモートリポジトリに設定するディレクトリには、ちゃんと www-data ユーザからアクセスできるようにしておきましょう。

     $ sudo chown -R www-data:www-data /var/lib/svn
     $ sudo invoke-rc.d apache2 restart

/etc/apache2/dav_svn.passwd とかに認証ユーザの設定もできるみたいですが、とりあえずこれだけでも通信できるのでここまで。
詳しくは上に書いた参考サイトをご覧ください。


テーマ : Linux ジャンル : コンピュータ

22:54  |  LINUX  |  TB(0)  |  CM(0)  |  EDIT  |  Top↑

2010.09.22 (Wed)

[svn] SVN の ssh エラーと Subversion のインストール [apr]

1.Subversionのhttpsアクセスでエラー

Debian LINUX の lenny に対して、Subversion の設定をしてます。
それで、https でリポジトリに import しようとすると、以下のようなエラーが発生。

     svn: 'ssh://xxx@aa.bb.cc.dd/svn/project' 用の URL スキームを認識できません

どうやら、原因は Neon というライブラリが無い事に問題があるとのこと。(参考サイト



2. Neon を含んだ Subversion の最新版をインストール・・・で失敗

そのため、Neon を含んだ Subversion の最新版をここからダウンロードしてきます。
そして、解凍して ./configure ⇒ sudo make ⇒ sudo make install とスムーズに進むかと思いきやそうでもない。
./configure のところで下のようなエラーが発生。



checking for APR... no
configure: WARNING: APR not found
The Apache Portable Runtime (APR) library cannot be found.
Please install APR on this system and supply the appropriate
--with-apr option to 'configure'

or

get it with SVN and put it in a subdirectory of this source:

svn co \
http://svn.apache.org/repos/asf/apr/apr/branches/1.2.x \
apr

Run that right here in the top level of the Subversion tree.
Afterwards, run apr/buildconf in that subdirectory and
then run configure again here.

Whichever of the above you do, you probably need to do
something similar for apr-util, either providing both
--with-apr and --with-apr-util to 'configure', or
getting both from SVN with:

svn co \
http://svn.apache.org/repos/asf/apr/apr-util/branches/1.2.x \
apr-util

configure: error: no suitable apr found



3. APR のライブラリをインストール

APR ( Apache-Portable-Runtime ) というライブラリが無いらしい。
エラーの説明に従い、現在最新の「apr-1.4.2」と「apr-util-1.3.9」をダウンロードしてインストール。
しかし、「apr-1.4.2」のインストールはうまくできたものの、今度は「apr-util-1.3.9」の configure でエラーが発生。
どうやら、APRが見つからないのでご機嫌斜めらしい。

エラーを見ると「 --with-apr 」というオプションを指定し、aprのパスを教えれば良いとのこと。
そのため、

     $ sudo ./configure --with-apr=/usr/local/apr

としてうまく configure することができた。
これで本題の Subversion の configure に入ることができる。



4. 再度 Subversion のインストールと再度失敗

「apr」「apr-util」のインストールはできたので、Subversion のインストールができる。
インストールした apr と apr-util を以下のように指定して configure を行う。

     $ sudo ./configure --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr

これで終わったと思ったら、今度は以下のようなエラーが発生。
今度は SQLite が無いと駄々をこねている。



checking for Apache module support via DSO through APXS... no
==================================================================
WARNING: skipping the build of mod_dav_svn
try using --with-apxs
==================================================================
configure: checking sqlite library
amalgamation not found at /xxxxx/subversion-1.6.12/sqlite-amalgamation/sqlite3.c
checking sqlite3.h usability... no
checking sqlite3.h presence... no
checking for sqlite3.h... no
checking sqlite library version (via pkg-config)... no

An appropriate version of sqlite could not be found. We recommmend
3.6.13, but require at least 3.4.0.
Please either install a newer sqlite on this system

or

get the sqlite 3.6.13 amalgamation from:
http://www.sqlite.org/sqlite-amalgamation-3.6.13.tar.gz
unpack the archive using tar/gunzip and copy sqlite3.c from the
resulting directory to:
/xxxxx/subversion-1.6.12/sqlite-amalgamation/sqlite3.c
This file also ships as part of the subversion-deps distribution.

configure: error: Subversion requires SQLite



5. SQLiteのインストール

指示に従い、「sqlite-amalgamation」をここからダウンロード。
エラーメッセージでは「 version 3.6.13 」となっていたが、最新版をダウンロードしてみた。
これを普通に 解凍 ⇒ ./configure ⇒ sudo make ⇒ sudo makeinstall で問題なくインストール終了。



6. ようやく Subversion のビルドとインストール成功

SQLite のやつをインストールしたら再度 ./configure する。
オプションで APR のパスを指定することも忘れないように。
ここで、ようやく configure 成功。
make, make install も問題なく成功し、Subversion が更新された。
バージョンを確認しても、最新版になっている様子で、無事にインストールできたようだ。

と思ったが、エラーメッセージが英語になっただけで結局うまくいかず。
てかココにもう書いてあった。
バージョンは「 Neon 0.25.5 」に合わせないとだめらしい。
ダウンロードして Neon をインストール、再度 Subversion を configure してインストールする。



しかし、やはり同じエラーメッセージ。
結局は、リポジトリの作り方とかその辺に問題があるのかと思いつつ、今日はここまでです。
とりあえず、Subversion のインストールには役に立ちそうなのでこの記事は残しときます。

テーマ : UNIX/Linux ジャンル : コンピュータ

04:15  |  LINUX  |  TB(0)  |  CM(0)  |  EDIT  |  Top↑

2010.05.23 (Sun)

[係り受け解析] cabochaのインストールでエラー [ver6.0-pre4]

とある事情で、「かぼちゃ/cabocha」という係り受け解析器をインストールすることになった。
これは形態素解析器:Mecabの作者が作成したものである。

で、ググって探してみるとver0.53くらいの古いものを発見。
この0.53のバージョンでも一応動作はするのですが、UTF-8に対応していないため、日本語を入力すると文字化けします。
nkfコマンドなどでいちいち変換すれば使えなくもないのですが、やはり面倒。
なので、UTF-8に対応している最新バージョンの0.60を configure -> make をしてインストールすることにしました。




[依存関係]
cabochaには依存しているパッケージが有ります。
・Mecab
・Juman
・TinySVM(Ver0.60以降は不要)
・Chasen(Ver0.60以降は不要)
CRF++(Ver0.60のmakeで下のようなエラーが出たため、必要だった)
          error: crfpp.h: No such file or directory

[Download]
cabochaでググってまず見つかるのはコチラのサイト。
しかし、ここにあるリンクはVer0.53の古いもの。
そのため、最新バージョンをきまぐれ日記でリンクされているsourceforge.net からDL.
** 2010/05/23 現在、最新版はver0.60-pre4。


ダウンロードして来たファイルは、.tar.bz2というファイル形式である。
以下のようにして解凍
   tar xvfj caboha-0.60pre4.tar.bz2 cabocha-0.60pre4


CRF++も同様にDLしてきて configure, make などすれば普通にインストールできるはず。
mecab や juman は apttitude のパッケージあったのでそれで。




[インストール]
通常通り、以下のようにしてインストールする。

   $./configure --with-charset=UTF8
   $make

ここで、エラー発生。

   error while loading shared libraries: libcrfpp.so.0: cannot open shared object file: No such file or directory
   
libcrfpp.so.0 が共有ライブラリに見つかりませんと怒られる。
しかし、
   
   # find / -name libcrfpp.so.0

としてどこにいるか確認してみると、ちゃんとそこに存在していた。
/usr/local/lib にパスが通っていないだけか? と思い、チェック。
/etc/ld.so.conf には /etc/ld.so.conf.d/*.conf という記載が有ったので、

/etc/ld.so.conf.d/libpath_for_cabocha.conf というファイルを新規作成、以下を記載。

   /usr/local/lib

これで

   # ldconfig

とし、再度 make したらコンパイル・リンクできました。

   # make install

として完了。



[実行例]

$ cabocha
かぼちゃのインストールが完了しました!
かぼちゃの-D
インストールが-D
完了しました!
EOS




テーマ : UNIX/Linux ジャンル : コンピュータ

07:06  |  LINUX  |  TB(0)  |  CM(2)  |  EDIT  |  Top↑
 | BLOGTOP |  NEXT