Fedoraの最近のブログ記事



ドキュメント生成ツールのSphinxがよさげ。なのだけど日本語PDFに苦戦したんので投稿しとく。


環境


Fedora12


Python2.6.2(Fedora12に初期状態で入っている)



Sphinx


ドキュメント

Sphinxについては渋川さんが翻訳されたドキュメントがある。



http://pypi.python.org/pypi/Sphinx



wget http://pypi.python.org/packages/source/S/Sphinx/Sphinx-0.6.3.tar.gz
tar zxf Sphinx-0.6.3.tar.gz
cd Sphinx-0.6.3
python setup.py install

Sphinxのインストール完了。



Sphinxプロジェクトの作成

Sphinxプロジェクトを作成したいディレクトリで下記コマンドを実行。



sphinx-quickstart

たくさん質問されるから答える。


日本語PDFを生成するためなら聞かれたオプションはデフォルト値のままでOK。



プロジェクトが生成されたら(オプションにもよるけど)こんな感じのディレクトリになっているはず。



.
|-- Makefile
|-- build
|-- make.bat
`-- source
|-- _static
|-- _templates
|-- conf.py
`-- index.rst


試しにHTMLを生成してみる。



make html

すると、build/htmlの配下に生成される。(あ、jQuery使ってるんだー)



.
|-- Makefile
|-- build
| |-- doctrees
| | |-- environment.pickle
| | `-- index.doctree
| `-- html
| |-- _sources
| | `-- index.txt
| |-- _static
| | |-- basic.css
| | |-- default.css
| | |-- doctools.js
| | |-- file.png
| | |-- jquery.js
| | |-- minus.png
| | |-- plus.png
| | |-- pygments.css
| | `-- searchtools.js
| |-- genindex.html
| |-- index.html
| |-- objects.inv
| |-- search.html
| `-- searchindex.js
|-- make.bat
`-- source
|-- _static
|-- _templates
|-- conf.py
`-- index.rst


rst2pdf


次にreStructuredTextをPDF化してくれるrst2pdfを入れる。


http://code.google.com/p/rst2pdf/



wget http://rst2pdf.googlecode.com/files/rst2pdf-0.12.3.tar.gz
tar zxf rst2pdf-0.12.3.tar.gz
cd rst2pdf-0.12.3
python setup.py install

rst2pdfのSphinxとの連携は下記に記載がある。


http://rst2pdf.googlecode.com/svn/trunk/doc/manual.txt


埋込み用フォントをインストール後設定する。



埋込み用フォントのインストール


今回の日本語PDFの出力で、一番苦戦したのがここ。


IPAフォントVLゴシックフォントをインストール。


IPAフォント

http://ossipedia.ipa.go.jp/ipafont/



wget http://info.openlab.ipa.go.jp/ipafont/fontdata/IPAfont00301.zip
unzip IPAfont00301.zip
cd IPAfont00301

フォントファイル.otfをFedoraのフォントディレクトリにコピー



cp *.otf /usr/share/fonts/


VLゴシックフォント

http://dicey.org/vlgothic/



wget http://jaist.dl.sourceforge.jp/vlgothic/44715/VLGothic-20091202.zip
unzip VLGothic-20091202.zip
cd VLGothic

IPAフォントと同様に.ttfファイルをフォントディレクトリにコピー



cp *.ttf /usr/share/fonts/


Sphinxとrst2pdfの連携


http://rst2pdf.googlecode.com/svn/trunk/doc/manual.txt


に記載されてる。


extensionsの書き換え

source/conf.pyのextensionsを書き換える。



extensions = ['sphinx.ext.autodoc','rst2pdf.pdfbuilder']


PDFのオプションを設定

source/conf.pyに下記を追加する。



# -- Options for PDF output --------------------------------------------------

# Grouping the document tree into PDF files. List of tuples
# (source start file, target name, title, author, options).
#
# If there is more than one author, separate them with \\.
# For example: r'Guido van Rossum\\Fred L. Drake, Jr., editor'
#
# The options element is a dictionary that lets you override
# this config per-document.
# For example,
# ('index', u'MyProject', u'My Project', u'Author Name',
# dict(pdf_compressed = True))
# would mean that specific document would be compressed
# regardless of the global pdf_compressed setting.

pdf_documents = [
('index', u'MyProject', u'My Project', u'Author Name'),
]

# A comma-separated list of custom stylesheets. Example:
pdf_stylesheets = ['sphinx','kerning','a4','ja']

# Create a compressed PDF
# Use True/False or 1/0
# Example: compressed=True
#pdf_compressed = False

# A colon-separated list of folders to search for fonts. Example:
pdf_font_path = ['/usr/share/fonts']

# Language to be used for hyphenation support
pdf_language = "ja"

# Mode for literal blocks wider than the frame. Can be
# overflow, shrink or truncate
#pdf_fit_mode = "shrink"

# Section level that forces a break page.
# For example: 1 means top-level sections start in a new page
# 0 means disabled
#pdf_break_level = 0

# When a section starts in a new page, force it to be 'even', 'odd',
# or just use 'any'
#pdf_breakside = 'any'

# Insert footnotes where they are defined instead of
# at the end.
#pdf_inline_footnotes = True

# verbosity level. 0 1 or 2
#pdf_verbosity = 0

# If false, no index is generated.
#pdf_use_index = True

# If false, no modindex is generated.
#pdf_use_modindex = True

# If false, no coverpage is generated.
#pdf_use_coverpage = True

# Documents to append as an appendix to all manuals.
#pdf_appendices = []

# Enable experimental feature to split table cells. Use it
# if you get "DelayedTable too big" errors
#pdf_splittables = False

# Set the default DPI for images
#pdf_default_dpi = 72

Makefileにpdfを追加

Makefileにpdfを追加する。



pdf:
$(SPHINXBUILD) -b pdf $(ALLSPHINXOPTS) build/pdf
@echo
@echo "Build finished. The PDF files are in build/pdf."

スタイルシートの設定

Sphinxプロジェクト直下にja.jsonファイルを作成する。



{
"embeddedFonts" :
[["VL-Gothic-Regular.ttf","VL-PGothic-Regular.ttf","ipam.otf","ipag.otf","ipagp.otf","ipamp.otf"]],
"fontsAlias" : {
"stdFont": "VL-PGothic-Regular",
"stdBold": "VL-PGothic-Regular",
"stdItalic": "VL-PGothic-Regular",
"stdMono": "VL-Gothic-Regular"
},
"styles" : [
["base" , {
"wordWrap": "CJK"
}],
["literal" , {
"wordWrap": "None"
}]
]
}

2行目あたりで今回追加したIPAフォントVLゴシックフォントを設定してる。(このコードだとVL-PGothic-Regularしか設定してないけど...)


試す


日本語の.rstファイルを作り下記コマンドを実行。



make pdf

すると、


build/pdf/にpdfが日本語PDFが生成される!



参考


下記の先人達を参考にしました。感謝。




Shibuya.trac温泉なう。


開発環境であるVirtualBox上のFedora10がついに容量Maxに到達。なんということだ。


ということで先週リリースされたFedora12で環境構築。



環境


仮想化アプリケーション:VirtualBox


ホストOS:Mac OS 10.5


ゲストOS:Fedora12



VirtualBoxのGuest Additionsをインストールする。



  1. ホストOSのVirtualBoxウィンドウ=>「デバイス」=>「Guest Additionsのインストール」を選択。

  2. ゲストOSのターミナル上で下記を実行。



/media/VBOXADDITIONS_3.0.12_54655/VBoxLinuxAdditions-x86.run


SELinuxを無効化する。


ひとまず急いでるしSElinux切っちゃえ。



setenforce 0

/etc/sysconfig/selinuxを編集

編集前



SElinux=enforcing

編集後



SElinux=disabled


iptablesの停止


えーい。ファイアーウォールも停止してしまえ!



/etc/init.d/iptables stop

自動起動もひとまず停止。



chkconfig iptables off


Emacsのインストール


Emacsがないと半泣きになるので。



yum -y install emacs


Subversionのインストール


TracといったらSubversionだよね。ということで。そういえばGitの設定方法知らないから今度調べる。



yum -y install mod_dav_svn subversion


Subversionリポジトリの作成


mkdir /var/www/svn/
cd /var/www/svn/

svnadmin create <リポジトリ名>
chown -R apache:apache <リポジトリ名>


setuptoolsのインストール


Tracのインストールに必要。



cd /usr/local/src/
wget http://peak.telecommunity.com/dist/ez_setup.py
python ez_setup.py


Tracのインストール


インタアクト株式会社さんが配布しているTracの日本語翻訳版を使う。



cd /usr/local/src/
wget http://www.i-act.co.jp/project/products/downloads/Trac-0.11.5.ja1.zip
unzip Trac-0.11.5.ja1.zip
cd Trac-0.11.5.ja1
python setup.py install


Tracプロジェクトの作成


mkdir /var/www/trac

trac-admin /var/www/trac/<プロジェクト名> initenv

Project Name [My Project]>  <プロジェクト名>
Database connection string [sqlite:db/trac.db]> そのままエンター
Repository type [svn]> そのままエンター
Path to repository [/path/to/repos]> <Subversionのリポジトリ>
Templates directory [/usr/share/trac/templates]> そのままエンター

chown -R apache:apache /var/www/trac/<プロジェクト名>


Tracの設定


/var/www/trac/<プロジェクト名>/conf/trac.ini


default_charset = cp932

を下記に変更



default_charset = utf-8


Apacheの設定。


細かい設定は帰ってから(ry


ひとまず開発環境構築のため!



chkconfig httpd on


htpasswd

何かと使うので作成しとく。



htpasswd -cm <htpasswdファイルのパス> <ユーザー名>


Tracの設定

/etc/httpd/cond.d/trac.confを編集。



<location /<tracプロジェクト名>>
SetHandler mod_python
PythonHandler trac.web.modpython_frontend
PythonOption TracEnv <tracプロジェクトのパス>
PythonOption TracUriRoot /<tracプロジェクトのルートパス名>
</location>
<location /<tracプロジェクト名>/login>
AuthType Basic
AuthName "trac"
AuthUserFile <htpasswdファイルパス>
Require valid-user
</location>


Subversionの設定

/etc/httpd/cond.d/subversion.confを編集。



<Location /<アクセスパス>>
DAV svn
SVNPath <リポジトリパス>
AuthType Basic
AuthName "<リポジトリ名称>"
AuthUserFile <htpasswdファイルパス>
Require valid-user
</Location>


ホストOSからゲストOSへHTTP,SSH接続する。


ホストOSのターミナルで下記を実行。「Fedora12」はゲストOSのVirtualBox名。


ssh


VBoxManage setextradata "Fedora12" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/Protocol" TCP
VBoxManage setextradata "Fedora12" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/GuestPort" 22
VBoxManage setextradata "Fedora12" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/HostPort" 60022

試しに接続



ssh -p 60022 -l <ホストOSユーザ名> localhost


http


VBoxManage setextradata "Fedora12" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guesthttp/Protocol" TCP
VBoxManage setextradata "Fedora12" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guesthttp/GuestPort" 80
VBoxManage setextradata "Fedora12" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guesthttp/HostPort" 60080


ホストOSの領域をゲストOSがマウントする


ホストOS側設定。

VirtualBoxの設定。



  1. VirtualBoxの「ウィンドウ」>「デバイス」>「共有フォルダ」を選択。

  2. 「共有フォルダ」ウィンドウが立ち上がるので、「新規共有フォルダを追加」を選択。

  3. 「共有フォルダの追加」ウィンドウが立ち上がるので、ホストOSの「フォルダのパス」、任意の「フォルダ名」をそれぞれ入力、選択。

  4. チェックボックス「永続化する」にチェックを入れ、「OK」を選択。


ゲストOS側設定。

マウント



mkidr <マウント先のパス>
mount -t vboxsf <マウントするフォルダ名> <マウント先のパス>


ゲストOS再起動時のマウント設定。

/etc/rc.localを編集



mount -t vboxsf <マウントするフォルダ名> <マウント先のパス>

参考


rokujyouhitomaの日記 Trac,Subversionのインストール。


rokujyouhitomaの日記 ホストOSの領域をゲストOSでマウントする。


rokujyouhitomaのぷろぐらま日誌 VirtualBoxのMacホストからゲストFedora9にssh。


rokujyouhitomaのぷろぐらま日誌 VirtualBoxにGuest Additionsをインストールする。


SELinuxを無効化するには




自宅にバージョン管理システム欲しいなと思って、Subversionにしよっかなっと思ったけどGitに興味があったのでGitに。


環境



OS

Fedora10

インストール


RHELクローンだからyumコマンドで。



# yum install git

バージョンの確認



$ git --version
git version 1.6.0.6

git init リポジトリの作成


ディレクトリを作成し、そこでgitの初期化コマンドを実行する。



$ mkdir <リポジトリ名>
$ cd <リポジトリ名>
$ git init
Initialized empty Git repository in /<ワークディレクトリ>/<リポジトリ名>/.git/

git add -対象ファイルをgitの管理下にする。



$ git add <対象ファイル>

git commit -コミットする。



$ git commit -m "<コミットメッセージ>"

git log -コミットメッセージの確認



$ git log

git status -作業ツリーとgitリポジトリの状態



$ git status

git branch -ブランチの作成


masterはSubversionでいうtrunkにあたる。



$ git branch <任意のブランチ名> master

git checkout -ブランチへの切り替え。



$ git checkout <ブランチ名>

git checkout -masterブランチへの切り替え。



$ git checkout master

参考


入門git

subversion本も以前読んだが、バージョン管理システムの概要やSubversionとの比較、インストール法など載っており便利。



* 作者: Travis Swicegood, でびあんぐる


* 出版社/メーカー: オーム社


* 発売日: 2009/08/12


* メディア: 単行本(ソフトカバー)


追記


次回はブランチ切り替えの復習とタグの使い方とか。


手順を忘れてしまうので、半備忘録として投稿。

先に、参考サイト。[VirtualBox]Fedora 7(Guest)にGuest Additionsをインストールする

Guest Additionsってなに?

通常、GuestOSとHostOSのマウスはクリックやctrlキーの必要があるが、煩わしい。そこでGuest Additionsを入れると、マウスの行き来を自動で切り替えてくれてありがたい。

環境

HostOS
Windows Vista
GuestOS
fedora10

手順

  1. HostOSのVirtualBoxウィンドウ=>「デバイス」=>「Guest Additionsのインストール」を選択。
  2. GuestOSのターミナル上で下記を実行。
# /media/VBXADDITIONS_2.1.0_41146/VBoxLinuxAdditions-x86.run
  1. .run実行時にエラーが出る場合は、他のモジュールが足りない場合が多い。大抵はgcc, make, kernel-devel。エラー文言に合わせて適宜実行。
# yum install gcc
# yum install make
# yum install kernel-devel
  1. 再起動すると有効になる。(もしかしたらXの再起動だけで良いかもしれないけど、確認してない。)

完了


こんだけ書いておけば、次回調べる必要がなくなる^-^

fedora10へupgrade

fedora10が出たのにfedora9を使ってるのでupgrade。どうせ不具合がでるんだろうけどね... 。備忘録なのでオススメはできない。

# rpm -Uvh ftp://download.fedora.redhat.com/pub/fedora/linux/releases/10/Fedora/i386/os/Packages/fedora-release-*.noarch.rpm
# yum -y update rpm\* yum\*
# yum -y upgrade

HDDの空き容量が足りないって怒られちゃった...>_<

参考:Fedora9 -> Fedora10 アップグレード

Mac上のVirtualBoxだとホストインターフェース接続設定が困難なため、ssh接続に悩みがあった。
で解決策を発見。

Headless - Fedora 9 (32-bit) Guest on Fedora 8 (64-bit) Host - VIrtualBox #6

sshの設定

$ VBoxManage setextradata "Fedora9" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/Protocol" TCP
$ VBoxManage setextradata "Fedora9" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/GuestPort" 22
$ VBoxManage setextradata "Fedora9" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/HostPort" 50022

macのterminalからアクセス

$ ssh -p 50022 -l administrator localhost

administratorはゲストOSでのユーザー名、ポートは50022 は使用。

httpの設定

$ VBoxManage setextradata "Fedora9" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guesthttp/Protocol" TCP
$ VBoxManage setextradata "Fedora9" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guesthttp/GuestPort" 80
$ VBoxManage setextradata "Fedora9" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guesthttp/HostPort" 50080

Virtualboxでの名前は"Fedora9"を使用し、ポートは50000台を使用。
以上、備忘録。

追:fedora10をそろそろ試すかな。

バージョン管理アプリケーションSubversionの設定をよく忘れてしまうため、備忘録として。

ディストリビューションは、Fedora9。



mod_dav_svn

# yum install mod_dav_svn

 
# mkdir /var/www/svn/
# cd /var/www/svn/
 
プロジェクトの作成
# svnadmin create projectName
# chown -R apache:apache projectName
 
Basic認証のuser,passの作成
# mkdir /var/www/passwd/
# htpasswd -cm /var/www/passwd/passwd-projectName userName1
# htpasswd -m /var/www/passwd/passwd-projectName userName2
 
subversion.confの修正
# vim /etc/httpd/conf.d/subversion.conf
<Location /repos >
   DAV svn
   SVNPath /var/www/svn/projectName
   AuthType Basic
   AuthName "projectName"
   AuthUserFile /var/www/passwd/passwd-projectName
   Require valid-user
</Location>
 
自動起動
# chkconfig httpd on
 

ファイアーウォール

ファイアーウォールの設定

# vim /etc/sysconfig/iptables

 

以下を追加

-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

 

ファイアーウォールの再起動

# /etc/init.d/iptables restart

 

 

Subversionクライアントの設定(Windows編)

 

TortoiseSVN配布サイト

http://tortoisesvn.net/downloads
 

インストール

本体
日本語化パック
Vista上にVirtualBoxを利用しFedora9を入れてる。

で、ネットワーク設定をGUIから変更しようと思ったら、rootのパスワードを当然聞かれる。

で、入力したら間違ってる。

そう、rootのパスワードを忘れた...


で再設定を記事を参考にして設定。

参考:rootのパスワードをうっかり忘れてしまった
fedora9をファイル共有サーバ化したいよね。
という訳で、samba設定備忘録。

ひとまず、パッケージのインストール。パッケージの一覧は以下の通り。
  • samba-common
    =>Sambaの共通パッケージ(サーバとクライアントに必要)
  • samba
    =>Sambaのサーバパッケージ
  • system-config-samba
    =>Fedora独自のSambaの設定ツール。Terminalから出来る人には不要。
  • samba-client
    =>Sambaのクライアントパッケージ
  • samba-swat
    =>Webブラウザを使用したSambaの設定ツール
  • samba-doc
    =>Sambaのドキュメント。
これらのうち必要なものを、

yum install パッケージ名

でインストール。

追記:作業中に作成中のプログラムに着手してしまったので、設定は延期...



下記サイトを参照し、開発環境PCにDjangoを導入しました。
python触りたい方(つまり私)がいたらここを参考にしてはいかがでしょうか。yumなので簡単です。

一応私の開発環境をお伝え。
PC:DELL INSPIRON 1300
distribution:Fedora9


ただ、若干ながら上記のサイトで誤りがあったので訂正しておきます。
6.Django 0.96フレームワークにおいて、

yum -y install django
とあったのは誤りで、正しくは、
yum -y install Django
です。ちなみに誤った方で実行すると怒られてしまいます。(私はここではまったorz)
# yum -y install django
Loaded plugins: refresh-packagekit
Setting up Install Process
Parsing package install arguments
No package django available.
Nothing to do
まぁ、Djangoを導入しようって方なら問題ないでしょうけど、参考に。
officialサイトが一番の参考ですがorz


あわせて読みたい

  • あわせて読みたいブログパーツ

Lingr java-ja

ウェブページ

Powered by Movable Type 4.1