Como remover a seção “For Purchase” do Centro de Software?

35

O Centro de Software tem uma seção de Para Compra programas - veja a imagem abaixo -,
que está me anonizando toda vez que eu quero instalar algo.

Existe alguma maneira de remover ou ocultar esses programas do Centro de Software?

Links to answers:

For 13.10 and higher
For 13.04
For 12.10
For 12.04
For 11.10 and lower
Please leave a comment or send a mail to [email protected]
if it's not working for you or you're having trouble!

    
por Alba Mendez 10.06.2011 / 10:06

7 respostas

17

Para 12,04

Derivado de Resposta de Pavlos G. e inspiração de Darmien answer .
Versão diferente? Vá para a lista .
Veja o final da postagem se você estiver com problemas e quiser reverter as alterações.

1. Ignore os aplicativos compráveis

Abra um terminal ( Ctrl + Alt + T ) e digite:

gksu gedit /usr/share/software-center/softwarecenter/db/update.py

e pressione Enter. Você será solicitado a fornecer sua senha.
Então um editor aparecerá. Localize as seguintes linhas (dica: Ctrl + F pode ajudar):

        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()

Imediatamente após essas linhas, cole o seguinte ( incluindo os espaços! ):

        if doc.get_value(XapianValues.PRICE) not in (""): return

Observação: se você quiser manter coisas que não custam dinheiro, mas que precisam ser "compradas"
(como ensaios, revistas e outras coisas proprietárias), substitua ("") por ("0.00", "") .

Salve o arquivo ( Ctrl + S ), abra o Centro de Software e…… voila!
Não há programas comerciais!
Você pode fechar o editor e o terminal agora.

2. Remova o canal "Para compra" (opcional)

Para remover também o item "Para compra" no menu, abra um terminal e digite:

gksu gedit /usr/share/software-center/softwarecenter/backend/channel_impl/aptchannels.py

Localize estas linhas:

        if get_distro().PURCHASE_APP_URL:
            channels.append(for_purchase_channel)

E desative-os colocando um # na frente de cada linha:

        #if get_distro().PURCHASE_APP_URL:
        #    channels.append(for_purchase_channel)

Economize e aproveite um centro de software sem anúncios!

Notas laterais: O. arquivos. está. empacotado.

O que isso significa, você pergunta? Isso significa que, você sempre que você atualiza seu Centro de Software, as alterações
será revertido e você terá que fazer isso novamente.

Desfaz as modificações

Se você quiser restaurar o estado original dos arquivos,
abra um terminal e digite:

sudo apt-get install --reinstall software-center && exit

Mais uma vez, sua senha será solicitada, desta vez no terminal.
Digite-o e pressione ENTER. Não se preocupe se nada aparecer quando você digita, é para esconder sua senha.
O terminal fechará automaticamente quando terminar.

    
por Alba Mendez 21.07.2012 / 13:05
12

Para 11.10 e anteriores

Você pode editar:

/usr/share/software-center/softwarecenter/backend/channel.py

e comente (ou exclua) as seguintes linhas:

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)

Claro, você deve ter em mente que as atualizações consequentes de software-center provavelmente substituirão o script ...

Confira este link para mais detalhes; -)

Nota: para 12.04, o nome do arquivo é /usr/share/software-center/softwarecenter/backend/channel_impl/aptchannels.py . Os mesmos passos se aplicam.

    
por Pavlos G. 10.06.2011 / 10:29
6

Encontrei uma maneira de ocultar resultados comerciais para 12.04:

Em /usr/share/software-center/softwarecenter/ui/gtk3/models/appstore2.py:

Após as linhas:

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))

Adicione a seguinte linha:

    matches[:] = [m for m in matches if (m.document.get_value(XapianValues.PRICE) in _FREE_AS_IN_BEER)]

Só deve alterar o que é exibido, mas ainda não testei muito, por isso use por sua conta e risco. E aproveite um centro de software livre de anúncios.

    
por Damien 15.05.2012 / 11:44
6

Para completar, aqui está a solução que funcionou para mim em 13.10:

sudo aptitude install gksu
gksu gedit /usr/share/software-center/softwarecenter/db/update.py

Encontre isto:

def make_doc(self, cache):
    """Build a Xapian document from the desktop info."""
    doc = xapian.Document()

E adicione isso (certifique-se de ter o recuo correto de TABS (o python exige isso):

if self.has_option_desktop("X-AppInstall-Price"):
    if self.get_desktop("X-AppInstall-Price") > 0: return

BTW este foi meu primeiro python evar: -)

    
por Lennart Rolland 12.01.2014 / 02:42
3

Eu tentei isso, funcionou para mim: apenas itens (não mais que 0) são exibidos.

gksu gedit /usr/share/software-center/softwarecenter/db/update.py

Encontre isto:

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

Adicione o seguinte código:

if parser.has_option_desktop("X-AppInstall-Price"):
    if parser.get_desktop("X-AppInstall-Price") > 0: return
    
por deputt 19.11.2013 / 02:11
2

Para 12.10 e posterior

Derivado de jmendeth answer .
Versão diferente? Vá para a lista .
Veja o final da postagem se você estiver com problemas e quiser reverter as alterações.

Feche o Centro de Software se estiver aberto.
Agora abra um terminal ( Ctrl + Alt + T ) e digite:

gksu gedit /usr/share/software-center/softwarecenter/db/update.py

e pressione Enter. Você será solicitado a fornecer sua senha.
Então um editor aparecerá. Localize as seguintes linhas (dica: Ctrl + F pode ajudar):

        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()

Imediatamente após essas linhas, cole o seguinte ( incluindo os espaços! ):

        if doc.get_value(XapianValues.PRICE) not in (""): return

Salve o arquivo ( Ctrl + S ) e feche o editor, mas não o terminal.
Agora digite o terminal:

gksu gedit /usr/share/software-center/softwarecenter/backend/channel_impl/aptchannels.py

Pressione ENTER. Um editor aparecerá novamente. Localize estas linhas:

        if get_distro().PURCHASE_APP_URL:
            channels.append(for_purchase_channel)

E desative-os colocando um # na frente de cada linha:

        #if get_distro().PURCHASE_APP_URL:
        #    channels.append(for_purchase_channel)

Salve o arquivo, feche o editor, mas não o terminal.
No terminal, digite:

gksu echo; sudo update-software-center && exit

Espere um pouco, o terminal fechará automaticamente quando terminar ...
Em seguida, abra o Centro de Software e… voila!
Não há programas comerciais!

Notas laterais: O. arquivos. está. empacotado.

O que isso significa, você pergunta? Isso significa que, você sempre que você atualiza seu Centro de Software, as alterações
será revertido e você terá que fazer isso novamente.

Desfaz as modificações

Se você quiser restaurar o estado original dos arquivos,
abra um terminal e digite:

gksu echo; sudo apt-get install --reinstall software-center && exit

Novamente, você será solicitado a fornecer sua senha.
O terminal fechará automaticamente quando terminar.

    
por blvdeer 10.01.2013 / 17:13
-2

Você pode fazer isso mais simplesmente selecionando Visualizar - > A Canonical Maintained Software, em vez de todo o software. Isso tem o benefício de não ser substituído por atualizações de software.

Isso pode esconder alguns itens adicionais, mas pelo menos ele se livra das revistas irritantes e dos softwares de vendas na minha experiência.

    
por user1691562 17.08.2013 / 22:40