当連載
なぜ「からあげ」なのか?
いつもなら第100回や第200回、
それを受けて、
そこで特別企画はできないものの、
実はUbuntu Weekly Topicsの11月27日号でもお伝えしたように、
Q. なぜUbuntuオフラインミーティングでは頭のおかしい量のからあげが出てくるのですか? A. 開催のたび、フィードバックが「からあげが少なかった」以外なかったからです。
— hito (@_hito_) November 20, 2015
心の傷はともかくとして、
「からあげ」探しの舞台裏
タイトルは決まりましたが、
とりあえずは定石通り、
$ apt-cache search karaage $ apt-cache search fried chicken $ apt-cache search chicken texlive-luatex - TeX Live: LuaTeX packages swig - スクリプト言語向けに C/C++ のコードのインターフェースを生成 swig2.0 - スクリプト言語向けに C/C++ のコードのインターフェースを生成 chicken-bin - Practical and portable Scheme system - compiler libchicken-dev - Practical and portable Scheme system - development libchicken6 - Practical and portable Scheme system - runtime gtk2-engines-magicchicken - GTK+ 2.x 用 Magic Chicken テーマ集 swig3.0 - Generate scripting interfaces to C/C++ code
そのものずばりというものはありませんね。一応Schemeの処理系である
そこで、

あっさり
今回はこれをUbuntuにインストールすることにしましょう
Karaage - アカウント管理ソフトウェア
Karaageのインストール先はUbuntu 14.
KaraageはPythonのWebフレームワークであるDjangoを使っています。よって最低限必要なものはPython処理系だけです。ただし、
Apache2のインストールはとても簡単です。SSL接続もできるようにしています。SSL証明書はssl-certパッケージをインストールした時に自動生成されるsankeoilの自己署名証明書を使うことにしましょう。SSL証明書関連の詳しいことは第387回を参照してください。
$ sudo apt-get install apache2 libapache2-mod-wsgi $ sudo a2enmod ssl $ sudo a2ensite default-ssl $ sudo service apache2 restart
MySQLもリポジトリからインストールします。インストール時、
$ sudo apt-get install mysql-server
MySQLの設定ファイル
[mysqld]
character_set_server=utf8
default-storage-engine = innodb
sql_mode = STRICT_ALL_TABLES
[client]
default-character-set = utf8
最後に、
$ mysql -uroot -pkaraage mysql> create database karaage; mysql> CREATE USER 'karaage'@'localhost' IDENTIFIED BY 'karaage'; mysql> GRANT ALL PRIVILEGES ON karaage.* TO 'karaage'@'localhost';
下準備が整いましたので、
$ sudo apt-get install python-pip git python-mysqldb python-pil $ sudo pip install git+git://github.com/Karaage-Cluster/karaage.git#egg=karaage (中略) Successfully installed karaage cssmin Django python-alogger django-xmlrpc django-simple-captcha django-ajax-selects django-jsonfield django-model-utils python-tldap django-pipeline django-tables2 django-filter slimit ldap3 passlib futures ply pyasn1
これでインストール完了です。
# FQDNのホスト名を設定します。
# ローカルでの動作確認のみであれば、
# /etc/hostsにkaraage.example.orgを追加しておくとよいでしょう。
#
HTTP_HOST = "karaage.example.org"
# Djangoのより新しいバージョンはHTTPリクエストのHostsヘッダーが、
# ALLOWED_HOSTSと一致しないとエラーとなります。外部からIPアドレスなどで
# アクセスする場合、そのIPアドレスをALLOWED_HOSTSにリストアップしましょう。
#
ALLOWED_HOSTS = ["10.0.3.65"]
# データベースの設定です。
# MySQLのデータベース設定時に作成したデータベース名と
# ユーザー名・パスワードを指定してください。
#
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'karaage',
'USER': 'karaage',
'PASSWORD': 'karaage',
'HOST': 'localhost',
'PORT': '',
'ATOMIC_REQUESTS': True,
}
}
# Djangoのプロジェクトで使う秘密鍵です。
# 予測不能なランダムな文字列であればいいので、次のように生成して
# 埋め込んでおくとよいでしょう。
# $ cat /dev/urandom | fold -w 32 | head -n 1 | base64
#
SECRET_KEY = 'ey5iM7WFA8Dkdo1G4cGMtkN3O7OeqdbtU1/+ANTAipoK'
また、
$ sudo mkdir -p /var/log/karaage3 /var/cache/karaage3/{files,tmp} /var/lib/karaage3/static $ sudo chown -R www-data: /var/{cache,log,lib}/karaage3
設定が一通り完了したので、
$ sudo kg-manage migrate (中略) Running migrations: Rendering model states... DONE Applying captcha.0001_initial... OK Applying contenttypes.0001_initial... OK Applying contenttypes.0002_remove_content_type_name... OK Applying karaage.0001_initial... OK Applying karaage.0002_auto_20140924_1111... OK Applying karaage.0003_auto_20150410_1032... OK Applying methods.0001_initial... OK Applying sessions.0001_initial... OK Applying sites.0001_initial... OK
また、
$ sudo kg-manage kgcreatesuperuser Username: karaage E-mail address: [email protected] Password: Password (again): Short Name: karaage Full Name: Ubuntu Karaage No Institutes in system, will create one now. Institute Name: ubuntu Created new group ubuntu. Created new institute ubuntu. Karaage Superuser created successfully.
最後にKaraage用のWSGI設定
$ sudo a2enconf karaage3-wsgi $ sudo service apache2 reload
「https://マシンのアドレス/karaage」



Karaageには
まずusageプラグインで使うpython-mattplotlibパッケージをインストールしたあとに、
$ sudo apt-get install python-matplotlib $ sudo pip install git+git://github.com/Karaage-Cluster/karaage-applications.git#egg=karaage-applications $ sudo pip install git+git://github.com/Karaage-Cluster/karaage-software.git#egg=karaage-software $ sudo pip install git+git://github.com/Karaage-Cluster/karaage-usage.git#egg=karaage-usage
さらにpipからインストールできるdjango-table2には問題があるため、
$ wget https://github.com/bdauvergne/django-tables2/commit/423a74702c7bff58cbe8f9078c5241b99ba3bb77.patch $ sudo patch -d /usr/local/lib/python2.7/dist-packages/ -p1 < ~/423a74702c7bff58cbe8f9078c5241b99ba3bb77.patch
設定ファイル
PLUGINS = [
'karaage.plugins.kgapplications.plugin',
'karaage.plugins.kgsoftware.plugin',
'karaage.plugins.kgsoftware.applications.plugin',
'karaage.plugins.kgusage.plugin',
]
マイグレーションとApacheのリロードを行います。
$ sudo kg-manage migrate $ sudo service apache2 reload
最後に分散タスクキューであるCeleryを起動するスクリプトをインストールして起動しましょう。
$ wget https://raw.githubusercontent.com/Karaage-Cluster/karaage-usage/master/debian/karaage3-celery.default $ wget https://raw.githubusercontent.com/Karaage-Cluster/karaage-usage/master/debian/karaage3-celery.init $ sudo mv karaage3-celery.default /etc/default/karaage3-celery $ sudo mv karaage3-celery.init /etc/init.d/karaage3-celery $ sudo chmod 755 /etc/init.d/karaage3-celery $ sudo service karaage3-celery start
Karaageのウェブページをリロードすると、
最後の仕上げ
ここまで説明しておいてなんですが、
このままではあまり実用的でない上に、
さっそくインストールしましょう。こちらもKaraageと同じくpipコマンドでインストールします。karaage.
$ sudo pip install git+git://github.com/drillbits/django-karaage.git#egg=django-karaage $ wget https://raw.githubusercontent.com/drillbits/django-karaage/master/django_karaage/karaage.js $ sudo cp karaage.js /usr/local/lib/python2.7/dist-packages/django_karaage/
設定ファイル
/usr/local/lib/python2.7/dist-packages/karaage/conf/defaults.py
これをそのままsettings.
MIDDLEWARE_CLASSES = (
'django.middleware.common.CommonMiddleware',
'django.middleware.common.BrokenLinkEmailsMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'karaage.middleware.threadlocals.ThreadLocals',
'karaage.middleware.saml.SamlUserMiddleware',
'tldap.middleware.TransactionMiddleware',
'django_karaage.middleware.KaraageMiddleware',
)
最後にApache2をリロードすれば設定完了です。
$ sudo service apache2 reload
ちなみにsettings.
