管理者権限なしでtmux 2.0をインストールしてみた
サーバの設定が吹っ飛んだのでこれを気に導入方法をあらためて書いてみた
↓の更新バージョンです.
管理者権限なしでホーム下にtmux1.9aをインストールしてみた - 蛇にお茶入れる
環境
CentOS release 6.4
$HOME以下の.optにインストールします.
$HOMEは適宜書き換えてください
tmuxを入れる前に
ncursesとlibeventとよばれるライブラリを入れないといけません.
ncursesを入れる記事は,すでにこちらに記述しております↓
管理者権限なしでホーム下にzshをインストールしてみた 改訂版2015/05/14 - 蛇にお茶入れる
それでは,libeventから導入したいと思います.
$ wget https://sourceforge.net/projects/levent/files/libevent/libevent-2.0/libevent-2.0.22-stable.tar.gz $ tar zxvf libevent-2.0.22-stable.tar.gz $ cd libevent-2.0.22-stable $ ./configure --prefix=$HOME/.opt $ make -j $ make -j install
tmux 2.0 のインストール
$ wget http://downloads.sourceforge.net/tmux/tmux-2.0.tar.gz $ tar zxvf tmux-2.0.tar.gz $ cd tmux-2.0 $ export CPPFLAGS="-I$HOME/.opt/include" $ export LDFLAGS="-L$HOME/.opt/lib" $ ./configure --prefix=$HOME/.opt $ make -j $ make -j install
以上でtmuxのインストールは完成です.
起動時には,共有ライブラリパスにフォルダパスを通してやらないと,libeventが見つかりませんとエラーが出ます.そのため,LD_LIBRARY_PATHにlibフォルダのパスを通しています..
$ export PATH=$PATH:$HOME/.opt/bin $ export LD_LIBRARY_PATH=$HOME/local/lib $ tmux -V tmux 2.0
サーバとローカルのフォルダを同期してみた
たまにサーバ上でファイルを編集して実行するという動作が必要になるのだが,vimのバージョンが古かったり,シンタックスハイライトが聞かなかったりと編集するためにめんどうなことが多かったのでどうにかできないかと考えてみた.
方法1:ローカル Vimのssh機能を使う
Vimには,標準でssh先のファイルを編集できる機能がついている(聞いた話によるとscpでローカルに落として編集後サーバにアップロードする).
Shougoさんが開発されたShougo/vimfiler.vim · GitHubもこの機能に対応している.
例えばvim上で以下のコマンドでssh先のファイルを一覧で出力し,編集することが可
:VimFilerExplorer ssh:[ssh先]
以前まではこれを使って編集していたのだが,たまにエラーが出る(一度ファイルを開いた状態で別のファイルを開くとエラーが出る.閉じればエラーがでない)といった問題がでてた.
方法2:ローカルvimで編集後,rsyncでサーバ上にファイルを上げる
タイトルのままの意味である.ただ保存したあとにいちいちコマンド実行するのがめんどくさかったので,ファイルを監視できるようにした.
os xでは,rsyncが元からインストールされているのだが,バージョンが古く監視するために使用するツールlsyncdでうまいこと監視することができなかった.
なので最新バージョンをインストールを行う.
$ brew install homebrew/dupes/rsync $ brew install lsyncd lua
あとは,lsyncdの設定をいじるだけである.設定ファイルは,luaを使用できるみたいです.
私の場合,ホーム直下に.lsyncdフォルダを作成しその中にlsyncd.conf.luaを作成し編集を行いました.場所指定は特にない感じなので適当に自分の好きなようにつくるがいいかと..
最終的には,以下のようなファイルとなりました.
settings { logfile = '/var/log/lsyncd.log', statusfile = '/var/log/lsyncd.status', nodaemon = true, --falseだとdaemon insist = 2, -- 起動時に接続が失敗しても再接続を試みる回数 delay = 0, } sync{ default.rsync, source = '/target', -- 監視対象のディレクト target = 'user@server:/home/target', rsync = { binary = '/usr/local/bin/rsync', archive = true, compress = true, rsh = '/usr/bin/ssh -i /Users/.ssh/id_rsa' } }
confファイルを作成後以下のコマンドで実行することができます.sudoが必要なみたいです.
$ sudo lsyncd lsync.conf.lua
DropboxでGoogle Driveの共有フォルダを同期させてみた
普段MacでDropboxをメインに使用しているのだが,ある事情でGoogle Driveの共有フォルダを使用することになった.
わざわざそのためにMacにGoogle Driveをインストールしたくなかったので,ちょっとやってみた
環境
YosemiteでPhantomJS 2.0をソースからコンパイルするときに困ってた話
PhantomJS 2.0を使用してマクロを作ってたのだが,Upload Fileにinputがうまくいかず..
これは2.0のバグみたいで,ホームページでも1.9と比較してRegressionな部分としてあげられてました
PhantomJS 2.0 Release Notes | PhantomJS
Githubのissueに解決策があったので試してみました(Webpage.uploadFile not working in phantomjs 2.0 · Issue #12506 · ariya/phantomjs · GitHub)
やり方はすごく簡単で
src/qt/qtwebkit/Source/WebCore/html/FileInputType.cpp
を以下のようにコメントアウトするだけ
- if (!ScriptController::processingUserGesture()) - return; + // PATCH related to #12506 - commented out to allow programmatic form file uploads + //if (!ScriptController::processingUserGesture()) + // return;
あとはリビルドするだけなのが,yosemiteでソースからビルドするときにはまたバグがあるみたい
PhantomJS 2 does not build on OS X 10.0 (Yosemite) · Issue #12630 · ariya/phantomjs · GitHub
に書いてあるように公式からではなく,バグを修正したではなく以下のgitから2.0をクローン
https://github.com/bprodoehl/phantomjs/releases
そして公式ページに書いてあるとおりにビルド(Build | PhantomJS)しようと以下を入力
./build.sh --qt-config "-I /usr/local/include/ -L /usr/local/lib/"
これで完了かとおもったのだが,どうやらエラーが出てすすまないすすまないw
なんとか解決策を2日ほど探ってたのですが,参考になるのがあまりなく詰みかけてました.
最終的に --qt-configを付けなかったらどうなるんだという考えから
./build.sh
にするとうまくリビルドしてくれました.うん.うん...
あとは,./binの中身をphantomjsを/usr/local/binか何かにコピーするとうまくuploadにinputしてくれました!
管理者権限なしでホーム下にtmux1.9aをインストールしてみた
環境
CentOS release 6.4
prefix先 = $HOME/local
tmuxのインストール
ソースファイルを公式からインストールします
エラー対処しながらソースを書いています.適当に飛ばしてください
$ wget http://downloads.sourceforge.net/tmux/tmux-1.9a.tar.gz $ tar zxvf tmux-1.9a.tar.gz $ cd tmux-1.9a/ $ ./configure --prefix=$HOME/local configure: error: "libevent not found"
的なことを言われたので,libeventを入れます
$ wget http://sourceforge.net/projects/levent/files/libevent/libevent-2.0/libevent-2.0.21-stable.tar.gz/download $ tar zxvf libevent-2.0.21-stable.tar.gz $ cd libevent-2.0.21-stable/ $ ./configure --prefix=$HOME/local $ make && make install
これでlibeventのインストールは完了です.
では,tmuxのインストールに戻ります.
このままインストールするとlibeventが見つかれませんと出るので,ライブラリフォルダを指定してやります
ncursesを求められるときもあるのですが,今回はとくに必要なかったので,インストール処理は飛ばしております.
tmuxのconfigure時にncursesを求められた場合,インストールしてください
$ /configure CFLAGS="-I$HOME/local/include" LDFLAGS="-L$HOME/local/lib" --prefix=$HOME/local $ make && makeinstall
これで一応完了ですが,pathを通してやらないといけなくて,tmux起動時にlibeventを指定しないと起動しません.
なので,.bashrcにでも
alias tmux='LD_LIBRARY_PATH=$HOME/local/lib $HOME/local/bin/tmux'
を追加するとtmuxが起動してくれます.
管理者権限なしでホーム下にgit2.0をインストールしてみた
環境
CentOS release 6.4
git2.0のインストール
gitの公式からソースファイルをダウンロードする前に,
zlibが入ってないとエラーが出たので,zlibからインストールを行います.
$ wget http://zlib.net/zlib-1.2.8.tar.gz $ tar zxvf zlib-1.2.8.tar.gz $ cd zlib-1.2.8 $ ./configure --prefix=$HOME/local $ make $ make install
で完了です.あとでzlib.hが見当たりませんでしたみたいなエラーがでたので,
ついでに以下のコマンドもしときます.
$ export CPPFLAGS="-I$HOME/local/include" LDFLAGS="-L$HOME/local/lib"
肝心のgitのインストールを行います.
gitをconfigureする前にNO_OPENSSLなどをつけないといけないようです.
参考
$ wget https://www.kernel.org/pub/software/scm/git/git-2.0.0.tar.gz $ tar zxvf git-2.0.0.tar.gz $ cd git-2.0.0 $ ./configure --prefix=$HOME/local NO_OPENSSL=1 NO_CURL=1 $ make $ make install $ git
これで無事インストール完了したと思います.
管理者権限なしでpython3.4をインストールする 改訂2015/05/20
Python3.4を管理者権限なしで入れてみます.
環境
CentOS release 6.4
本記事では,$HOME以下の.opt/python3にインストールします.
$HOMEは適宜書き換えてください
Python3.4のインストール
wgetで証明書がどうとか言われてダウンロードできなかったので,--no-check-certificateを付加しています.
$ wget --no-check-certificate https://www.python.org/ftp/python/3.4.3/Python-3.4.3.tgz $ tar zxf Python-3.4.3.tgz $ cd Python-3.4.3 $ ./configure --prefix=$HOME/.opt/python3 $ make -j $ make -j install ... Ignoring ensurepip failure: pip 6.0.8 requires SSL/TLS
以上でPython3.4のインストールは完了です.
以下は,そのままpipをインストールしたい場合実行してください
-
-
-
- -
-
-
pipをインストールする際に,sslが要求されるみたいです.
sslをインストールします.この場合は./configureではなくて./configなので注意してください.
$ cd .. $ cd open-ssl-1.0.1h $ wget http://www.openssl.org/source/openssl-1.0.1h.tar.gz $ ./config --prefix=$HOME/local $ make $ make install
再度Python3.4をインストールしたいと思います.
$ cd .. $ cd Python-3.4.1 $ ./configure --prefix=$HOME/local $ make The necessary bits to build these optional modules were not found: _bz2 _dbm _gdbm _lzma _sqlite3 _tkinter readline zlib To find the necessary bits, look in setup.py in detect_modules() for the module's name. Failed to build these modules: _curses _curses_panel _hashlib _ssl
ん?こんなエラーでてたんですね.
とりあえず,アンダーバーがついているものは飛ばして,アンダーバーついていないものをインストールします.
$ cd .. $ wget ftp://ftp.cwru.edu/pub/bash/readline-6.3.tar.gz $ tar zxvf readline-6.3.tar.gz $ cd readline-6.3 $ ./configure --prefix=$HOME/local $ make $ make install $ cd .. $ wget http://zlib.net/zlib-1.2.8.tar.gz $ tar zlib-1.2.8.tar.gz $ cd zlib-1.2.8 $ ./configure --prefix=$HOME/local $ make $ make install
この後,Python3.4を再度インストールしても同じエラーがでました
がPythonを起動できなので,これでひとまず完了