Comment supprimer la section «À l'achat» du Centre de logiciel?


35

Le Centre logiciel contient une section de programmes For Purchase ( voir capture d'écran ci-dessous),
qui m'annonce chaque fois que je souhaite installer quelque chose.

Existe-t-il un moyen de supprimer ou de masquer ces programmes du Centre de logiciel?

Liens vers les réponses:

Pour 13.10 et plus
Pour 13.04
Pour 12.10
Pour 12.04
Pour 11.10 et moins
Laissez un commentaire ou envoyez un mail à jmendeth@gmail.com
si cela ne fonctionne pas ou si vous rencontrez des problèmes!

La section "À l'achat" du Centre logiciel Ubuntu.


Que signifie 13.10 et plus?
Avinash Raj

@AvinashRaj C'est pour la version la plus récente d'Ubuntu comme maintenant 13.10, et bientôt 14.04 pensez que l'alpha / beta de 14.04 est bientôt disponible.
Alvar

Réponses:


17

Pour 12.04

Dérivé de Pavlos G. et inspiré de Darmien .
Version différente? Aller à la liste .
Voir la fin du message si vous êtes en difficulté et que vous souhaitez annuler les modifications.


1. Ignorer les applications achetables

Ouvrez un terminal ( Ctrl+ Alt+ T) et tapez:

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

Et appuyez sur Entrée. Vous serez invité à entrer votre mot de passe.
Ensuite, un éditeur apparaîtra. Localisez les lignes suivantes (indice: Ctrl+ Fpeut aider):

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

Immédiatement après ces lignes, collez ce qui suit ( y compris les espaces! ):

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

Remarque: si vous souhaitez conserver des éléments qui ne coûtent pas cher, mais qui doivent être "achetés"
(comme des essais, des magazines et autres éléments de propriété), remplacez-les ("")par ("0.00", "").

Enregistrez le fichier ( Ctrl+ S), ouvrez le Centre logiciel et… voila!
Il n'y a pas de programmes commerciaux!
Vous pouvez fermer l'éditeur et le terminal maintenant.

2. Supprimez le canal "pour achat" (facultatif)

Pour supprimer également cet élément "à acheter" du menu, ouvrez un terminal et tapez:

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

Localisez ces lignes:

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

Et désactivez-les en mettant un #devant chaque ligne:

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

Enregistrez et profitez d'un centre de logiciel sans publicité!

 


Notes de côté: Le. des dossiers. sont. emballé.

Qu'est-ce que cela signifie, demandez-vous? Cela signifie que
chaque fois que vous mettrez à niveau votre Centre de logiciel, les modifications
seront annulées et vous devrez effectuer cette opération à nouveau.

Annuler les modifications

Si vous souhaitez restaurer l'état d'origine des fichiers,
ouvrez un terminal et tapez:

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

Encore une fois, votre mot de passe vous sera demandé, cette fois sur le terminal.
Tapez-le et appuyez sur ENTRÉE. Ne vous inquiétez pas si rien ne s'affiche lorsque vous tapez, c'est pour cacher votre mot de passe.
Le terminal se ferme automatiquement lorsque vous avez terminé.


2
Comme je l'ai dit à d'autres, il est préférable de faire une sauvegarde avant de modifier quoi que ce soit critique pour un programme.
ζ--

1
@ObsessiveFOSS bon point. Mais gardez à l'esprit que: 1) Les changements sont triviaux et faciles à annuler. Il est peu probable que des personnes se perdent un jour. : D 2) Ces fichiers sont empaquetés. Si vous faites une erreur, vous pouvez simplement réinstaller le paquet.
Alba Mendez

@ObsessiveFOSS J'ai ajouté des instructions pour revenir, juste au cas où;)
Alba Mendez

12

Pour 11.10 et les versions antérieures

Vous pouvez éditer:

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

et commentez (ou supprimez) les lignes suivantes:

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)

Bien sûr, vous devriez avoir à l’esprit que les mises à jour qui en software-centerrésulteront vont probablement écraser le script ...

Consultez ce lien pour plus de détails ;-)

Remarque: pour 12.04, le nom du fichier est /usr/share/software-center/softwarecenter/backend/channel_impl/aptchannels.py. Les mêmes étapes s'appliquent.


1
Vous avez le souci de trouver une solution pour 12.04? :)
Savvas Radevic

1
Si vous remplacez le centre logiciel par une ancienne version askubuntu.com/questions/95497/…, vous pouvez suivre ces étapes.
Mateo

Le 12.04, ces étapes masqueront le canal "pour achat" mais pas toutes les entrées commerciales. Pour les cacher également, il faudrait quelque chose comme la solution de Darmien. (Mais je veux trouver un moyen de modifier la logique, pas l' interface graphique ).
Alba Mendez

Je l'ai trouvé! Masquer TOUTES les entrées de commerce de partout!
Alba Mendez

@medigeek regarde ma réponse . Si cela ne fonctionne pas, dites-le moi. Je l'ai testé sur trois ordinateurs différents.
Alba Mendez

6

J'ai trouvé un moyen de cacher les résultats commerciaux pour 12.04:

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

Après les lignes:

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

Ajoutez la ligne suivante:

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

Cela ne devrait changer que ce qui est affiché, mais je ne l'ai pas encore beaucoup testé, utilisez-le à vos risques et périls. Et profitez d'un centre logiciel sans publicité.


Génial! J'ai hâte de le tester. :)
Alba Mendez

Je n'ai pas testé, mais va faire. Merci d'avoir essayé!
Savvas Radevic

6

Pour être complet, voici la solution qui a fonctionné pour moi en 13.10:

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

Trouve ça:

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

Et ajoutez ceci (assurez-vous que vous avez la bonne indentation de TABS (python le requiert):

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

BTW c'était mon premier evar de python :-)


+1 Impossible de vérifier pour le moment, mais ajouté à la table des matières également. Merci!
Alba Mendez

Fonctionne pour 14.04, mais il serait préférable d’activer / désactiver l’interface utilisateur. Cette solution est plutôt permanente. Ne plus jamais voir les applications à l'achat.
VlatkoB

3

J'ai essayé cela a fonctionné pour moi: seuls les éléments GRATUITS (prix pas plus de 0) sont affichés.

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

Trouve ça:

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

Ajoutez ensuite le code suivant:

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

2

À partir de 12h10

Dérivé de jmendeth answer .
Version différente? Aller à la liste .
Voir la fin du message si vous êtes en difficulté et que vous souhaitez annuler les modifications.

Fermez le Centre de logiciels s'il est ouvert.
Ouvrez maintenant un terminal ( Ctrl+ Alt+ T) et tapez:

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

Et appuyez sur Entrée. Vous serez invité à entrer votre mot de passe.
Ensuite, un éditeur apparaîtra. Localisez les lignes suivantes (indice: Ctrl+ Fpeut aider):

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

Immédiatement après ces lignes, collez ce qui suit ( y compris les espaces! ):

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

Enregistrez le fichier ( Ctrl+ S) et fermez l'éditeur, mais pas le terminal.
Maintenant, tapez le terminal:

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

Appuyez sur Entrée. Un éditeur apparaîtra à nouveau. Localisez ces lignes:

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

Et désactivez-les en mettant un #devant chaque ligne:

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

Enregistrez le fichier, fermez l'éditeur mais pas le terminal.
Dans le terminal, tapez:

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

Attendez un peu, le terminal se fermera automatiquement à la fin de l'opération ...
Ouvrez ensuite le centre logiciel et ... le tour est joué!
Il n'y a pas de programmes commerciaux!

Notes de côté: Le. des dossiers. sont. emballé.

Qu'est-ce que cela signifie, demandez-vous? Cela signifie que
chaque fois que vous mettrez à niveau votre Centre de logiciel, les modifications
seront annulées et vous devrez effectuer cette opération à nouveau.

Annuler les modifications

Si vous souhaitez restaurer l'état d'origine des fichiers,
ouvrez un terminal et tapez:

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

Encore une fois, votre mot de passe vous sera demandé.
Le terminal se ferme automatiquement lorsque vous avez terminé.


+1 Merci pour votre contribution! Eh bien, cela devient assez difficile, alors je pense que je vais créer un script Python qui corrige le correctif approprié en fonction de la version.
Alba Mendez

Je vais tester sur mon 12.10, si tout est prêt, je vais relier votre réponse en haut et apporter toute autre modification.
Alba Mendez

Je viens de le faire sur ma nouvelle installation d'Ubuntu 12.10
blvdeer

@jmendeth j'adorerai t'aider à écrire ce scénario
dimanche

Désolé pour le retard. Malheureusement, cela ne fonctionne pas sur mon Ubuntu 12.10 64 bits. Je verrai si je peux faire quelque chose ...
Alba Mendez

-2

Vous pouvez le faire plus simplement en sélectionnant Affichage -> Logiciel maintenu par Canonical au lieu de Tous les logiciels. Cela présente l'avantage de ne pas être écrasé par les mises à jour logicielles.

Cela cache peut-être des éléments supplémentaires, mais au moins, selon mon expérience, il élimine les magazines ennuyeux et les logiciels de vente.


2
Ensuite, vous cachez 90% de tous les logiciels, en affichant uniquement les logiciels (commerciaux ou non) pris en charge par Canonical. Ce que je veux faire est de retirer le logiciel propietary seulement .
Alba Mendez
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.