CentOS 6.5上での emacs 24.3 のビルド
ソースをダウンロードして展開する。
$ curl -O http://ftp.jaist.ac.jp/pub/GNU/emacs/emacs-24.3.tar.gz $ tar zxvf emacs-24.3.tar.gz $ cd emacs-24.3/
configure
オプションなしの場合、フル機能有りでのビルドとなるため、必要なライブラリをYumでインストールしておく。
INSTALLドキュメントを確認しながら --without-png
オプションなどを指定して機能を外していってもいいけど、むしろ面倒なので全部入れる。
$ sudo yum install gtk2-devel libXpm-devel libjpeg-turbo-devel libpng-devel giflib-devel libtiff-devel ncurses-devel $ ./configure
configure
がうまくいったら make
。
$ make
すると下のようなエラーがでて死にかける。
xsettings.o: In function `something_changed_gsettingsCB': /home/keik/emacs-24.3/src/xsettings.c:215: undefined reference to `g_settings_get_value' /home/keik/emacs-24.3/src/xsettings.c:230: undefined reference to `g_settings_get_value' /home/keik/emacs-24.3/src/xsettings.c:244: undefined reference to `g_settings_get_value' xsettings.o: In function `init_gsettings': /home/keik/emacs-24.3/src/xsettings.c:816: undefined reference to `g_settings_list_schemas' /home/keik/emacs-24.3/src/xsettings.c:822: undefined reference to `g_settings_new' /home/keik/emacs-24.3/src/xsettings.c:828: undefined reference to `g_settings_get_value' /home/keik/emacs-24.3/src/xsettings.c:839: undefined reference to `g_settings_get_value' /home/keik/emacs-24.3/src/xsettings.c:848: undefined reference to `g_settings_get_value' collect2: ld returned 1 exit status make[1]: *** [temacs] Error 1 make[1]: Leaving directory `/home/keik/emacs-24.3/src' make: *** [src] Error 2
対処策としては configure
時に --without-gsettings
オプションをつけるといい。(参照)
$ make distclean # 掃除 $ ./configure --without-gsettings # オプション追加 $ make # 今度はうまくいく $ sudo make install # ウェイ
(参考) 失敗の原因
メーリングリストをきちんと読んでみると Red HatがGlib2に手を入れている ことが原因らしいことがわかる。
- The previous rebase to GLib 2.26 added the GSettings API, but without the gsettings-desktop-schemas package. As a consequence, some programs (such as OpenJDK or VMWare) attempted to use GSettings, but since gsettings-desktop-schemas was absent, these programs terminated unexpectedly. This update removes GSettings from glib2, and the crashes now no longer occur. (BZ#1065429)
クソ意訳すると、「GLib2がGSettings APIとかいう実装のないAPIを持ってるせいでOpenJDKが死ぬのでGSettings API削除したった。だからもう泣くな」とのこと。
CentOS 6.5でGitやSubversionクライアントをバージョンアップすると捗る
RHELの練習のつもりで普段の作業用マシンにCentOS 6.5を使用しているのだけれど、デフォルト設定の yum
でインストールできるGitやSubversionなどのクライアントのバージョンが古めなのでバージョンアップしてみたところ、少しばかり前向きな人生が送れるようになった。
Gitは1.7.11以上にすると捗るぞ
Git 1.7.11で git difftool
に追加された、ディレクトリ単位でのdiffを見るための -d (--dir-diff)
オプションがサイコー。
以前はファイル1つずつdiffを確認してはハイ次、のような操作だったのが、これを使うと差分のあるファイルの一覧が表示され、まとめて確認できる。詳しい紹介はこちらさま git difftool --dir-diff が便利すぎて泣きそうです - てっく煮ブログ にあります。
バージョンアップの方法は、 https://www.kernel.org/pub/software/scm/git/ から適当なtarボールを落としてINSTALLドキュメントのとおりビルド。分かりやすくてビルド初心者のおれでも問題なしだった。
Subversionは1.7以上にすると捗るぞ
Subversion 1.6以前は作業コピーのすべてのサブディレクトリに .svn とかいう設定用ディレクトリが作られていたのが、1.7以降では作業コピーのルートにのみ作られるようになった。
サブディレクトリごとに設定ファイルが置かれていたことで、ディレクトリ構造をちょっと変えたり、ビルドされたファイル(をコミットするほうがどうかしてる)をクリーンビルドするたびにハゲかけていた事案が、バージョンアップによって解消された。
バージョンアップの方法は、Subversion関連のサービスを提供しているWANdisco社の提供するyumリポジトリを追加して yum
。詳しい手順はこちらさま Subversion1.8をRPMでインストールする - わんこいん にあります。
WANdisco社の激アツなウェブサイト も是非ご確認ください。
Cordovaプラグイン追加時のプロキシ設定
Apache Cordova 3.5でのこと。
強固なセッキュリティで守られているシャナイネットワークから
$ cordova plugin add org.apache.cordova.device
したら
と出たので、ハイハイプロキシプロキシと思って
cordova-cli will use npm's proxy settings.
と https://github.com/apache/cordova-cli#proxy-settings にある通り設定したけどダメ。
それでソース確認したら .plugmanrc ファイルを参照することになっていた ので
$ vi ~/.plugmanrc proxy = http://myproxy.example.net:port/
として再度 cordova plugin add
したらちゃんと追加できた。
プラグインをウェブブラウザでダウンロードしてきても大した手間ではないんですけどね。
ウィッス
プロフィール
エスアイアーでエスイーしています。
主な仕事はJSHintのエラー内容をエクセルにコピペして下請ベンダの頭を殴ることでしたが、近頃は機械学習の真似事をしています。好きな統計用語は カルバック・ライブラー・ダイバージェンス です。
2016/6 現状こんな感じです。
そこそこできる
- JavaScript
- HTML / CSS
少しはできる
- Node
- Java
- イラスト
- Sphinx
- emacs
- Spring Framework
- Android