私はPythonに関してはかなり初心者なので、事前に許しを請います:)。そうは言っても、私は、とりわけ、いくつかのLinuxパッケージをインストールするスクリプトを作成しようとしています。最初に説明したようにサブオープンを使おうとしました ここ 。これは最終的には機能しますが、私は python-apt API に出くわしました。私は大ファンではないか、車輪の再発明をしていないので、試してみることにしました。
Python-aptを使用してパッケージをインストールする際の例/チュートリアルを見つけようとすると問題が発生します。ドキュメントを検索すると、パッケージをインストールするためのいくつかのメソッドを持つ PackageManager クラスが見つかりました。私はこれを機能させるためにいくつかの簡単なコードを試しました:
apt_pkg.PackageManager.install("python")
これは簡単には機能しないようです。installメソッドはプレーンな文字列ではなくapt_pkg.PackageManagerを想定しています。したがって、もう少し見てみると、 この例を見つけました これは有望に見えますが、そこで何が起こっているのか本当に理解していないので、使用するのは少し気が進まないです。
次に、誰かがpython-aptを使用してパッケージをインストールしようとしましたか、それとも昔ながらのサブオープンスタイルを使用する必要がありますか?
ありがとう!
_python-apt
_ Debianパッケージのapt
モジュールを使用することをお勧めします。これは、基盤となるC/C++ _libapt-xxx
_ライブラリの上位レベルのラッパーであり、Pythonicインターフェイスを備えています。
_libjs-yui-doc
_パッケージをインストールするスクリプトの例を次に示します。
_#!/usr/bin/env python
# aptinstall.py
import apt
import sys
pkg_name = "libjs-yui-doc"
cache = apt.cache.Cache()
cache.update()
cache.open()
pkg = cache[pkg_name]
if pkg.is_installed:
print "{pkg_name} already installed".format(pkg_name=pkg_name)
else:
pkg.mark_install()
try:
cache.commit()
except Exception, arg:
print >> sys.stderr, "Sorry, package installation failed [{err}]".format(err=str(arg))
_
_apt-get
_の使用と同様に、これはAPTキャッシュにアクセスして変更するには、スーパーユーザー権限で実行する必要があります。
_$ Sudo ./aptinstall.py
_
より大きなスクリプトの一部としてパッケージのインストールを試みている場合は、必要最小限の時間だけroot権限に昇格することをお勧めします。
GTKフロントエンドを使用してパッケージをインストールする方法を示す/usr/share/pyshared/apt/progress/gtk2.py:_test()
関数に小さな例があります。