Come rimuovere la sezione "Per l'acquisto" dal Software Center?


35

Il Software Center ha una sezione di programmi For Purchase - vedi screenshot qui sotto -,
che mi annianca ogni volta che voglio installare qualcosa.

Esiste un modo per rimuovere o nascondere questi programmi dal Software Center?

Link alle risposte:

Per il 13.10 e successivi
Per il 13.04
Per il 12.10
Per il 12.04
Per l' 11.10 e precedenti
Si prega di lasciare un commento o inviare una e-mail jmendeth@gmail.com
se non funziona per voi o avete problemi!

La sezione "Per l'acquisto" di Ubuntu Software Center.


cosa significa 13.10 e versioni successive?
Avinash Raj,

@AvinashRaj Questo è per la versione più recente di Ubuntu come adesso il 13.10, e presto il 14.04 crede che anche l'alfa / beta del 14.04 sarà presto disponibile.
Alvar,

Risposte:


17

Per 12.04

Derivato dalla risposta di Pavlos G. e ispirato dalla risposta di Darmien .
Versione diversa? Vai all'elenco .
Vedere la fine del post se si è in difficoltà e si desidera ripristinare le modifiche.


1. Ignora le app acquistabili

Apri un terminale ( Ctrl+ Alt+ T) e digita:

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

E premi Invio. Ti verrà richiesta la password.
Quindi verrà visualizzato un editor. Individua le seguenti righe (suggerimento: Ctrl+ Fpuò aiutare):

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

Immediatamente dopo quelle righe, incolla quanto segue ( compresi gli spazi! ):

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

Nota: se si desidera mantenere roba che non costa denaro, ma deve essere "acquistata"
(come prove, riviste e altre cose propietarie), sostituirla ("")con ("0.00", "").

Salvare il file ( Ctrl+ S), aprire il Software Center e ... voilà!
Non ci sono programmi commerciali!
Ora puoi chiudere l'editor e il terminale.

2. Rimuovere il canale "Per l'acquisto" (opzionale)

Per rimuovere anche l'elemento "Per acquisto" nel menu, apri un terminale e digita:

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

Individua queste righe:

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

E disabilitali mettendo un #davanti a ogni riga:

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

Salva e goditi un centro software senza pubblicità!

 


Note a margine: il. File. siamo. confezionato.

Cosa significa questo, chiedi? Ciò significa che,
ogni volta che aggiorni il tuo Software Center, le modifiche
verranno ripristinate e dovrai ripetere questa procedura.

Annulla le modifiche

Se si desidera ripristinare lo stato originale dei file,
aprire un terminale e digitare:

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

Ancora una volta, ti verrà richiesta la password, questa volta sul terminale.
Digita e premi INVIO. Non preoccuparti se durante la digitazione non appare nulla, è per nascondere la password.
Il terminale si chiuderà automaticamente al termine.


2
Come ho detto ad altri, è meglio fare un backup prima di modificare qualcosa di critico per un programma.
ζ--

1
@ObsessiveFOSS buon punto. Ma tieni presente che: 1) Le modifiche sono banali e facili da annullare. È improbabile che le persone si perderanno mai. : D 2) Questi file sono compressi, quindi se commetti un errore puoi semplicemente reinstallare il pacchetto.
Alba Mendez,

@ObsessiveFOSS Ho aggiunto le istruzioni per ripristinare, per ogni evenienza;)
Alba Mendez,

12

Per l'11.10 e precedenti

Puoi modificare:

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

e commentare (o eliminare) le seguenti righe:

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)

Naturalmente, dovresti tenere presente che i conseguenti aggiornamenti software-centerprobabilmente sovrascriveranno lo script ...

Dai un'occhiata a questo link per maggiori dettagli ;-)

Nota: per 12.04 il nome file è /usr/share/software-center/softwarecenter/backend/channel_impl/aptchannels.py. Si applicano gli stessi passaggi.


1
Vuoi trovare una soluzione per 12.04? :)
Savvas Radevic

1
Se sostituisci il software center con una vecchia versione askubuntu.com/questions/95497/… , puoi seguire questi passaggi.
Mateo,

Il 12.04, questi passaggi nasconderanno il canale "Per l'acquisto" ma non tutte le voci commerciali. Per nasconderli, sarebbe necessaria una soluzione come quella di Darmien. (Ma voglio trovare un modo per alterare la logica e non la GUI ).
Alba Mendez,

L'ho trovato! Nascondi TUTTE le voci commerciali da OVUNQUE!
Alba Mendez,

@medigeek guarda la mia risposta . Se non funziona, dimmelo. L'ho provato su tre computer diversi.
Alba Mendez,

6

Ho trovato un modo per nascondere i risultati commerciali per 12.04:

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

Dopo le righe:

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

Aggiungi la seguente riga:

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

Dovrebbe solo cambiare ciò che viene visualizzato, ma non l'ho ancora testato molto, quindi usalo a tuo rischio. E goditi un centro software senza pubblicità.


Grande! Non vedo l'ora di provarlo. :)
Alba Mendez,

Non l'ho provato, ma lo farà. Grazie per averci provato!
Savvas Radevic,

6

Per completezza, ecco la soluzione che ha funzionato per me in 13.10:

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

Trova questo:

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

E aggiungi questo (assicurati di avere il rientro corretto di TABS (python lo richiede):

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

A proposito, questo è stato il mio primo Evar Python :-)


+1 Impossibile verificare in questo momento, ma aggiunto anche al sommario. Grazie!
Alba Mendez,

Funziona per 14.04, ma sarebbe meglio se potesse essere attivato / disattivato dall'interfaccia utente. Questa soluzione è piuttosto permanente. Non rivedere mai più app per l'acquisto.
VlatkoB,

3

Ho provato questo ha funzionato per me: vengono visualizzati solo gli articoli GRATUITI (prezzo non superiore a 0) .

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

Trova questo:

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

Quindi aggiungere il seguente codice:

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

2

Per il 12.10 e successivi

Derivato dalla risposta di Jmendeth .
Versione diversa? Vai all'elenco .
Vedere la fine del post se si è in difficoltà e si desidera ripristinare le modifiche.

Chiudere il Software Center se è aperto.
Ora apri un terminale ( Ctrl+ Alt+ T) e digita:

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

E premi Invio. Ti verrà richiesta la password.
Quindi verrà visualizzato un editor. Individua le seguenti righe (suggerimento: Ctrl+ Fpuò aiutare):

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

Immediatamente dopo quelle righe, incolla quanto segue ( compresi gli spazi! ):

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

Salvare il file ( Ctrl+ S) e chiudere l'editor, ma non il terminale.
Ora digita il terminale:

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

Premere Invio. Apparirà di nuovo un editor. Individua queste righe:

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

E disabilitali mettendo un #davanti a ogni riga:

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

Salvare il file, chiudere l'editor ma non il terminale.
Nel terminale, digitare:

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

Aspetta un po ', il terminale si chiuderà automaticamente al termine ...
Quindi apri il Software Center e ... voilà!
Non ci sono programmi commerciali!

Note a margine: il. File. siamo. confezionato.

Cosa significa questo, chiedi? Ciò significa che,
ogni volta che aggiorni il tuo Software Center, le modifiche
verranno ripristinate e dovrai ripetere questa procedura.

Annulla le modifiche

Se si desidera ripristinare lo stato originale dei file,
aprire un terminale e digitare:

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

Ancora una volta, ti verrà richiesta la password.
Il terminale si chiuderà automaticamente al termine.


+1 Grazie per aver contribuito! Bene, questo sta diventando piuttosto esteso, quindi penso che realizzerò uno script Python che rende la correzione appropriata a seconda della versione.
Alba Mendez,

Proverò sul mio 12.10, se tutto è pronto collegherò la tua risposta in alto e apporterò qualsiasi altra modifica.
Alba Mendez,

L'ho appena fatto sulla mia nuova installazione di Ubuntu 12.10
blvdeer il

@jmendeth Adorerò aiutarti a scrivere quella sceneggiatura
blvdeer,

Scusa per il ritardo. Sfortunatamente, non funziona sul mio Ubuntu 12.10 a 64 bit. Vedrò se riesco a fare qualcosa ...
Alba Mendez,

-2

Puoi farlo in modo più semplice selezionando Visualizza -> Canonical Maintained Software invece di All Software. Questo ha il vantaggio di non essere sovrascritto dagli aggiornamenti del software.

Questo può nascondere alcuni elementi aggiuntivi, ma almeno elimina le fastidiose riviste e il software in vendita nella mia esperienza.


2
Quindi nascondi il 90% di tutto il software, mostrando solo il software (commerciale o meno) supportato da Canonical. Quello che voglio fare è rimuovere solo il software propietario .
Alba Mendez,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.