| [ << lilypond を実行する ] | [トップ][目次][インデックス][ ? ] | [ convert-ly を使ってファイルを更新する >> ] | ||
| [ < 通常の使用方法 ] | [ 上へ : lilypond を実行する ] | [ LilyPond を呼び出す > ] | ||
1.2 コマンド ラインの使用方法
この節にはコマンド ラインで LilyPond を使用するための追加情報が含まれます。これにはプログラムに追加オプションを渡す必要があるかもしれません。さらに、いくつかの特別なプログラム (midi2ly など) はコマンド ラインからしか利用できません。
ここで ‘コマンド ライン’ とは、OS の中にあるコマンド ラインを意味します。Windows ユーザは ‘DOS シェル’ や ‘コマンド シェル’ ‘コマンド プロンプト’ という言葉の方が馴染みがあるかもしれません。MaxOS X ユーザは ‘ターミナル’ や ‘コンソール’ という言葉の方が馴染みがあるかもしれません。MaxOS X ユーザは追加のセットアップが必要かもしれません。 MacOS X を参照してください。
OS のコマンド ラインの使用方法についての説明はこのマニュアルが扱う範囲ではありません。コマンド ラインに馴染みがない場合は、その内容を扱っている他のドキュメントをあたってください。
lilypond を呼び出す | ||
| LilyPond の基本的なコマンド ライン オプション | ||
| LilyPond の高度なコマンド ライン オプション | ||
| 環境変数 | ||
| chroot jail 環境で LilyPond を実行する |
| [ << lilypond を実行する ] | [トップ][目次][インデックス][ ? ] | [ convert-ly を使ってファイルを更新する >> ] | ||
| [ < コマンド ラインの使用方法 ] | [ 上へ : コマンド ラインの使用方法 ] | [ > ] | ||
lilypond を呼び出す
lilypond 実行可能形式ファイルはコマンド ラインから以下のように呼び出されます。
lilypond [option]… file…
拡張子を持たないファイル名で呼び出された場合、‘.ly’ が最初に試されます。stdin から入力を読み込む場合には、file に対してダッシュ (-) を使用します。
‘filename.ly’ が処理されると、lilypond は出力として ‘filename.ps’ と ‘filename.pdf’ を作り出します。いくつかのファイルを指定することもできます。その場合、それらのファイルは個々に処理されます。1
‘filename.ly’ が複数の \book ブロックを含んでいる場合、残りのの score は
‘filename-1.pdf’ から始まる番号付きのファイルに出力されます。さらに、output-suffix がベース名と番号の間に挿入されます。以下の内容を含んでいる入力ファイルは
#(define output-suffix "violin")
\score { … }
#(define output-suffix "cello")
\score { … }
base‘-violin.pdf’ と base‘-cello-1.pdf’ を出力します。
| [ << lilypond を実行する ] | [トップ][目次][インデックス][ ? ] | [ convert-ly を使ってファイルを更新する >> ] | ||
| [ < LilyPond を呼び出す ] | [ 上へ : LilyPond を呼び出す ] | [ LilyPond の基本的なコマンド ライン オプション > ] | ||
標準シェルで LilyPond を使う
LilyPond はコマンドラインアプリケーションなので、LilyPond を呼び出すために ‘シェル’ の機能をうまく利用することができます。
例えば:
lilypond *.ly
は、カレントディレクトリのすべての LilyPond ファイルを処理できるでしょう。
コンソール出力をリダイレクトする(例えばファイルへ)のも有用でしょう。
lilypond file.ly 1> stdout.txt lilypond file.ly 2> stderr.txt lilypond file.ly &> all.txt
それぞれ ‘普通の’ 出力、‘エラー’ のみ、‘すべて’ 、 をファイルにリダイレクトします。
あなたの使用しているシェル、コマンドプロンプト (Windows)、ターミナルやコンソール (MacOS X) がリダイレクトをサポートしているか、あるいは構文が異なるかどうかは、そのシェルのドキュメントを調べてください。
以下は、カレントディレクトリ以下のすべての入力ファイルを再帰的に探し、処理する例です。出力ファイルは元の入力ファイルのあるディレクトリではなく、コマンドを実行したディレクトリに置かれます。
find . -name '*.ly' -exec lilypond '{}' \;
これは MacOS X ユーザでも使えるでしょう。
Windows ユーザは;
forfiles /s /M *.ly /c "cmd /c lilypond @file"
スタートメニューから
スタート > アクセサリ > コマンドプロンプト
とたどるか、Windows 8 であれば検索ウィンドウで ‘コマンドプロンプト’ と入力して、
コマンド プロンプト を起動し、これらのコマンドを入力します。
または、入力ファイルを含むすべてのサブフォルダを含む、最上位のフォルダを明示的に指定できる /p オプションもあります;
forfiles /s /p C:\Documents\MyScores /M *.ly /c "cmd /c lilypond @file"
最上位フォルダ名がスペース文字を含む場合は、パス全体をダブルクオーテーションで囲む必要があります。;
forfiles /s /p "C:\Documents\My Scores" /M *.ly /c "cmd /c lilypond @file"
| [ << lilypond を実行する ] | [トップ][目次][インデックス][ ? ] | [ convert-ly を使ってファイルを更新する >> ] | ||
| [ < ] | [ 上へ : コマンド ラインの使用方法 ] | [ LilyPond の高度なコマンド ライン オプション > ] | ||
LilyPond の基本的なコマンド ライン オプション
以下のオプションがサポートされます:
-
-b, --bigpdfs -
通常より大きい PDF ファイルを生成します。(フォント最適化がほんの少しかまったく無くなるため。)しかし、2 つ以上の PDF ファイルを
pdftex、xetexやluatexドキュメントの中に組み込む場合、さらに ghostscript 処理で重複するフォントデータを統合し、著しく 小さい PDF ファイルを得ることができます。lilypond -b myfile
それから
ghostscriptを呼び出します。gs -q -sDEVICE=pdfwrite -o gsout.pdf myfile.pdf
pdfsizeopt.pyは、さらにサイズの最適化ができます。pdfsizeopt.py --use-multivalent=no gsout.pdf final.pdf
-
-d, --define-default=var=val LilyPond の高度なコマンド ライン オプション を参照してください。
-
-e, --evaluate=expr ‘.ly’ ファイルを解析する前に Scheme expr を評価します。複数の
-eオプションが与えられた場合、それらは順番に評価されます。Scheme 表記は
guile-userモジュールの中で評価されます。そのため、expr の中で定義を使いたいのならば、コマンド ラインで以下を使用して、lilypond -e '(define-public a 42)'
.lyファイルの先頭に以下を含めます:#(use-modules (guile-user))
Note: Windows ユーザはシングル クォートではなく、ダブル クォートを使う必要があります。
-
-f, --format=format フォーマットを指定します。
formatの選択肢はps,pdf, それにpngです。例:
lilypond -fpng filename.ly-
-h, --help 使用方法の要約を表示します。
-
-H, --header=FIELD ヘッダ フィールドをファイル ‘BASENAME.FIELD’ に吐き出します。
-
-i, --init=file init ファイルとして file をセットします (デフォルト: ‘init.ly’)。
-
-I, --include=directory directory を入力ファイルのサーチ パスに追加します。
複数の -I オプションを与えることができます。検索は最初に指定されたディレクトリから開始され、入力ファイルが見つからない場合は次に指定されたディレクトリを検索します。
-
-j, --jail=user,group,jail,dir lilypondを chroot jail 環境で実行します。(訳者: chroot jail 環境とはセキュリティのためにカレント プロセスに対してルート ディレクトリの位置を変更すること。)‘--jail’ オプションは、Web サーバ経由で LilyPond 譜刻を提供する時や LilyPond が外部ソースから送られてきたコマンドを実行する時に、
--dsafeよりも自由度の高い代替手段を提供します。 (LilyPond の高度なコマンド ライン オプション を参照してください。)--jailオプションはコンパイル プロセスの開始直前にlilypondのルート ディレクトリを jail に変更します。それから、ユーザとグループを user と group に変更して、カレント ディレクトリを dir に変更します。これにより、jail (牢獄) から抜け出せないことを (少なくとも理論上は) 保証します。--jailを指定したlilypondの実行は root (ユーザ名) として行う必要があります。通常、これはsudoを用いた安全な方法で行います。jail のセットアップは比較的複雑な問題です。LilyPond がソースをコンパイルするのに必要とされるものすべてを jail の内部 で見つけられるということを保証しなければならないからです。一般的なセットアップには以下の項目が含まれます:
- 専用のファイルシステムをセットアップする
noexec,nodev,nosuidなどのセーフ オプションでマウントするための専用ファイルシステムを作成すべきです。こうすることで、LilyPond から実行可能形式ファイルを実行したり、デバイスに直接書き込むことは不可能になります。専用のパーティションを作成することを望まないのなら、適当なサイズのファイルを作成し、それを使用してループ デバイス (ループバック デバイス) をマウントしてください。専用ファイルシステムはさらに、LilyPond が許可されたディスク容量以上には書き込めないということを保証します。- 専用のユーザをセットアップする
jail 内部で LilyPond を実行する際、低い権限を持つ専用のユーザとグループ (仮に
lily/lilyとします) で行うべきです。このユーザが書き込み可能なディレクトリが 1 つだけ存在すべきであり、それを dir に渡します。- jail の準備をする
LilyPond は実行中にいくつかのファイルを読み込む必要があります。それらのファイルをすべて jail にコピーしておきます。それらのファイルが本当のルート ファイル システムで存在しているパスと同じパスにコピーします。LilyPond インストールの内容すべて (例えば、‘/usr/share/lilypond’) をコピーすべきです。
問題が発生した場合、その原因を突き止める最も簡単な方法は
straceを使って LilyPond を実行することです。これによりどのファイルが見当たらないのかがわかります。- LilyPond を実行する
noexecでマウントされた jail の中では、外部プログラムを実行することは一切できません。そのため、外部プログラムを必要としないバックエンドで LilyPond を実行しなければなりません。すでに述べたように、jail モードでの LilyPond の実行はスーパーユーザ権限で行われなければならず (もちろん、その権限はすぐに外されます)、たぶんsudoを使います。LilyPond が使用可能な CPU 時間を数秒に制限する (例えば、ulimit -tを使って) というのも良い方法です。さらに、OS がサポートしているのなら、割り当て可能なメモリ容量を制限するというのも良い方法です。chroot jail 環境で LilyPond を実行する も参照してください。
-
-l, --loglevel=LEVEL コンソール出力の饒舌さを LEVEL にセットします。取り得る値は以下の通りです:
-
NONE 何も出力しません。エラー メッセージさえも出力しません。
-
ERROR エラー メッセージだけを出力します。警告や進捗メッセージは出力しません。
-
WARN 警告とエラー メッセージを出力し、進捗メッセージは出力しません。
-
BASIC_PROGRESS 基本的な進捗メッセージ (成功メッセージ)、警告、それにエラー メッセージを出力します。
-
PROGRESS すべての進捗メッセージ、警告とエラー メッセージを出力します。
-
INFO (デフォルト) 進捗メッセージ、警告、エラーそれに追加の実行情報を出力します。
-
DEBUG 饒舌なデバッグ出力を含む、出力可能なメッセージをすべて出力します。
-
-
-o, --output=FILE or FOLDER デフォルトの出力ファイルとして FILE をセットします。セットした名前のフォルダが存在する場合、そのフォルダに、入力ファイルから取ったファイル名で出力されます。適切な接尾辞が追加されます (つまり、pdf ならば拡張子
.pdfが追加されます)。-
--ps PostScript を生成します。
-
--png 各ページの図を PNG フォーマットで生成します。これは内部で
--psを使用します。画像の DPI 解像度は以下のようにセットします:-dresolution=110
-
--pdf PDF を生成します。これは内部で
--psを使用します。-
-v, --version バージョン情報を表示します。
-
-V, --verbose 冗長表示モードにします: 読み込むすべてのファイルのフル パスを表示して、時間情報を表示します。
-
-w, --warranty GNU LilyPond の保証責任を表示します。(GNU LilyPond には保証責任はありません!)
| [ << lilypond を実行する ] | [トップ][目次][インデックス][ ? ] | [ convert-ly を使ってファイルを更新する >> ] | ||
| [ < LilyPond の基本的なコマンド ライン オプション ] | [ 上へ : コマンド ラインの使用方法 ] | [ 環境変数 > ] | ||
LilyPond の高度なコマンド ライン オプション
-
-d[option-name]=[value], –define-default=[option-name]=[value] これは内部 Scheme 関数に value をセットします。例えば、
-dbackend=svg
value が指定されない場合、デフォルト値が使われます。例えば、option-name に接頭辞
no-を付けると、そのオプションは ‘off’ になります-dpoint-and-click=#f
は
-dno-point-and-click
と同じです。
以下にサポートされるオプションをデフォルト値とともに示します:
| シンボル | 値 | 説明/オプション |
anti-alias-factor | 1 | (与えられた因数を用いて) 高解像度で描画して、その結果をスケール
ダウンすることにより、PNG 画像の輪郭がギザギザになることを防ぎます。 |
aux-files | #t | eps バックエンドを使うときに .tex, .texi,
.count ファイルを作成します。 |
backend | ps | デフォルト設定です。Postscript ファイル (デフォルト) はTTF, Type1, それに OTF フォントを埋め込みます。フォントのサブセットは作成されません。‘東洋’ の文字セットを用いるとファイルが非常に大きくなる可能性があることに注意してください。 |
eps | lilypond-book コマンドのデフォルトです。これは、1 つのファイルにすべてのページとフォントを埋め込んだものと、ページ毎に分離しフォントを埋め込まない eps ファイルの、両方を吐き出します。 | |
null | 楽譜を出力しません。-dno-print-pages と同じ効果を持ちます。 | |
scm | 内部的な Scheme ベースの描画コマンドを吐き出します。 | |
svg | ページ毎の SVG ファイルが全ページ分作られます。LilyPond 自身の音楽グリフを除き、フォントは埋め込まれません。そのため、テキストや歌詞の最適な描画を得るためには、SVG ビュアーにフォントが必要となります。SVG ビュアーが対応していないことがあるので、‘フォントエイリアス’ や ‘フォントリスト’ を使用しないことをお勧めします。Web Open Font Format (WOFF) ファイルを使うときには、追加の svg-woff スイッチが必要となります。 |
SVG バッグエンド出力の注意:
LilyPond のデフォルトフォント(LilyPond Serif,
LilyPond Sans Serif と LilyPond Monospace)は、まさに ローカル フォントエイリアスです。そのため、svg バックエンドを使う場合は、ソースファイルで明示的にデフォルトフォントを設定する必要があります;
\paper {
#(define fonts
(make-pango-font-tree "TeX Gyre Schola"
"TeX Gyre Heros"
"TeX Gyre Cursor"
(/ staff-height pt 20)))
}
ドキュメント全体のフォント も参照してください。
check-internal-types | #f | Check every property assignment for types. |
clip-systems | #f | Extract music fragments out of a score. This requires that the
clip-regions function has been defined within the \layout
block. See
Extracting fragments of music. No fragments are
extracted though if used with the ‘-dno-print-pages’ option. |
datadir | Prefix for data files (read-only). | |
debug-gc | #f | Dump memory debugging statistics. |
debug-gc-assert-parsed-dead | #f | For memory debugging: Ensure that all references to parsed objects
are dead. This is an internal option, and is switched on automatically
for `-ddebug-gc'. |
debug-lexer | #f | Debug the flex lexer. |
debug-page-breaking-scoring | #f | Dump scores for many different page breaking configurations. |
debug-parser | #f | Debug the bison parser. |
debug-property-callbacks | #f | Debug cyclic callback chains. |
debug-skylines | #f | Debug skylines. |
delete-intermediate-files | #t | コンパイルの途中で作成される使用しない中間ファイル .ps を削除します。 |
dump-cpu-profile | #f | CPU 時間情報を吐き出します (システムに依存します)。 |
dump-profile | #f | 各ファイルのメモリと CPU 時間情報を吐き出します。 |
dump-signatures | #f | Dump output signatures of each system. Used for regression testing. |
eps-box-padding | #f | 出力される EPS の左端に与えられた数の余白を追加します (単位は mm です)。 |
gs-load-fonts | #f | Ghostscript 経由でフォントを読み込みます。 |
gs-load-lily-fonts | #f | LilyPond のフォントだけを Ghostscript 経由で読み込みます。 |
gui | #f | 出力を表示せずに処理を行い、すべての出力をログ ファイルにリダイレクトします。 |
Windows ユーザへの注意: lilypond.exe がデフォルトですべての進捗情報をコマンド ウィンドウに出力するのに対して、lilypond-windows.exe は進捗情報を出力しません。‘-dgui’ オプションを用いることで、出力をログ ファイルにリダイレクトさせることができます。
help | #f | このヘルプを表示します。 |
include-book-title-preview | #t | プレビュー画像にブック タイトルを含めます。 |
include-eps-fonts | #t | システム毎の EPS ファイルにフォントを含めます。 |
include-settings | #f | グローバル設定のファイルをインクルードします。このファイルは楽譜の処理が開始する前にインクルードされます。 |
job-count | #f | 与えられた数のジョブで、並行して処理します。 |
log-file | #f [file] | 2 番目の引数として文字列 FOO が与えられた場合、出力をログ ファイル FOO にリダイレクトします。 |
max-markup-depth | 1024 | マークアップ ツリーの階層の最大値です。それよりも深い階層を持つマーックアップがある場合、そのマークアップは終了していないと見なされて、警告が表示され、null マークアップが返されます。 |
midi-extension | "midi" | MIDI 出力ファイルのデフォルトのファイル拡張子を与えられた文字列に設定します。 |
music-strings-to-paths | #f | Convert text strings to paths when glyphs belong to a music font. |
paper-size | \"a4\" | デフォルトの紙面サイズを設定します。文字列をエスケープ記号付の 2 重引用符 \" で囲む必要があることに注意してください。 |
pixmap-format | png16m | 画像出力のための GhostScript の出力フォーマットを設定します。 |
point-and-click | #t | PDF と SVG 出力に ‘ポイント&クリック’ リンクを付け加えます。ポイント&クリック を参照してください。 |
preview | #f | 通常の出力に加えてプレビュー画像を作成します。 |
このオプションはすべてのバックエンド
– pdf, png, ps, eps, それに svg –
でサポートされますが、scm ではサポートされません。このオプションはタイトルと楽譜の最初の段を保持するファイル
– myFile.preview.extension という形式のファイル名を持ちます –
を出力します。\book ブロックや \bookpart ブロックが使われている場合、\book, \bookpart, それに \score のタイトルが出力に譜刻され、\paper 変数 print-all-headers が #t にセットされている場合は各 \score ブロックの最初の段も譜刻されます。
通常の出力を抑制するには、必要に応じて ‘-dprint-pages’ オプションまたは ‘-dno-print-pages’ オプションを使ってください。
print-pages | #t | すべてのページを生成します。これがデフォルトです。‘-dpreview’ を使う場合は ‘-dno-print-pages’ を組み合わせると有用です。 |
profile-property-accesses | #f | get_property() 関数呼び出しの統計を取ります。 |
protected-scheme-parsing | #t | パーサでインライン Scheme のエラーが発生しても処理を続けます。#f に設定されている場合、エラー終了して、スタック トレースを表示します。 |
read-file-list | #f [file] | 処理する入力ファイルのリストを保持するファイルを指定します。 |
relative-includes | #f | \include コマンドを処理するとき、インクルードするファイルを(ルート ファイルからではなく) カレント ファイルからの相対位置で検索します。 |
resolution | 101 | 生成する PNG 画像の解像度を与えられた値に設定します。単位は dpi です。 |
safe | #f | .ly 入力ファイルを信用しません。 |
Web サーバ経由で LilyPond 譜刻が利用可能な場合、‘--safe’ オプションか ‘--jail’ オプションのどちらかを 指定する必要があります。‘--safe’ オプションはインライン Scheme コードが無茶をする – 例えば、以下のような – ことを防ぎます。
#(s ystem "rm -rf /") % 正しく書くのはあまりにも危険
{
c4^$(ly:gulp-file "/etc/passwd") % 破壊的ではないが悪意がある
}
‘-dsafe’ オプションはインライン Scheme 表記を特別なセーフ モジュールの中で評価します。これは GUILE ‘safe-r5rs’ モジュールに由来しますが、‘scm/safe-lily.scm’ でリスト アップされている LilyPond API 関数のいくつかも追加されています。
さらに、セーフ モードでは \include は許可されず、TeX 文字列の中でバックスラッシュを使うこともできません。また、セーフ モードでは LilyPond 変数を Scheme にインポートすることもできません。
‘-dsafe’ はリソースの過使用を検出 しません ので、このオプションを指定してもプログラムをハングさせられる可能性があります – 例えば、サイクリック (巡回) データ構造をバックエンドに埋め込むことによってです。 そのため、LilyPond を一般公開する Web サーバで使用する場合、プロセスのCPU とメモリ使用を制限すべきです。
セーフ モードは多くの有用な LilyPond 楽譜断片がコンパイルされることを妨げます。
‘--jail’ はさらに安全な代替手段ですが、セットアップにかかる手間も増えます。LilyPond の基本的なコマンド ライン オプション を参照してください。
separate-log-files | #f | 入力ファイル FILE1.ly, FILE2.ly, 等に対するログ
データをファイル FILE1.log, FILE2.log… に出力します。 |
show-available-fonts | #f | 使用可能なフォント名をリスト アップします。 |
strict-infinity-checking | #f | 浮動小数点の例外 Inf と NaN に遭遇した時、強制終了します。 |
strip-output-dir | #t | 出力ファイル名を構築する時に入力ファイルのディレクトリを使用しません。 |
strokeadjust | #f | Force PostScript stroke adjustment. This option is mostly relevant when a PDF is generated from PostScript output (stroke adjustment is usually enabled automatically for low-resolution bitmap devices). Without this option, PDF previewers tend to produce widely inconsistent stem widths at resolutions typical for screen display. The option does not noticeably affect print quality and causes large file size increases in PDF files. |
svg-woff | #f | このオプションは svg バックエンドで Web Open Format (WOFF)
フォントを使うために必要となります。ページ毎の SVG ファイルが全ページ分作られます。LilyPond 自身の音楽グリフを除き、フォントは埋め込まれません。そのため、テキストや歌詞の最適な描画を得るためには、SVG ビュアーにフォントが必要となります。SVG ビュアーが対応していないことがあるので、‘フォントエイリアス’ や ‘フォントリスト’ を使用しないことをお勧めします。 |
trace-memory-frequency | #f | Scheme セルの 1 秒毎の使用数を記録します。結果を FILE.stacks
と FILE.graph に吐き出します。 |
trace-scheme-coverage | #f | Scheme ファイルの適用範囲を FILE.cov に記録します。 |
verbose | #f | 饒舌な出力。つまり、loglevel を DEBUG に設定します。 |
warning-as-error | #f | すべての警告と ‘プログラミング エラー’ をエラーに変更します。 |
| [ << lilypond を実行する ] | [トップ][目次][インデックス][ ? ] | [ convert-ly を使ってファイルを更新する >> ] | ||
| [ < LilyPond の高度なコマンド ライン オプション ] | [ 上へ : コマンド ラインの使用方法 ] | [ chroot jail 環境で LilyPond を実行する > ] | ||
環境変数
lilypond は以下の環境変数を認識します:
-
LILYPOND_DATADIR これはデフォルトで参照するロケール メッセージとデータ ファイルがあるディレクトリを指定します。このディレクトリは ‘ly/’, ‘ps/’, ‘tex/’ などのサブディレクトリを保持しているべきです。
-
LANG これは警告メッセージの言語を選択します。
-
LILYPOND_LOGLEVEL デフォルトのログレベル。明示的にログレベルが指定されずに LilyPond が呼び出された場合 (すなわち ‘--loglevel’ コマンド ライン オプションが指定されなかった場合)、この値が使用されます。
-
LILYPOND_GC_YIELD メモリ管理を調節する変数 (単位はパーセント) です。大きな値は LilyPond に多くのメモリ使用を許し、小さな値だと CPU 使用時間が長くなります。デフォルト値は
70です。 この変数を使ってメモリ使用量とパフォーマンスを調節することができます。これはメモリ管理の振る舞いを調整するパーセント値です。高い値にするとプログラムはより多くのメモリを使用し、低い値にするとより多くの CPU 時間を使用します。デフォルト値は70です。
| [ << lilypond を実行する ] | [トップ][目次][インデックス][ ? ] | [ convert-ly を使ってファイルを更新する >> ] | ||
| [ < 環境変数 ] | [ 上へ : コマンド ラインの使用方法 ] | [ エラー メッセージ > ] | ||
chroot jail 環境で LilyPond を実行する
LilyPond を chroot jail 環境で実行させるようサーバをセットアップすることは複雑な作業です。以下にステップをリスト アップします。各ステップの中にある例は Ubuntu GNU/Linux 用であり、sudo の使用が必要となるかもしれません。
- 必要なパッケージをインストールします: LilyPond, GhostScript, それに ImageMagick。
-
lilyという名前のユーザを作成します:adduser lily
このコマンドはユーザ
lilyのためにホーム フォルダ (/home/lily) と新しいグループも作成します。 - ユーザ
lilyのホーム フォルダで、独立したファイルシステムとして使用するファイルを作成します:dd if=/dev/zero of=/home/lily/loopfile bs=1k count= 200000
このコマンドは jail ファイルシステムとして使用する 200MB のファイルを作成します。
- ループ デバイスを作成し、ファイルシステムを作ってそれをマウントし、それからユーザ
lilyが書き込めるフォルダを作成します:mkdir /mnt/lilyloop losetup /dev/loop0 /home/lily/loopfile mkfs -t ext3 /dev/loop0 200000 mount -t ext3 /dev/loop0 /mnt/lilyloop mkdir /mnt/lilyloop/lilyhome chown lily /mnt/lilyloop/lilyhome
- サーバのコンフィグレーションで、JAIL は
/mnt/lilyloopとなり、DIR は/lilyhomeとなります。 - 以下に示すサンプル スクリプトのように必要なファイルをコピーして
jail の中に大きなディレクトリ ツリーを作成します。
sedを使うことで必要な実行形式ファイルをコピーすることができます:for i in "/usr/local/lilypond/usr/bin/lilypond" "/bin/sh" "/usr/bin/; \ do ldd $i | sed 's/.*=> \/\(.*\/\)\([^(]*\).*/mkdir -p \1 \&\& \ cp -L \/\1\2 \1\2/' | sed 's/\t\/\(.*\/\)\(.*\) (.*)$/mkdir -p \ \1 \&\& cp -L \/\1\2 \1\2/' | sed '/.*=>.*/d'; done
32-bit Ubuntu 8.04 用のスクリプト例
#!/bin/sh
## defaults set here
username=lily
home=/home
loopdevice=/dev/loop0
jaildir=/mnt/lilyloop
# the prefix (without the leading slash!)
lilyprefix=usr/local
# the directory where lilypond is installed on the system
lilydir=/$lilyprefix/lilypond/
userhome=$home/$username
loopfile=$userhome/loopfile
adduser $username
dd if=/dev/zero of=$loopfile bs=1k count=200000
mkdir $jaildir
losetup $loopdevice $loopfile
mkfs -t ext3 $loopdevice 200000
mount -t ext3 $loopdevice $jaildir
mkdir $jaildir/lilyhome
chown $username $jaildir/lilyhome
cd $jaildir
mkdir -p bin usr/bin usr/share usr/lib usr/share/fonts $lilyprefix tmp
chmod a+w tmp
cp -r -L $lilydir $lilyprefix
cp -L /bin/sh /bin/rm bin
cp -L /usr/bin/convert /usr/bin/gs usr/bin
cp -L /usr/share/fonts/truetype usr/share/fonts
# Now the library copying magic
for i in "$lilydir/usr/bin/lilypond" "$lilydir/usr/bin/guile" "/bin/sh" \
"/bin/rm" "/usr/bin/gs" "/usr/bin/convert"; do ldd $i | sed 's/.*=> \
\/\(.*\/\)\([^(]*\).*/mkdir -p \1 \&\& cp -L \/\1\2 \1\2/' | sed \
's/\t\/\(.*\/\)\(.*\) (.*)$/mkdir -p \1 \&\& cp -L \/\1\2 \1\2/' \
| sed '/.*=>.*/d'; done | sh -s
# The shared files for ghostscript...
cp -L -r /usr/share/ghostscript usr/share
# The shared files for ImageMagick
cp -L -r /usr/lib/ImageMagick* usr/lib
### Now, assuming that you have test.ly in /mnt/lilyloop/lilyhome,
### you should be able to run:
### Note that /$lilyprefix/bin/lilypond is a script, which sets the
### LD_LIBRARY_PATH - this is crucial
/$lilyprefix/bin/lilypond -jlily,lily,/mnt/lilyloop,/lilyhome test.ly
| [ << lilypond を実行する ] | [トップ][目次][インデックス][ ? ] | [ convert-ly を使ってファイルを更新する >> ] | ||
| [ < 環境変数 ] | [ 上へ : コマンド ラインの使用方法 ] | [ エラー メッセージ > ] | ||
他の言語: English, català, deutsch, español, français, magyar, italiano
About automatic language selection.