Wie entferne ich den Abschnitt "Zum Kauf" aus dem Software Center?

35

Im Software-Center gibt es einen Abschnitt mit For Purchase- Programmen (siehe
Abbildung unten), der mich jedes Mal ärgert, wenn ich etwas installieren möchte.

Gibt es eine Möglichkeit, diese Programme aus dem Software Center zu entfernen oder auszublenden ?

Links zu Antworten:

Für 13.10 und höher
Für 13.04
Für 12.10
Für 12.04
Für 11.10 und niedriger
Bitte hinterlassen Sie einen Kommentar oder senden Sie eine E-Mail an, [email protected]
wenn es bei Ihnen nicht funktioniert oder Sie Probleme haben!

Der Bereich "Zum Kauf" im Ubuntu Software Center.

Alba Mendez
quelle
Was bedeutet 13.10 und höher?
Avinash Raj
@AvinashRaj Das ist für die aktuellste Version von Ubuntu wie im Moment 13.10 und demnächst auch 14.04.
Alvar

Antworten:

17

Für den 12.04

Abgeleitet von Pavlos G. Antwort und Inspiration von Darmien Antwort .
Andere Version? Gehen Sie zur Liste .
Lesen Sie das Ende des Beitrags, wenn Sie in Schwierigkeiten sind und die Änderungen rückgängig machen möchten.


1. Ignorieren Sie die käuflichen Apps

Öffne ein Terminal ( Ctrl+ Alt+ T) und tippe:

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

Und drücken Sie die Eingabetaste. Sie werden aufgefordert, Ihr Passwort einzugeben.
Dann erscheint ein Editor. Suchen Sie die folgenden Zeilen (Hinweis: Ctrl+ Fkann helfen):

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

Fügen Sie unmittelbar nach diesen Zeilen Folgendes ein ( einschließlich der Leerzeichen! ):

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

Hinweis: Wenn Sie
Dinge aufbewahren möchten, die kein Geld kosten, aber "gekauft" werden müssen (z. B. Testversionen, Zeitschriften und anderes Eigentum), ersetzen Sie diese ("")durch ("0.00", "").

Speichern Sie die Datei ( Ctrl+ S), öffnen Sie das Software Center und ... voila!
Es gibt keine kommerziellen Programme!
Sie können den Editor und das Terminal jetzt schließen.

2. Entfernen Sie den Kanal "Zum Kauf" (optional)

Öffnen Sie ein Terminal und geben Sie Folgendes ein, um den Menüeintrag "Zum Kauf" ebenfalls zu entfernen:

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

Suchen Sie diese Zeilen:

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

Und deaktivieren Sie sie, indem Sie #vor jede Zeile ein setzen:

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

Speichern und genießen Sie ein Software-Center ohne Werbung!

 


Randnotizen: Die. Dateien. sind. verpackt.

Was heißt das, fragst du? Dies bedeutet, dass bei
jedem Upgrade Ihres Software Centers die Änderungen
zurückgesetzt werden und Sie diese Schritte erneut ausführen müssen.

Machen Sie die Änderungen rückgängig

Wenn Sie den ursprünglichen Zustand der Dateien wiederherstellen möchten,
öffnen Sie ein Terminal und geben Sie Folgendes ein:

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

Sie werden erneut zur Eingabe Ihres Passworts aufgefordert, diesmal auf dem Terminal.
Geben Sie es ein und drücken Sie die EINGABETASTE. Machen Sie sich keine Sorgen, wenn bei der Eingabe nichts angezeigt wird, sondern verbergen Sie Ihr Kennwort.
Das Terminal wird automatisch geschlossen, wenn Sie fertig sind.

Alba Mendez
quelle
2
Wie ich bereits anderen gesagt habe, ist es am besten, eine Sicherungskopie zu erstellen, bevor Sie etwas bearbeiten, das für ein Programm wichtig ist.
ζ--
1
@ObsessiveFOSS guter Punkt. Beachten Sie jedoch Folgendes: 1) Die Änderungen sind trivial und leicht rückgängig zu machen. Es ist unwahrscheinlich, dass Menschen jemals verloren gehen. : D 2) Diese Dateien sind gepackt. Wenn Sie also einen Fehler machen, können Sie das Paket einfach neu installieren .
Alba Mendez
@ObsessiveFOSS Ich habe Anweisungen zum Zurücksetzen hinzugefügt, nur für den Fall;)
Alba Mendez
12

Für 11.10 und früher

Sie können bearbeiten:

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

und die folgenden Zeilen auskommentieren (oder löschen):

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)

Natürlich sollten Sie bedenken, dass nachfolgende Updates software-centerdas Skript wahrscheinlich überschreiben werden ...

Schaut euch diesen Link für mehr Details an ;-)

Hinweis: Für 12.04 lautet der Dateiname /usr/share/software-center/softwarecenter/backend/channel_impl/aptchannels.py. Die gleichen Schritte gelten.

Pavlos G.
quelle
1
Möchten Sie eine Lösung für 12.04 finden? :)
Savvas Radevic
1
Wenn Sie das Software Center durch eine alte Version ersetzen , befolgen Sie diese Schritte.
Mateo
Am 12.04 verbergen diese Schritte den Kanal "Zum Kauf", aber nicht alle kommerziellen Einträge. Um sie auch zu verstecken, wäre so etwas wie Darmiens Lösung nötig. (Aber ich möchte einen Weg finden, um die Logik zu ändern, nicht die GUI ).
Alba Mendez
Ich habe es gefunden! ALLE werblichen Einträge von EVERYWHERE verstecken!
Alba Mendez
@medigeek schau auf meine Antwort . Wenn es nicht funktioniert, sag es mir. Ich habe es auf drei verschiedenen Computern getestet.
Alba Mendez
6

Ich habe einen Weg gefunden, kommerzielle Ergebnisse für 12.04 zu verbergen:

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

Nach den Zeilen:

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

Fügen Sie die folgende Zeile hinzu:

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

Es sollte nur das ändern, was angezeigt wird, aber ich habe es noch nicht viel getestet, also verwenden Sie es auf Ihr eigenes Risiko. Und genießen Sie ein werbefreies Software-Center.

Damien
quelle
Groß! Ich kann es kaum erwarten, es zu testen. :)
Alba Mendez
Habe es nicht getestet, werde es aber tun. Danke für den Versuch!
Savvas Radevic
6

Der Vollständigkeit halber ist hier die Lösung, die in 13.10 für mich funktioniert hat:

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

Finde das:

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

Und fügen Sie dies hinzu (stellen Sie sicher, dass Sie die richtige Einrückung von TABS haben (Python benötigt dies):

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

Übrigens war dies mein erster Pythonevar :-)

Lennart Rolland
quelle
+1 Kann momentan nicht verifizieren, wird aber ebenfalls zum Inhaltsverzeichnis hinzugefügt. Vielen Dank!
Alba Mendez
Funktioniert für 14.04, aber es wäre besser, wenn es über die Benutzeroberfläche ein- und ausgeschaltet werden könnte. Diese Lösung ist ziemlich dauerhaft. Nie wieder Apps zum Kauf sehen.
VlatkoB
3

Ich habe es versucht, es hat bei mir funktioniert: Es werden nur KOSTENLOSE (Preis nicht mehr als 0) Artikel angezeigt.

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

Finde das:

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

Fügen Sie dann den folgenden Code hinzu:

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

Für 12.10 und später

Abgeleitet von jmendeth Antwort .
Andere Version? Gehen Sie zur Liste .
Lesen Sie das Ende des Beitrags, wenn Sie in Schwierigkeiten sind und die Änderungen rückgängig machen möchten.

Schließen Sie das Software Center, falls es geöffnet ist.
Öffnen Sie nun ein Terminal ( Ctrl+ Alt+ T) und geben Sie Folgendes ein:

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

Und drücken Sie die Eingabetaste. Sie werden aufgefordert, Ihr Passwort einzugeben.
Dann erscheint ein Editor. Suchen Sie die folgenden Zeilen (Hinweis: Ctrl+ Fkann helfen):

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

Fügen Sie unmittelbar nach diesen Zeilen Folgendes ein ( einschließlich der Leerzeichen! ):

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

Speichern Sie die Datei ( Ctrl+ S) und schließen Sie den Editor, jedoch nicht das Terminal.
Geben Sie nun das Terminal ein:

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

Drücken Sie Enter. Ein Editor wird erneut angezeigt. Suchen Sie diese Zeilen:

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

Und deaktivieren Sie sie, indem Sie #vor jede Zeile ein setzen:

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

Speichern Sie die Datei, schließen Sie den Editor, aber nicht das Terminal.
Geben Sie im Terminal Folgendes ein:

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

Warten Sie etwas, das Terminal wird automatisch geschlossen, wenn Sie fertig sind ...
Dann öffnen Sie das Software Center und ... voila!
Es gibt keine kommerziellen Programme!

Randnotizen: Die. Dateien. sind. verpackt.

Was heißt das, fragst du? Das bedeutet, dass,
jedem Upgrade Ihres Software Centers die Änderungen
zurückgesetzt werden und Sie diese Schritte erneut ausführen müssen.

Machen Sie die Änderungen rückgängig

Wenn Sie den ursprünglichen Zustand der Dateien wiederherstellen möchten,
öffnen Sie ein Terminal und geben Sie Folgendes ein:

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

Wieder werden Sie aufgefordert, Ihr Passwort einzugeben.
Das Terminal wird automatisch geschlossen, wenn Sie fertig sind.

blödeer
quelle
+1 Danke für deinen Beitrag! Nun, das wird ziemlich umfangreich, also denke ich, ich werde ein Python-Skript erstellen, das je nach Version die entsprechende Korrektur vornimmt.
Alba Mendez
Werde meinen 12.10 testen, wenn alles fertig ist, werde ich deine Antwort oben verlinken und andere Modifikationen vornehmen.
Alba Mendez
Habe
@ Jmendeth Ich werde es lieben, Ihnen beim Schreiben dieses Drehbuchs
behilflich zu sein
Entschuldigen Sie die Verspätung. Leider funktioniert es auf meinem 64-Bit-Ubuntu 12.10 nicht. Ich werde sehen, ob ich etwas machen kann ...
Alba Mendez
-2

Sie können dies einfacher tun, indem Sie Ansicht -> Canonical Maintained Software anstelle von All Software auswählen. Dies hat den Vorteil, dass es nicht durch Software-Updates überschrieben wird.

Dies kann einige zusätzliche Elemente verbergen, aber zumindest werden die lästigen Magazine und die für den Verkauf bestimmte Software meiner Erfahrung nach beseitigt.

user1691562
quelle
2
Dann verstecken Sie 90% der gesamten Software und zeigen nur die Software (kommerziell oder nicht) an, die Canonical unterstützt. Ich möchte nur die proprietäre Software entfernen .
Alba Mendez