Как программно получить список приложений из Software Center

Исправлено в 12.04. Угадайте, что это было просто мимоходом.

4
задан 18 May 2012 в 21:59

17 ответов

Вы можете напрямую использовать xapian DB:

import xapian
db=xapian.Database("/var/cache/software-center/xapian")
for m in db.postlist(""): 
    appname = db.get_document(m.docid).get_data()

Или внутренний API-интерфейс программного обеспечения:

import sys
sys.path.insert(0, "/usr/share/software-center/")
import softwarecenter.db.database
db = softwarecenter.db.database.StoreDatabase()
db._aptcache.open()
# 'use_axi' is use apt-xapian-index
# 'use_agent' is use the Software Center Agent database
db.open(use_axi=False, use_agent=False)
for doc in db:
    app = db.get_application(doc)
    print app.appname, app.pkgname
    appdetails = app.get_details(db)
    # Icon names are relative to /usr/share/app-install/icons/
    print appdetails.icon
5
ответ дан 25 May 2018 в 11:15
  • 1
    Майкл также говорит мне: «appdetail имеет еще большую связку, вы можете получить значок через обычный механизм значков, но вам нужно добавить / usr / share / app-install / icons в путь значка через append_path () " – David Planella 24 May 2012 в 17:12

Вы можете напрямую использовать xapian DB:

import xapian
db=xapian.Database("/var/cache/software-center/xapian")
for m in db.postlist(""): 
    appname = db.get_document(m.docid).get_data()

Или внутренний API программного обеспечения:

import sys
sys.path.insert(0, "/usr/share/software-center/")
import softwarecenter.db.database
db = softwarecenter.db.database.StoreDatabase()
db._aptcache.open()
# 'use_axi' is use apt-xapian-index
# 'use_agent' is use the Software Center Agent database
db.open(use_axi=False, use_agent=False)
for doc in db:
    app = db.get_application(doc)
    print app.appname, app.pkgname
    appdetails = app.get_details(db)
    # Icon names are relative to /usr/share/app-install/icons/
    print appdetails.icon
5
ответ дан 25 July 2018 в 18:51

Вы можете напрямую использовать xapian DB:

import xapian
db=xapian.Database("/var/cache/software-center/xapian")
for m in db.postlist(""): 
    appname = db.get_document(m.docid).get_data()

Или внутренний API программного обеспечения:

import sys
sys.path.insert(0, "/usr/share/software-center/")
import softwarecenter.db.database
db = softwarecenter.db.database.StoreDatabase()
db._aptcache.open()
# 'use_axi' is use apt-xapian-index
# 'use_agent' is use the Software Center Agent database
db.open(use_axi=False, use_agent=False)
for doc in db:
    app = db.get_application(doc)
    print app.appname, app.pkgname
    appdetails = app.get_details(db)
    # Icon names are relative to /usr/share/app-install/icons/
    print appdetails.icon
5
ответ дан 2 August 2018 в 01:00

Вы можете напрямую использовать xapian DB:

import xapian
db=xapian.Database("/var/cache/software-center/xapian")
for m in db.postlist(""): 
    appname = db.get_document(m.docid).get_data()

Или внутренний API программного обеспечения:

import sys
sys.path.insert(0, "/usr/share/software-center/")
import softwarecenter.db.database
db = softwarecenter.db.database.StoreDatabase()
db._aptcache.open()
# 'use_axi' is use apt-xapian-index
# 'use_agent' is use the Software Center Agent database
db.open(use_axi=False, use_agent=False)
for doc in db:
    app = db.get_application(doc)
    print app.appname, app.pkgname
    appdetails = app.get_details(db)
    # Icon names are relative to /usr/share/app-install/icons/
    print appdetails.icon
5
ответ дан 4 August 2018 в 16:31

Вы можете напрямую использовать xapian DB:

import xapian
db=xapian.Database("/var/cache/software-center/xapian")
for m in db.postlist(""): 
    appname = db.get_document(m.docid).get_data()

Или внутренний API программного обеспечения:

import sys
sys.path.insert(0, "/usr/share/software-center/")
import softwarecenter.db.database
db = softwarecenter.db.database.StoreDatabase()
db._aptcache.open()
# 'use_axi' is use apt-xapian-index
# 'use_agent' is use the Software Center Agent database
db.open(use_axi=False, use_agent=False)
for doc in db:
    app = db.get_application(doc)
    print app.appname, app.pkgname
    appdetails = app.get_details(db)
    # Icon names are relative to /usr/share/app-install/icons/
    print appdetails.icon
5
ответ дан 6 August 2018 в 01:11

Вы можете напрямую использовать xapian DB:

import xapian
db=xapian.Database("/var/cache/software-center/xapian")
for m in db.postlist(""): 
    appname = db.get_document(m.docid).get_data()

Или внутренний API программного обеспечения:

import sys
sys.path.insert(0, "/usr/share/software-center/")
import softwarecenter.db.database
db = softwarecenter.db.database.StoreDatabase()
db._aptcache.open()
# 'use_axi' is use apt-xapian-index
# 'use_agent' is use the Software Center Agent database
db.open(use_axi=False, use_agent=False)
for doc in db:
    app = db.get_application(doc)
    print app.appname, app.pkgname
    appdetails = app.get_details(db)
    # Icon names are relative to /usr/share/app-install/icons/
    print appdetails.icon
5
ответ дан 7 August 2018 в 18:37

Вы можете напрямую использовать xapian DB:

import xapian
db=xapian.Database("/var/cache/software-center/xapian")
for m in db.postlist(""): 
    appname = db.get_document(m.docid).get_data()

Или внутренний API программного обеспечения:

import sys
sys.path.insert(0, "/usr/share/software-center/")
import softwarecenter.db.database
db = softwarecenter.db.database.StoreDatabase()
db._aptcache.open()
# 'use_axi' is use apt-xapian-index
# 'use_agent' is use the Software Center Agent database
db.open(use_axi=False, use_agent=False)
for doc in db:
    app = db.get_application(doc)
    print app.appname, app.pkgname
    appdetails = app.get_details(db)
    # Icon names are relative to /usr/share/app-install/icons/
    print appdetails.icon
5
ответ дан 10 August 2018 в 07:16

Вы можете напрямую использовать xapian DB:

import xapian
db=xapian.Database("/var/cache/software-center/xapian")
for m in db.postlist(""): 
    appname = db.get_document(m.docid).get_data()

Или внутренний API программного обеспечения:

import sys
sys.path.insert(0, "/usr/share/software-center/")
import softwarecenter.db.database
db = softwarecenter.db.database.StoreDatabase()
db._aptcache.open()
# 'use_axi' is use apt-xapian-index
# 'use_agent' is use the Software Center Agent database
db.open(use_axi=False, use_agent=False)
for doc in db:
    app = db.get_application(doc)
    print app.appname, app.pkgname
    appdetails = app.get_details(db)
    # Icon names are relative to /usr/share/app-install/icons/
    print appdetails.icon
5
ответ дан 15 August 2018 в 19:17
  • 1
    Майкл также говорит мне: «appdetail имеет еще большую связку, вы можете получить значок через обычный механизм значков, но вам нужно добавить / usr / share / app-install / icons в путь значка через append_path () & quot; – David Planella 24 May 2012 в 17:12

Использовать пакет python-apt, есть документы в /usr/share/doc/python-apt

Например, чтобы получить список всех установленных пакетов, используйте

import apt
cache = apt.Cache()
installed_packages = [p for p in cache if p.is_installed]

Поскольку Центр программного обеспечения написанный на Python, вы также можете посмотреть его исходный код.

2
ответ дан 25 May 2018 в 11:15
  • 1
    Спасибо, это хорошо работает. Тем не менее, мне все еще интересно, могу ли я использовать данные, представленные в приложении «Объективы». Это, вероятно, даст мне значок приложения и вернет более релевантные результаты (я считаю, что в объективе отображаются только приложения с файлом .desktop, например, больше пользовательского программного обеспечения, а не библиотеки, программного обеспечения CLI и т. Д.). – David Planella 19 May 2012 в 19:33
  • 2
    Посмотрите файлы .desktop в папке /usr/share/app-install/desktop – Florian Diesch 19 May 2012 в 20:16

Использовать пакет python-apt , есть документы в /usr/share/doc/python-apt

Например, чтобы получить список всех установленных пакетов, используйте

import apt
cache = apt.Cache()
installed_packages = [p for p in cache if p.is_installed]

Поскольку Центр программного обеспечения написан на Python, вы также можете посмотреть его исходный код.

2
ответ дан 25 July 2018 в 18:51

Использовать пакет python-apt , есть документы в /usr/share/doc/python-apt

Например, чтобы получить список всех установленных пакетов, используйте

import apt
cache = apt.Cache()
installed_packages = [p for p in cache if p.is_installed]

Поскольку Центр программного обеспечения написан на Python, вы также можете посмотреть его исходный код.

2
ответ дан 31 July 2018 в 12:48

Использовать пакет python-apt , есть документы в /usr/share/doc/python-apt

Например, чтобы получить список всех установленных пакетов, используйте

import apt
cache = apt.Cache()
installed_packages = [p for p in cache if p.is_installed]

Поскольку Центр программного обеспечения написан на Python, вы также можете посмотреть его исходный код.

2
ответ дан 2 August 2018 в 01:00

Использовать пакет python-apt , есть документы в /usr/share/doc/python-apt

Например, чтобы получить список всех установленных пакетов, используйте

import apt
cache = apt.Cache()
installed_packages = [p for p in cache if p.is_installed]

Поскольку Центр программного обеспечения написан на Python, вы также можете посмотреть его исходный код.

2
ответ дан 4 August 2018 в 16:31

Использовать пакет python-apt , есть документы в /usr/share/doc/python-apt

Например, чтобы получить список всех установленных пакетов, используйте

import apt
cache = apt.Cache()
installed_packages = [p for p in cache if p.is_installed]

Поскольку Центр программного обеспечения написан на Python, вы также можете посмотреть его исходный код.

2
ответ дан 6 August 2018 в 01:11

Использовать пакет python-apt , есть документы в /usr/share/doc/python-apt

Например, чтобы получить список всех установленных пакетов, используйте

import apt
cache = apt.Cache()
installed_packages = [p for p in cache if p.is_installed]

Поскольку Центр программного обеспечения написан на Python, вы также можете посмотреть его исходный код.

2
ответ дан 7 August 2018 в 18:37

Использовать пакет python-apt , есть документы в /usr/share/doc/python-apt

Например, чтобы получить список всех установленных пакетов, используйте

import apt
cache = apt.Cache()
installed_packages = [p for p in cache if p.is_installed]

Поскольку Центр программного обеспечения написан на Python, вы также можете посмотреть его исходный код.

2
ответ дан 10 August 2018 в 07:16

Использовать пакет python-apt , есть документы в /usr/share/doc/python-apt

Например, чтобы получить список всех установленных пакетов, используйте

import apt
cache = apt.Cache()
installed_packages = [p for p in cache if p.is_installed]

Поскольку Центр программного обеспечения написан на Python, вы также можете посмотреть его исходный код.

2
ответ дан 15 August 2018 в 19:17
  • 1
    Спасибо, это хорошо работает. Тем не менее, мне все еще интересно, могу ли я использовать данные, представленные в приложении «Объективы». Это, вероятно, даст мне значок приложения и вернет более релевантные результаты (я считаю, что в объективе отображаются только приложения с файлом .desktop, например, больше пользовательского программного обеспечения, а не библиотеки, программного обеспечения CLI и т. Д.). – David Planella 19 May 2012 в 19:33
  • 2
    Посмотрите файлы .desktop в папке /usr/share/app-install/desktop – Florian Diesch 19 May 2012 в 20:16

Другие вопросы по тегам:

Похожие вопросы: