2012-05-03 23 views
2

私はlocal reposのURLを更新するyumプラグインを作成しています。レポURLが変更されたときにyumにyum clean allを実行させて、古い情報がキャッシュされていないことを確認したいと思います。私はyumがyum clean [plugins|all]が要求されたときにコードを実行するフックを持っていることを知っていますが、プラグインの他のフック関数の中からすべてをトリガーすることは可能ですか?yumプラグインから「yum clean all」をトリガーするにはどうすればよいですか?

+0

あなたのプラグインがメタデータで何かをやっていると仮定しますか?デフォルトではyumは(少なくとも私のF16マシンでは)変更されたURLを検出し、makecache自体を実行するためです。 – Stan

+0

ええ、特定の状況でのみ、Repo URLを変更しています。これは、初期化後に行われるため、これを検出していないようです。これが私が自分の小切手を追加する必要があると思う理由です。 –

答えて

3

これは簡単に実行できます。 Yumは、コマンドラインプログラムによって消費されるライブラリを公開します。ここでは例のクリーンyumのためのコードのすべてです:あなたは関数が/ユーザー/共有に露出したCLIのライブラリー法によって公開されるすべてのAPIをチェックし使用して「すべてクリーン」その後、複数の操作を行いたい場合には

import sys 
sys.path.append("/usr/share/yum-cli") 
import cli 
ybc = cli.YumBaseCli() 
ybc.cleanCli(["all"]) 

/yumを-CLIフォルダ:)

よろしく、

関連する問題