問題タブ [ikiwiki]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
perl - ファイルハンドルと XML::Simple -> メモリ破損。問題を切り分けられない
小さなテストファイルで実行できます
そしてそれはうまくいきます。(同じ XML 入力を使用して) 大きなプログラムで同じコードを実行すると、次のように終了します。
でも、両替をしたら
その後、(両方のファイルで)機能するため、これは私にとって実際の問題というよりも好奇心の問題です。
- 私のテストケースとより大きなコードベースとの違いについて誰かが何かポインタを持っていますか?
- 速度/メモリ/はありますか? 異なるコマンド呼び出しの違いは? ベストプラクティス?
Debian シド: Perl 5.12.4-1。
(これは私が初めて Perl に遭遇したときなので、言語について「知っておくべき」ことについてあまり仮定しないでください。既存のコードに飛び込んだだけです。)
(より大きなプログラムはikiwikiであるため、コードは秘密ではありませんが、どこで問題を探すべきかわかりません。実用的な理由から、この投稿にすべてのコードを含めることはできません。これは Mercurial バックエンドに関するものです。)
cjmからの提案に従って、print "$_\n" for sort grep /XML/, keys %INC;
出力を与えるものを追加しました
大規模なプロジェクトでは、
テストファイルで。
更新: Debian パッケージをインストールし、提案どおりlibxml-libxml-perl
に追加しました。$XML::SAX::ParserPackage = "XML::LibXML::SAX";
これもクラッシュし、今回は別のメッセージが表示されました:
ただし、今回は大きなファイルと小さなファイルの両方で一貫して発生しました。また、open
バッククォートを使用する場合ではなく、使用する場合のみ。
もインストールlibxml-libxml-simple-perl
しましたが、これは実際には常に XML::LibXML をパーサーとして使用するためのラッパー以上のものではないはずでした。また、動作が異なり、設定されている XMLin() のオプションについて不平を言ったので、破棄しました。
明示的に (そしてやみくもに) によって与えられた代替手段のそれぞれをプログラムに使用させようとするとprint "$_\n" for sort grep /XML/, keys %INC;
、cjm が言ったように、XML::SAX::Expat がデフォルトで使用されることを示しているようです (他のすべての代替手段はエラーで終了し、XML::SAX のため) :Expat は、両方のファイルで元の問題とまったく同じように動作します. 明示的に要求する XML::Simple は、すべてのメモリを割り当てるループに入ります)。
さまざまな XML パーサーについて学び、XML::Simple がさまざまなパーサーを自動的に選択してくれることに感謝しています。ただし、元の質問の両方の部分が多少残っています。
- プログラムの動作が異なるのはなぜですか? 両方のプログラムで明示的に設定
$XML::SAX::ParserPackage = "XML::SAX::Expat"
しても、一方がクラッシュし (を使用open
)、もう一方が動作します。 - 外部コマンドからの出力を受け取るために別の方法を使用する必要がありますか? XMLin() が動作することを期待するのは間違ってい
open
ますか?
それとも、単純に「間違った」質問をしているだけですか (つまり、無関係ですか) ?
更新: 1 週間以上が経過しましたが、ここでは慌ただしい活動はありませんでした。問題なく解決しました。エラー分析をさらに進めることができたので、cjm の回答を正しいものとしてマークします。ありがとう!
installation - (ローカル)ikiwikiにmathjaxサポートを追加する
ikiwikiにmathjaxサポートを追加する方法はありますか?もしそうなら、これを取得するために(Linuxで)ステップバイステップで進む方法は?
git - ikiwiki を分割する
ikiwiki を 2 つの wiki に分割しようとしています。
ページを含むmyiki という ikiwiki があるとします ( ikiwiki.infoからのこの質問を比較してください)。
myikiA
今、私はとという名前の 2 つのウィキを持ちたいと思っていますmyikiB
。
myikiA
を含むpageA1,pageA2,...
の履歴にmyikiA
は、これらのページの履歴全体が含まれている必要がありますが、の履歴は含まれていませんpageB1,pageB2,...
と:
myikiB
含む pageB1、pageB2、...
の履歴にmyikiB
は、これらのページの履歴全体が含まれている必要がありますが、の履歴は含まれませんpageA1,pageA2,...
最初のステップで、my のコピーを作成し、このようなscrdir
名前のページを削除しようとしました ( には、と呼ばれるファイルとディレクトリもあるfoo
ことに注意してください)。
そのために、次のコマンドを実行しました。scrdir
foo.mdwn
foo
何が問題なのですか?
上記のように、ページのリストを表示してウィキを分割する方法はありますか?
lighttpd - lighttpd の ikiwiki
lighttpd を実行するラズベリー pi に ikiwiki をインストールしようとしています。
ユーザーのホームで Wiki を作成できますが、Web サーバー (アドレス + "~/username/wikiname") で表示しようとすると、404 が返されます。
wiki ディレクトリを にリンクする/var/www
と、500 エラーが発生します。
私は何か間違っているか、何かが足りないのですか?
コメントで要求されているように、これが私の lighttpd.conf です。
ここで強調表示されている手順も実行しました: http://ikiwiki.info/tips/dot_cgi/
perl - Encode.pm に関連する Perl エラー
次のソフトウェアがあります。
Ubuntu Linux 14.04 LTS
Perl 5.18:
および Encode.pm 2.49:
Encode.pm を使用したパッケージであるikiwikiを使用すると、次のエラーが発生しました。
Encode.pm の 166 ~ 180 行目:
この問題を解決する方法を知っている親切な魂はいますか?
templates - ikiwiki テンプレートへのフォント リンクの追加
ikiwiki のすべての HTML ページのすべてのヘッダーに以下を追加したいと考えています。
これらの行をカスタムに追加しようとしましたtemplates/page.tmpl.mdwn
が、wiki を展開するたびに追加されません。
私は何を間違っていますか?