ラベル Ubuntu の投稿を表示しています。 すべての投稿を表示
ラベル Ubuntu の投稿を表示しています。 すべての投稿を表示

2013年4月4日木曜日

rvm + gitlab (>= 5.0) 問題の解決方法

GitLab4.1(Ubuntu 10.04 LTS + RVM)をインストールしてみた

Gitlabを5.0にアップグレードしたらRVMとの相性の問題でつまずいた。
GitlabのWikiのホームにあるアップグレードの通りにやるとまぁ一見問題なくアップグレードされたように思えた。

しかし、リモート(自分のデスクトップ)からサーバー(Gitlabが動いているサーバー)のリポジトリのクローンを作成するときにエラーが吐き出された。

/home/git/gitlab-shell/bin/gitlab-shell:8: undefined method `require_relative' for main:Object (NoMethodError)
どうやらrvmで設定したruby1.9.3が呼ばれていない模様。ユーザーgit向けにrvmはインストール済みでログインするとちゃんと
which ruby 
/home/git/.rvm/rubies/ruby-1.9.3-p392/bin/ruby
とでる。 実はgit cloneは内部的にはSSHでgitユーザーでgitサーバーに接続して、サーバー側の~git/.ssh/authorized_keysに書かれたコマンドを実行するようになっている。そのコマンドは~git/gitlab-shell/bin/gitlab-shellを呼び出す。それがruby >1.9.2以上であることを想定して書かれている。

同じ問題にぶつかっている人がgithubのgitlabのissueに書き込んでいた。
gitlab-shell + rvm · Issue #12 · gitlabhq/gitlab-shell

zzetとProfのやり取りが面白い。よくわかってない人がわかっている人にアドバイスするという滑稽なやりとり。

実はsshで直接コマンドを実行する場合。どのrcスクリプトも読まれないのです。つまり、.bashrcも.zshrcも.profileもなにも読まれない。もちろん、/etc/profile.dの中にあるスクリプトも読み込まれない。 (その話をしているのに、zzetはそんなはずはない。と見当違いなことを言い続けている。どんなに論拠をProfが見せてもなぜかスルー。 )

そのため、RVMの設定が読まれないでいた。解決策としては2つ挙げられている。
  1. Gitlabのコードを変更して、最初にRCスクリプトを読み込む方法
  2. 「[unix] ssh-env - ssh実行時に環境変数を設定/変更したい」 の方法でsshの環境変数を設定する方法
私は環境側の設定を変更するのがどうも嫌だったので1.の方法をとった。
1.の方法でも2つあったが、とりあえず簡単な方のgitlab-shellを変更する方法にした。
  1. gitlab-shellをコピーしてgitlab-shell.realというファイルを作成
  2. gitlab-shellを以下のように変更
    #! /bin/bash
    
    # RVM installed with single-user mode
    PATH=$PATH:$HOME/.rvm/bin # Add RVM to PATH for scripting
    [[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session as a function
    
    # RVM installed with multi-user mode
    #RVMSH_PATH="/etc/profile.d/rvm.sh"
    #[[ -s $RVMSH_PATH ]] && source $RVMSH_PATH # Load RVM into a shell session as a function
    
    
    exec /home/git/gitlab-shell/bin/gitlab-shell.real $@
    

とりあえず、マルチーユーザーモードでRVMをインストールしている場合は下のマルチユーザー向けの設定を読み込むようにすると良い。(両方読み込んでも問題ないかも。マルチユーザー用RVMの仕組みがよくわかっていない。。)

ソースコードを変更するのでアップグレードをするときに注意が必要。

2013年2月11日月曜日

GitLab4.1(Ubuntu 10.04 LTS + RVM)をインストールしてみた

GitLabとはGitHub4.3のクローンのオープンソースソフトウェアです。
今回は仮想マシンにUbuntu 10.04 LTS 64-bitをクリーンインストールしてやってみた。
基本的に本家のGitページのdoc/install/installation.mdを参考に行っただけ。
ただし、RVM(ルビーの仮想環境)を使ったのでやり方が微妙に異なります。
普通のやり方と異なるところだけ書きます。それ以外は1から順番にやってください。

2. Ruby

RubyはソースからインストールしないでRVMからインストールする。ユーザーtaro(Admin)がいるとします。taroでインストールしていきます。今回はMulti-Userモードでインストールして、どのユーザーもRVMを使えることを想定しています。
まず、RVMのインストール。通常は次のコマンドでOK。
taro$ \curl -L https://get.rvm.io | sudo bash -s stable
もしプロキシを使っていてうまく行かなかった場合は、環境変数HTTPS_PROXYをtaroで設定していたら、sudoに環境変数を渡すために-Eオプションをつけます。この後も、ネットワーク問題でハマったら、sudo -Eとしてください。

taro$ \curl -L https://get.rvm.io | sudo -E bash -s stable
これで、/usr/loca/rvmにrvmがインストールされました。

今回は、taroをrvmのAdminにするためにグループにtaroを追加して書き込み権限を付与します。

taro$ sudo usermod -aG rvm taro
~/.bashrcなどに以下を追加。
source /etc/profile.d/rvm.sh
ログインしなおして
taro$ id
...rvmがグループに追加されているのを確認
ruby 1.9.3のインストール
taro$ rvm install 1.9.3
taro$ rvm use --default 1.9.3
この時点ではbundlerはインストールしない。あとで、ユーザーgitlab(3. System Usersで追加される)だけにインストールする。

Install Gems

ユーザーgitlabにrvm環境を設定する。
taro$ sudo su - gitlab
~/.bashrcなどに"source /etc/profile.d/rvm.sh"を追加して再読み込み。
gitlab$ source .bashrc
gitlabユーザー固有のgemsetを作る。
gitlab$ rvm user gemsets
gitlab$ rvm istall 1.9.3
gitlab$ rvm use --default 1.9.3
gitlab$ rvm gemset create
gitlab$ rvm gemset use default
gitlab$ rvm gemset install bundler
gitlab$ rvm gemset install charlock_holmes --version '0.6.9'
DBにはMySQLを使ったので、without postgresでインストール。
gitlab$ cd /home/gitlab/gitlab
gitlab$ bundle install --deployment --without development test postgres

Initialise Database and Activate Advanced Features

taro$ sudo su - gitlab
gitlab$ cd gitlab
gitlab$ bundle exec rake gitlab:setup RAILS_ENV=production
ここでしくじる。execコマンドがないと怒られる。調べると、issueが投稿されてた。Squeeze-backportsリポジトリからredis-serverを入れなおせとのこと。多分RedisServerが古かったのかと思われる。Ubuntu10.04。リポジトリを追加するために、/etc/apt/sources.list.d/squeeze-backports.listというファイルに
deb http://backports.debian.org/debian-backports squeeze-backports main
を書いて保存
taro$ sudo apt-get update
キーが認証されてないとか言われたので、
taro$ sudo -E apt-key adv --keyserver keyserver.ubuntu.com --recv-keys AED4B06F473041FA
taro$ sudo apt-get update
taro$ sudo apt-get remove redis-server
taro$ sudo apt-get -t squeeze-backports install redis-server
インストールされたので、再度
gitlab$ bundle exec rake gitlab:setup RAILS_ENV=production

Check Application Status

taro$ sudo su - gitlab
gitlab$ cd gitlab
gitlab$ bundle exec rake gitlab:env:info RAILS_ENV=production
gitlab$ bundle exec rake gitlab:check RAILS_ENV=production
これで動きました。ローカルではない場合もservernameなどちゃんと設定すれば動きます。 参考: http://d.hatena.ne.jp/hiro_nemu/20120811/1344656084

2013年1月11日金曜日

Ubuntu10.04LTSにPython2.7.3をインストール numpy,scipy,matplotlib,opencv,pygtk

ソースからインストールします。全然難しくありません。

sqliteパッケージ使うのに必要だったはず
sudo apt-get install sqlite3

インストール先を指定(ルートインストールしない場合)
IPX=$HOME/python27
export PATH=$IPX/bin:$PATH
export LD_LIBRARY_PATH=$IPX/lib:$LD_LIBRARY_PATH
rootでインストールしてしまう場合は
sudo su -でルートになる。
ルートインストールする場合は--prefixオプションはいらないです。

Python-2.7.3をダウンロードして解凍
./configure --prefix=$IPX --enable-shared && make install

EasyInstallをインストール
サイトから setuptools-0.6c11-py2.7.eggをダウンロード
sh setuptools-0.6c11-py2.7.egg --prefix=$IPX

Pipも
$IPX/bin/easy_install pip

ついでにNumpyやら必要なものをインストール

$IPX/bin/pip install numpy
sudo apt-get install liblapack-dev gfortran g++
$IPX/bin/pip install scipy
$IPX/bin/pip install ipython
$IPX/bin/pip install virtualenv virtualenvwrapper
$IPX/bin/pip install matplotlib
再ログインなどするとパスが通っていないので、
IPX=$HOME/python27
export PATH=$IPX/bin:$PATH
export LD_LIBRARY_PATH=$IPX/lib:$LD_LIBRARY_PATH
を.bashrcなどに追加して常にパスが通っているようにしておく。(rootインストールの場合は必要なし)

ついでにOpenCVもインストールする。

sudo apt-get install cmake-curses-gui
wget http://downloads.sourceforge.net/project/opencvlibrary/opencv-unix/2.4.3/OpenCV-2.4.3.tar.bz2
ダウンロードして解凍。 cmakeに必要なオプションを渡してインストール。
ccmake .. -DCMAKE_INSTALL_PREFIX=${IPX} -DPYTHON_EXECUTABLE=${IPX}/bin/python -DPYTHON_INCLUDE_DIR=${IPX}/include/python2.7 -DPYTHON_LIBRARY=${IPX}/lib/libpython2.7.so
make install 
OK。
$ ipython
>>> import cv2
で使えます。

PyGTKも

依存関係を考慮してシステムのバージョンに合わせる
pygtk 2.17.0
pycairo 1.8.10
pygobject 2.21.1

py2cairoをインストール
wget http://cairographics.org/releases/py2cairo-1.8.10.tar.gz
tar xvjf py2cairo-1.8.10.tar.gz
cd py2cairo-1.8.10
./waf configure --prefix=$IPX
./waf build
./waf installl
pygobjectインストール
sudo apt-get install libffi-dev
http://ftp.gnome.org/pub/GNOME/sources/pygobject/2.21/pygobject-2.21.1.tar.bz2
tar xvjf pygobject-2.21.1.tar.bz2
cd pygobject-2.21.1
./configure --prefix=$IPX
make install
pygtkインストール
sudo apt-get install libgtk2.0-dev
export PKG_CONFIG_PATH=$IPX/lib/pkgconfig:$PKG_CONFIG_PATH
wget http://ftp.gnome.org/pub/GNOME/sources/pygtk/2.17/pygtk-2.17.0.tar.bz2 
あとはPyGObjectと同じ

2012年10月17日水曜日

ubuntu12.04にcuda5.0をインストールしたときに苦労した話

Ubuntu12.04でCUDAでハマったのでメモ。
※CUDAでGPGPU始める人はコレ読んでください。サンプルを見て練習できるので非常に理解がしやすいです。
とにかく、うまく行かなかった。
いろいろ試したが、何が効いたかはわからない。
…が、最終的にうまくいった。

自分の環境はUbuntu12.04 64bit、Dell Precision T5500, Quadro FX 580(capability 1.1)。

とりあえず、最初ココを見て、わけもわからずこのとおりにやった。
http://d.hatena.ne.jp/iRiE/20120620/1340230211
ここでやっている人と明らかに違うのが、Cudaのバージョンが5.0にアップグレードされているというところ。

Ubuntu12.04用のインストーラはないので、11.10のものを代わりに↓からダウンロードした。
http://developer.nvidia.com/cuda/cuda-downloads

sudo sh ./cuda_5.0.35_linux_64_ubuntu11.10.run
を実行すると、libglut.soがないと怒られた。

sudo apt-get install freeglut3-dev
した後、もう一度インストールしてみたが、
やはりないと言われる。

調べてみると、12.04 64bitではlibglut.soが変なところにインストールされることがわかった。

sudo ln -s /usr/lib/x86_64-linux-gnu/libglut.so /usr/lib/libglut.so
してちゃんとしたところにシンボリックリンクを貼る。

再度インストールするもInstall failed、失敗。
ログ見てみると、gdm止めねばならないことが判明。

 自分の場合、Shift+F1でtty1のコンソールを起動して、

sudo service lightdm stop
としてデスクトップマネージャーを止める。(12.04からgdmからlightdmに変わったらしい)

再度チャレンジすると、Installed、成功!

とりあえず、再起動。




デスクトップが起動しないではないか。
そのままtty1に飛ばされる。
ログを見てみると、plymouthに繋げなかったとか言っている。

よくわからないが、ウェブで調べた結果、xserver-xorg-nouveauを消してみたり、nvidia-currentをreinstallしてみたりした。

デスクトップが起動した。

しかし、compizが起動していない。なぜだ。

とりあえず、気にせずCUDAのサンプルをmakeしてコンパイルして、bin/linuz/releaseにいき、

./deviceQuery

したが、capableなビデオカードが見つからないとエラーを出された。
(通常はビデオカードの情報が出力される)

うおーっ!ってなって、

sudo sh ./cuda_5.0.35_linux_64_ubuntu11.10.run --uninstall
でアンインストールして、もう一回インストールしたりしたが、また、デスクトップが起動しなくなった。

最後の方は、記憶がないが、効いたっぽいのが、
http://sn0v.wordpress.com/2012/05/11/installing-cuda-on-ubuntu-12-04/
に書いてある。

sudo apt-get remove --purge nvidia*
によるnvidia関連のソフトウェアの全削除。

これやったあとに、

sudo sh ./cuda_5.0.35_linux_64_ubuntu11.10.run
でCUDAドライバのインストールをやり直したら、Compizも復活して、

./deviceQuery
でちゃんと結果が出力された。


どれが良かったか、わからないがこの中のどれかであるはず。

あと、「追加のドライバ(Additional driver)」から適当にExperimentalの一番新しいっぽいやつをインストールしたりもしたな…

Ubuntuでbootを逼迫している古いLinuxカーネルを削除

慣習に従って/bootディレクトリのパーティションを分けていたら(確か100M)、カーネルの更新のたびに、カーネルイメージがインストールされて、それが残って、/bootパーティションを逼迫していた。dist-upgradeができない状態に。
古いカーネルは不要なので削除する。ちなみに、Ubuntuのバージョンは12.04です。
インストールされているカーネルを確認する。

[*****@*****] $ dpkg -l | grep linux-image
rc  linux-image-3.2.0-23-generic           3.2.0-23.36                             Linux kernel image for version 3.2.0 on 64 bit x86 SMP
rc  linux-image-3.2.0-25-generic           3.2.0-25.40                             Linux kernel image for version 3.2.0 on 64 bit x86 SMP
rc  linux-image-3.2.0-26-generic           3.2.0-26.41                             Linux kernel image for version 3.2.0 on 64 bit x86 SMP
ii  linux-image-3.2.0-27-generic           3.2.0-27.43                             Linux kernel image for version 3.2.0 on 64 bit x86 SMP
ii  linux-image-3.2.0-29-generic           3.2.0-29.46                             Linux kernel image for version 3.2.0 on 64 bit x86 SMP
ii  linux-image-3.2.0-31-generic           3.2.0-31.50                             Linux kernel image for version 3.2.0 on 64 bit x86 SMP
iU  linux-image-3.2.0-32-generic           3.2.0-32.51                             Linux kernel image for version 3.2.0 on 64 bit x86 SMP
ii  linux-image-generic                    3.2.0.31.34                             Generic Linux kernel image
いっぱいある。結構たくさんある。なんとなく少しは戻れるように3.2.0-29以前を削除することにする
[****@***] $ sudo apt-get remove linux-image-3.2.0-2{3,5,6,7,9}-generic -y
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Package linux-image-3.2.0-23-generic is not installed, so not removed
Package linux-image-3.2.0-25-generic is not installed, so not removed
Package linux-image-3.2.0-26-generic is not installed, so not removed
The following packages will be REMOVED:
  linux-image-3.2.0-27-generic linux-image-3.2.0-29-generic
0 upgraded, 0 newly installed, 2 to remove and 66 not upgraded.
15 not fully installed or removed.
After this operation, 298 MB disk space will be freed.
Setting up ubuntu-keyring (2011.11.21.1) ...
...(略) ...
Processing triggers for initramfs-tools ...
update-initramfs: Generating /boot/initrd.img-3.2.0-32-generic
よくみたら最初の方はrcだった。とりあえず、
sudo apt-get update && sudo apt-get upgrade -y && sudo apt-get dist-upgrade -y && sudo apt-get autoremove -y
してOK。df -hするとbootパーティションが半分くらい空いたが、また消すのめんどくさいな。
調べてみると、今の時代ではbootを別パーティションにする必要はないっぽい。
 参考:https://forums.ubuntulinux.jp/viewtopic.php?pid=12939

2012年6月21日木曜日

Ubuntu 12.04 LTS のプロキシで無視リストを設定

Ubuntuを10.04LTSから12.04LTSに移行したらプロキシ設定のUIが変わってた。

めちゃくちゃシンプルになっていて、今まであったプロキシの例外設定を加える項目が見当たらない。

調べてみると見つかった。
Where to set proxy ignore list?

まず、設定するためのソフトウェアdconf-toolsを入れる。
sudo apt-get install dconf-tools

Superキー(Winキー)を押してUbuntuメニューを表示し、dconfと入力すると、「dconf Editor」というものが出てくるのでそれを実行。

gconf editor設定画面

proxyのところにignore-hostsという項目があるので、Valueのところをクリックして、無視リストを追加する。例えば、['localhost','127.0.0/8','*.example.com']とか。

以上。

2012年4月2日月曜日

Ubuntu 10.04LTSでwindows7風なウインドウ分割(Copmiz Tile)

LinuxでもWindows7のウインドウを左右半分に分割して配置してくれる機能を利用したい。
似たようなことができるものとしてCompizのTileプラグインがある。




このプラグインはまだunsupported(2012/04/02時点)なので、初期状態ではapt-getで簡単にインストールできない。でも次の手順でやれば簡単にインストールできます。未サポートなので自己責任で導入してください。




参考:Ubuntu 10.04, install compiz plugins unsuported


■ もしcompizが入ってない場合は
sudo apt-get update && sudo apt-get install copmiz copmizconfig-setting-manager fusion-icon

■ 必要であれば、extraパッケージも入れておく

sudo apt-get install copmiz-fusion-plugin-extra



■ ppaの登録
sudo add-apt-repository ppa:compiz/ppa
sudo apt-get update

■ updateするとGPGエラーが発生。パブリックキーがない。
W: GPG error: http://ppa.launchpad.net lucid Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 2ED6BB6042C24D89

■ http://d.hatena.ne.jp/ktomoya/20090815/1250350901
ここに書かれているものを参考にキーをキーサーバーから取得し、信頼しているキーとして登録。
gpg --keyserver keyserver.ubuntu.com --recv-key 2ED6BB6042C24D89
gpg --export 2ED6BB6042C24D89 | sudo apt-key add -

■ update
sudo apt-get update

何もエラーがでなくなった

■ tileが入っているunsupportedパッケージをインストール。必ずupgrade
sudo apt-get install compiz-fusion-plugins-unsupported
sudo apt-get upgrade

■ Tileを有効にする
MenuのSystem->Preferences->CompizConfig Setting ManagerでTileをenabledにチェック
ホットキーは各自変えてもよいが、確かデフォルトはSuper(Win-key)+Shift+Xでトグルだったはず。


2012年3月9日金曜日

ubuntu10.04でtex環境構築時のメモ

基本的にこのページを参考にしたが、

JapaneseLocalizedDerivative/LaTeXForJapanese

自分の環境は、Ubuntu 10.04 LTS 64-bitでインストールは通常の英語版をインストールして使っていたが、texを日本語で使おうとするといろいろ不都合がでてきたので日本語化することにした。

Ubuntuの日本語環境

このページを参考に、方法2を行った。


wget -q https://www.ubuntulinux.jp/ubuntu-ja-archive-keyring.gpg -O- | sudo apt-key add -
wget -q https://www.ubuntulinux.jp/ubuntu-jp-ppa-keyring.gpg -O- | sudo apt-key add -
sudo wget https://www.ubuntulinux.jp/sources.list.d/lucid.list -O /etc/apt/sources.list.d/ubuntu-ja.list
sudo apt-get update && sudo apt-get upgrade -y
sudo apt-get install ubuntu-desktop-ja

んでとりあえずリブート。


JapaneseLocalizedDerivative/LaTeXForJapanese
を続行

最後まで言うとおりにやって、

いざテスト

- test.tex
\documentclass{jarticle}
\begin{document}
\title{A test of a Japanese document}
\author{Horse Brain}
\date{20120309}
\maketitle
\section{I am a Japanese}
\subsection{I speak Japanese}
こんにちは。私は日本人です。日本語を話します。
\section{セクションタイトルも日本語で}
数式でも書いてみる
\begin{equation}
p(x) = \int p(x,y) dy
\end{equation}
\end{document}

emacsで普通に編集したら文字コードがUTF-8で保存されたので、nkfでeucに変換してpdf化するスクリプトを作成して実行
$./tex2pdf-ja test.tex

- tex2pdf-ja
#! /bin/sh 
NAME_TMP=tmp
nkf -e $1 > $NAME_TMP.tex && platex $NAME_TMP.tex && dvipdfmx -o out.pdf $NAME_TMP.dvi && exit 1

しかし、
** ERROR ** Could not find encoding file "H".

というエラーが出てしまった。ぐぐってみると、

[Latex]dvipdfmxのCould not find encoding file "H" エラー対策

こんなエントリーを見つけた。ghostscriptのバージョン通りにcmapfontのパスを設定しないといけないよう

ghostscriptのバージョンを調べてみる
$ ghostscript --version
 8.71

/usr/share/texmf/web2c/texmf.cnfをrootで編集
(略)

% CMap files.
CMAPFONTS = .;$TEXMF/fonts/cmap//;/usr/share/ghostscript/8.71/Resource/CMap/

(略)

あらためて、実行!
…できた!