Active Directory ドメインユーザのシェルを変更
Active Directory ドメインユーザのシェルを zsh に変更しようとしたら、詰まったのでメモ。
環境
Ubuntu 14.04
現象
$ chsh
パスワード:
smooth3919 のログインシェルを変更中
新しい値を入力してください。標準設定値を使うならリターンを押してください
ログインシェル [/bin/bash]: /usr/bin/zsh
chsh: ユーザ smooth3919 は /etc/passwd に存在しません
解決策
$ sudo getent passwd smooth3919 | xsel -ib
$ sudo vim /etc/passwd
最終行にペーストし、ログインシェルを zsh に変更
Pythonをソースからビルド、Theanoのインストール
経緯
最近話題の「Deep Learning」で使われる Theano 。
ソースからビルドした Python でインストールしようとしたらつまずいたので手順をメモ。
環境
- Ubuntu 15.04 Server
Python(2.7.10)をソースからビルド
$ wget https://www.python.org/ftp/python/2.7.10/Python-2.7.10.tgz
$ tar xvf Python-2.7.10.tgz
$ cd Python-2.7.10
今回はpipを使うので
$ sudo apt-get install libssl-dev
$ ./configure --enable-shared --with-ensurepip
$ make
$ sudo make install
pip のアップグレード
$ sudo -H pip install --upgrade pip
/usr/local/bin/python2.7: error while loading shared libraries: libpython2.7.so.1.0: cannot open shared object file: No such file or directory
まずは確認。
$ ldd /usr/local/bin/python
linux-vdso.so.1 => (0x00007fffd4fcc000)
libpython2.7.so.1.0 => not found
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f3fcada2000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f3fca9dc000)
/lib64/ld-linux-x86-64.so.2 (0x00007f3fcafc8000)
libpython2.7.so.1.0 が not found なので
$ sudo ln -s /usr/local/lib/libpython2.7.so.1.0 /lib/
として、再度 pip のアップグレードコマンドを実行するとOK。
Theano のインストール
必要なライブラリをインストール
$ sudo apt-get install gfortran liblapack
最後に Theano のインストール
$ sudo pip install numpy scipy theano
SciPyのインストールにかなり時間がかかりますが、無事インストール完了。
Linux Mint 17.1 KDE デスクトップが起動しない
経緯
リモートで作業をしていたら何故か KDE デスクトップが起動しなくなってしまったので解決方法をメモ。
表示されたメッセージ
Xsession : unable to lanch "/usr/bin/startkde" Xsession --- "/usr/bin/startkde" not found; falling back to default session.
解決方法
1コのコマンドで解決。
sudo apt-get install kde-workspace-bin
Windowsでパッケージ管理 - Chocolatey -
今回はWindowsのパッケージ管理ソフト「Chocolatey」の紹介です。
導入
PowerShellを搭載しているマシン(標準搭載はWindows 7以降)ならあっという間にChocolateyを導入することができます(下記を管理者権限で実行してください)。
@powershell -NoProfile -ExecutionPolicy unrestricted -Command "iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1'))" && SET PATH=%PATH%;%ALLUSERSPROFILE%chocolateyin
iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1'))
使用方法
よく使うのは
- choco -h
- choco list
- choco install パッケージ名
- choco uninstall パッケージ名
あたりでしょうか。
chocolateyでは、あらかじめエイリアスが用意されています。例えば
- choco list → clist
- choco install → cinst
- choco update → cup
というものがあります。便利ですね!
また、パッケージは公式サイト(Chocolatey Gallery | Packages)で確認することができますので、一度目を通してみるのがいいかもしれません。
動作確認
試しにいくつかインストールしてみます。
まず、パッケージリストを確認します。
clist sublime
20個のパッケージが見つかりました。この中からSublimeText3とSublimeText3.PackageControlをインストールしたいと思います。
この時、オプションの -y を加えると確認を飛ばしてくれます。
cinst sublimetext3 sublimetext3.packagecontrol -y
メニューを確認すると、Sublime Text 3がインストールされていて、ついでにPackage Controlも使えるようになっています!
同様にGitとRubyをインストールしていきます。
cinst git.install ruby -y
メッセージを見ると、Rubyのパスは追加されていますが、Gitは追加されてないようです。なので、Gitのパスを追加しておきましょう(もしかしたらマシンによってGitのパスが違うかもしれません)。
setx Path "C:Program Files (x86)Gitin;%Path%"
ここまでできたら、PowerShell(またはコマンドプロンプト)を立ち上げ直し、確認しましょう。
ちゃんと使えるようになっています。
他にもいろいろなパッケージがあり、Chocolateyを使えば一気にインストールできるので、是非試してみてください。
Ruby on Railsで作ったアプリケーションをMOGOKで公開してみる(2/2)
前回の続きです。
アプリケーションを公開
アプリケーションをビルドして、データベースマイグレーションまでやってみます。
mogok build
mogok rake db:migrate
mysql2を使ってくださいと言われました。Gemfileを編集しましょう。
gem 'mysql2'
を追記してください。その後、commit->pushし、再びビルドとマイグレーション。
今度はうまくいったみたいなので、アプリケーションを起動。
mogok start
アプリケーション起動成功。しかし、ページを開いてみると、「Internal server error」...
こういうときは、ログを見るのが鉄則ですね。
mogok log
じっくり見ていくと、compiled assetsがないと言われてるのに気づく。
rake assets:precompile
で、commit->push->buildとやっていき、アプリケーションを再起動。
mogok stop
mogok start
しかし、再び「Internal server error」。これが直接的な原因ではないみたいです。
もう一度ログを確認すると、secret key baseがないと言われてることに気づきました。config/secrets.ymlを見ると、production環境ではsecret key baseが環境変数が使われていました。
mogok secret
これでシークレットキーが出力されます。これを環境変数として設定します。
mogok env set SECRET_KEY_BASE <シークレットキー>
ページにアクセスすると、成功します!
終わりに
ここまでの流れはMOGOKのDocumentsのチュートリアル(http://mogok.jp/documents/rails_deployment_guide)で確認できる内容でもありますが、Windows環境でない場合の一例として紹介してみました。
よくよく見るとMOGOKはまだRuby 2.2に対応してないし、いろいろと無茶苦茶なこともしていますが、そこらへんは目を瞑って頂ければと思います。
これを参考に新しいアプリケーションを作ってぜひ公開してみてください。
Ruby on Railsで作ったアプリケーションをMOGOKで公開してみる(1/2)
ローカルで開発したアプリケーションを実際に公開してみたい人は多いと思います。
今回は、無償で簡単に使えるMOGOKサービスを利用して、Ruby on Railsで作ったアプリケーションを公開する手順を説明していきます。
環境
アプリケーション作成
rails new MemoApp
早速、サーバを起動
rails s -b 0.0.0.0
すると、JavaScript runtimeが見つからないと言われたので、Gemfileを編集。therubyracerのコメントアウトを外してあげればOK。
もう一度、サーバを起動してブラウザで確認するとWelcomeページが見えるようになります。
そしたら、scaffoldを使って機能を追加してみます。
rails g scaffold Memo title contents:text
rake db:migrate
ついでに、config/routes.rbを編集。
root 'memos#index'
を追加しておきましょう。
アプリケーションを登録
まず、MOGOK(http://mogok.jp)のアカウントを取得します。そして、mogokツールをインストール。
gem install mogok
次にアプリケーションを登録します。アプリケーション名は被らないようなものにしましょう。このとき、アカウント情報が必要となります。
git create <アプリケーション名>
アプリケーションの登録はできましたが、remoteの設定に失敗。gitの初期化を忘れてました。
git init
git add .
git commit -m "first commit"
ここまでやったら、もう一度remoteの登録。ついでに、アプリケーションの詳細とremoteの確認も。
mogok bind <アプリケーション名>
mogok info
git remote -v
確認ができたら、pushしてみましょう。
git push mogok master
401(認証エラー)が出てしまいました。これは、リポジトリのURLにユーザ名(とパスワード)を追加すれば解決できます。パスワードを指定しない場合はpushするときに聞かれます。
git remote set-url mogok https://<ユーザ名>:<パスワード>@git.mogok.jp/<アプリケーション名>.git
git push mogok master
とりあえず、pushまではうまくいったので、次回は実際に公開までやってみます。
Eclipseの補完いろいろ
たまにしか使わないからと設定を疎かにしていたEclipse。
デフォルトのままだと補完機能がいまいちだったので、簡単な部分だけとりあえず変更。
環境
手順
まずは、Auto Activationの設定
-
Eclipse -> 環境設定... -> Java -> Editor -> Content Assist -> Auto Activation
-
とりあえず、Enable auto activationにチェックが入っていることを確認
-
Auto activation delay(ms)はお好みで
-
Auto activation triggers for Javaにいろいろ足すと便利なので、
._abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
に変更
-
Auto activation triggers for Javadocは今のところ困ったこと無い(経験が浅いからかな?)のでこのまま
候補の並び
-
Auto Activationの上にあるSorting and Filtering
-
Sort proposalsはby relevanceに設定。
-
by relevanceだと使わないと短い名前でも下位候補になって不便という方も。alphabeticallyは、どれくらい打てば補完がでるのかが分かればスピードアップできるが、似たような名前がたくさんあるときは不便。規模に合わせて変更するのがベター
他のEclipse
基本的に、Window -> Preferences -> 言語(JavaとかC/C++とか) -> Editor -> ...といけば大丈夫
感想
補完機能でそれなりに便利になったものの、space入力したいのに候補選択されてしまうのは不便。プラグインで解決できるけど、デフォルトで入れておいてほしい機能なので、今後に期待。