Как удалить раздел "Для покупки" из Центра программного обеспечения?
В Центре программного обеспечения есть раздел "Программы для покупки" ( см. Скриншот ниже),
что раздражает меня каждый раз, когда я хочу что-то установить.
Есть ли способ удалить или скрыть эти программы из Центра программного обеспечения?
Ссылки на ответы:
Для 13.10 и выше →
За 13.04 →
За 12.10 →
За 12.04 →
Для 11.10 и ниже →
Пожалуйста, оставьте комментарий или отправьте письмо наjmendeth@gmail.com
если это не работает для вас или у вас возникли проблемы!
7 ответов
За 12.04
Полученный от Павлоса Г. ответ и вдохновение от Дармиена.
Другая версия? Перейти к списку
См. Конец поста, если у вас возникли проблемы и вы хотите отменить изменения.
1. Игнорируйте покупаемые приложения
Откройте терминал (Ctrl + Alt + T) и введите:
gksu gedit /usr/share/software-center/softwarecenter/db/update.py
И нажмите Enter. Вам будет предложено ввести пароль.
Тогда редактор появится. Найдите следующие строки (подсказка: Ctrl + F может помочь):
doc = make_doc_from_parser(parser, cache)
if not doc:
LOG.debug("make_doc_from_parser() returned '%s', ignoring" % doc)
return
term_generator.set_document(doc)
name = doc.get_data()
Сразу после этих строк вставьте следующее (включая пробелы!):
if doc.get_value(XapianValues.PRICE) not in (""): return
Примечание: если вы хотите сохранить вещи, которые не стоят денег, но должны быть "куплены"
(например, судебные процессы, журналы и прочее), заменить ("")
с ("0.00", "")
,
Сохраните файл (Ctrl + S), откройте Центр программного обеспечения и… вуаля!
Там нет коммерческих программ!
Вы можете закрыть редактор и терминал сейчас.
2. Удалить канал "Для покупки" (необязательно)
Чтобы также удалить этот пункт "Для покупки" в меню, откройте терминал и введите:
gksu gedit /usr/share/software-center/softwarecenter/backend/channel_impl/aptchannels.py
Найдите эти строки:
if get_distro().PURCHASE_APP_URL:
channels.append(for_purchase_channel)
И отключить их, поставив #
перед каждой строкой:
#if get_distro().PURCHASE_APP_URL:
# channels.append(for_purchase_channel)
Сохраните и наслаждайтесь программным центром без рекламы!
Примечания стороны: файлы. являются. в упаковке.
Вы спросите, что это значит? Это означает, что,
каждый раз, когда вы обновляете свой Центр программного обеспечения, изменения
будет возвращен, и вам придется сделать это снова.
Отменить изменения
Если вы хотите восстановить исходное состояние файлов,
откройте терминал и введите:
sudo apt-get install --reinstall software-center && exit
Снова, вам будет предложено ввести пароль, на этот раз на терминале.
Введите его и нажмите клавишу ВВОД. Не волнуйтесь, если при вводе ничего не появляется, это скрыть ваш пароль.
Терминал автоматически закроется, когда закончите.
Для 11.10 и ранее
Вы можете редактировать:
/usr/share/software-center/softwarecenter/backend/channel.py
и закомментируйте (или удалите) следующие строки:
for_purchase_channel = None
#create a "magic" channel to display items available for purchase `
for_purchase_query = xapian.Query("AH" + AVAILABLE_FOR_PURCHASE_MAGIC_CHANNEL_NAME)
for_purchase_channel = SoftwareChannel(self.icons,
"For Purchase", None, None,
channel_icon=None, # FIXME: need an icon
channel_query=for_purchase_query,
installed_only=installed_only)
if partner_channel is not None:
# channels.append(partner_channel)
#channels.append(for_purchase_channel)
Конечно, вы должны иметь в виду, что последующие обновления software-center
вероятно перезапишет скрипт...
Проверьте эту ссылку для более подробной информации;-)
Примечание: для 12.04 имя файла /usr/share/software-center/softwarecenter/backend/channel_impl/aptchannels.py
, Применяются те же шаги.
Я нашел способ скрыть коммерческие результаты за 12.04:
В /usr/share/software-center/softwarecenter/ui/gtk3/models/appstore2.py:
После строк:
def set_from_matches(self, matches):
""" set the content of the liststore based on a list of
xapian.MSetItems
"""
LOG.debug("set_from_matches len(matches)='%s'" % len(matches))
Добавьте следующую строку:
matches[:] = [m for m in matches if (m.document.get_value(XapianValues.PRICE) in _FREE_AS_IN_BEER)]
Это должно только изменить то, что отображается, но я пока не очень тестировал, так что используйте на свой страх и риск. И наслаждайтесь без рекламы программного центра.
Для полноты, вот решение, которое работало для меня в 13.10:
sudo aptitude install gksu
gksu gedit /usr/share/software-center/softwarecenter/db/update.py
Найдите это:
def make_doc(self, cache):
"""Build a Xapian document from the desktop info."""
doc = xapian.Document()
И добавьте это (убедитесь, что у вас есть правильный отступ в TABS (python требует этого):
if self.has_option_desktop("X-AppInstall-Price"):
if self.get_desktop("X-AppInstall-Price") > 0: return
Кстати, это был мой первый питон evar:-)
Я попробовал это, это сработало для меня: отображаются только БЕСПЛАТНЫЕ (цена не более 0) товаров.
gksu gedit /usr/share/software-center/softwarecenter/db/update.py
Найдите это:
def make_doc_from_parser(parser, cache):
# XXX 2012-01-19 michaeln I'm just pulling this code out from
# index_app_info_from_parser, but it'd be great to further
# refactor it - it looks quite scary :-)
doc = xapian.Document()
# app name is the data
Затем добавьте следующий код:
if parser.has_option_desktop("X-AppInstall-Price"):
if parser.get_desktop("X-AppInstall-Price") > 0: return
Для 12.10 и позже
Alba Mendez от ответа Alba Mendez.
Другая версия? Перейти к списку
См. Конец поста, если у вас возникли проблемы и вы хотите отменить изменения.
Закройте Центр программного обеспечения, если он открыт.
Теперь откройте терминал (Ctrl + Alt + T) и введите:
gksu gedit /usr/share/software-center/softwarecenter/db/update.py
И нажмите Enter. Вам будет предложено ввести пароль.
Тогда редактор появится. Найдите следующие строки (подсказка: Ctrl + F может помочь):
doc = self.make_doc(cache)
if not doc:
LOG.debug("%r.index_app_info: returned invalid doc %r, ignoring.",
self.__class__.__name__, doc)
return
name = doc.get_data()
Сразу после этих строк вставьте следующее (включая пробелы!):
if doc.get_value(XapianValues.PRICE) not in (""): return
Сохраните файл (Ctrl + S) и закройте редактор, но не терминал.
Теперь введите в терминале:
gksu gedit /usr/share/software-center/softwarecenter/backend/channel_impl/aptchannels.py
Нажмите Ввод. Редактор появится снова. Найдите эти строки:
if get_distro().PURCHASE_APP_URL:
channels.append(for_purchase_channel)
И отключить их, поставив #
перед каждой строкой:
#if get_distro().PURCHASE_APP_URL:
# channels.append(for_purchase_channel)
Сохраните файл, закройте редактор, но не терминал.
В терминале введите:
gksu echo; sudo update-software-center && exit
Подождите немного, терминал автоматически закроется, когда закончите...
Затем откройте Центр программного обеспечения и... вуаля!
Там нет коммерческих программ!
Примечания стороны: файлы. являются. в упаковке.
Вы спросите, что это значит? Это означает, что,
каждый раз, когда вы обновляете свой Центр программного обеспечения, изменения
будет возвращен, и вам придется сделать это снова.
Отменить изменения
Если вы хотите восстановить исходное состояние файлов,
откройте терминал и введите:
gksu echo; sudo apt-get install --reinstall software-center && exit
Вам снова будет предложено ввести пароль.
Терминал автоматически закроется, когда закончите.
Вы можете сделать это проще, выбрав View -> Canonical Maintained Software вместо All Software. Преимущество заключается в том, что вы не перезаписываетесь обновлениями программного обеспечения.
Это может скрыть некоторые дополнительные элементы, но, по крайней мере, избавит меня от надоедливых журналов и программного обеспечения для продажи по моему опыту.