¿Cómo eliminar la sección "Para la compra" del Centro de software?


35

El Centro de software tiene una sección de programas For Purchase ( ver captura de pantalla a continuación),
que me informa cada vez que quiero instalar algo.

¿Hay alguna forma de eliminar u ocultar estos programas del Centro de software?

Enlaces a respuestas:

Para 13.10 y superior
Para 13.04
Para 12.10
Para 12.04
Para 11.10 y inferior → ¡
Por favor, deje un comentario o envíe un correo a jmendeth@gmail.com
si no funciona para usted o si tiene problemas!

La sección 'Para comprar' del Centro de software de Ubuntu.


¿Qué significa 13.10 y superior?
Avinash Raj

@AvinashRaj Eso es para la versión más reciente de Ubuntu como ahora 13.10, y pronto 14.04 cree que el alfa / beta de 14.04 también saldrá pronto.
Alvar

Respuestas:


17

Para 12.04

Derivado de la respuesta de Pavlos G. e inspiración de la respuesta de Darmien .
Versión diferente? Ve a la lista .
Vea el final de la publicación si tiene problemas y desea revertir los cambios.


1. Ignora las aplicaciones que puedes comprar

Abra una terminal ( Ctrl+ Alt+ T) y escriba:

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

Y presiona Enter. Se le pedirá su contraseña.
Entonces aparecerá un editor. Localice las siguientes líneas (sugerencia: Ctrl+ Fpuede ayudar):

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

Inmediatamente después de esas líneas, pegue lo siguiente (¡ incluidos los espacios! ):

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

Nota: si desea conservar cosas que no cuestan dinero, pero que deben "comprarse"
(como pruebas, revistas y otras cosas de propiedad), reemplácelas ("")por ("0.00", "").

Guarde el archivo ( Ctrl+ S), abra el Centro de software y ... ¡voilá!
¡No hay programas comerciales!
Puede cerrar el editor y la terminal ahora.

2. Elimine el canal "Para la compra" (opcional)

Para eliminar también ese elemento "Para la compra" en el menú, abra una terminal y escriba:

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

Localiza estas líneas:

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

Y deshabilítelos poniendo un #frente a cada línea:

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

¡Ahorre y disfrute de un centro de software sin anuncios!

 


Notas al margen: El. archivos. son. empaquetado

¿Qué quiere decir esto que usted pide? Esto significa que,
cada vez que actualice su Centro de software, los cambios
se revertirán y deberá realizar estos pasos nuevamente.

Deshacer las modificaciones

Si desea restaurar el estado original de los archivos,
abra una terminal y escriba:

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

Nuevamente, se le pedirá su contraseña, esta vez en la terminal.
Escríbelo y presiona ENTER. No se preocupe si no aparece nada cuando escribe, es para ocultar su contraseña.
El terminal se cerrará automáticamente cuando termine.


2
Como les he dicho a los demás, es mejor hacer una copia de seguridad antes de editar cualquier cosa crítica para un programa.
ζ--

1
@ObsessiveFOSS buen punto. Pero tenga en cuenta que: 1) Los cambios son triviales y fáciles de deshacer. Es poco probable que las personas se pierdan alguna vez. : D 2) Estos archivos están empaquetados, por lo que si comete un error, simplemente puede reinstalar el paquete.
Alba Méndez

@ObsessiveFOSS He agregado instrucciones para revertir, por si acaso;)
Alba Mendez

12

Para 11.10 y anteriores

Puedes editar:

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

y comentar (o eliminar) las siguientes líneas:

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)

Por supuesto, debe tener en cuenta que las actualizaciones posteriores a software-center posteriores probablemente sobrescribirán el script ...

Mira esto enlace para más detalles ;-)

Nota: para 12.04 el nombre del archivo es /usr/share/software-center/softwarecenter/backend/channel_impl/aptchannels.py. Se aplican los mismos pasos.


1
¿Le gustaría encontrar una solución para 12.04? :)
Savvas Radevic

1
Si reemplaza el centro de software con una versión anterior askubuntu.com/questions/95497/…, entonces puede seguir estos pasos.
Mateo

El 12.04, estos pasos ocultarán el canal "Para la compra" pero no todas las entradas comerciales. Para ocultarlos también, se necesitaría algo como la solución de Darmien. (Pero quiero encontrar una manera de alterar la lógica, no la GUI ).
Alba Mendez

¡Lo encontré! ¡Esconde TODAS las entradas comerciales de TODAS PARTES!
Alba Mendez

@medigeek mira mi respuesta . Si no funciona, dímelo. Lo probé en tres computadoras diferentes.
Alba Mendez

6

Encontré una forma de ocultar resultados comerciales para 12.04:

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

Después de las líneas:

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

Agregue la siguiente línea:

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

Solo debería cambiar lo que se muestra, pero aún no lo probé mucho, así que úselo bajo su propio riesgo. Y disfrute de un centro de software sin publicidad.


¡Excelente! No puedo esperar para probarlo. :)
Alba Mendez

No lo he probado, pero lo haré. ¡Gracias por intentarlo!
Savvas Radevic,

6

Para completar, aquí está la solución que funcionó para mí en 13.10:

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

Encuentra esto:

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

Y agregue esto (asegúrese de tener la sangría correcta de TABS (python requiere esto):

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

Por cierto, este fue mi primer Python Evar :-)


+1 No se puede verificar en este momento, pero también se agregó a la tabla de contenido. ¡Gracias!
Alba Mendez

Funciona para 14.04, pero sería mejor si pudiera activarse / desactivarse desde la interfaz de usuario. Esta solución es bastante permanente. Nunca vuelva a ver aplicaciones para comprar.
VlatkoB

3

Probé esto, funcionó para mí: solo se muestran elementos GRATUITOS (precio no superior a 0) .

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

Encuentra esto:

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

Luego agregue el siguiente código:

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

2

Para 12.10 y posterior

Derivado de la respuesta jmendeth .
Versión diferente? Ve a la lista .
Vea el final de la publicación si tiene problemas y desea revertir los cambios.

Cierre el Centro de software si está abierto.
Ahora abra una terminal ( Ctrl+ Alt+ T) y escriba:

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

Y presiona Enter. Se le pedirá su contraseña.
Entonces aparecerá un editor. Localice las siguientes líneas (sugerencia: Ctrl+ Fpuede ayudar):

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

Inmediatamente después de esas líneas, pegue lo siguiente (¡ incluidos los espacios! ):

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

Guarde el archivo ( Ctrl+ S) y cierre el editor, pero no el terminal.
Ahora escriba en la terminal:

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

Presione ENTER. Un editor aparecerá de nuevo. Localiza estas líneas:

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

Y deshabilítelos poniendo un #frente a cada línea:

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

Guarde el archivo, cierre el editor pero no el terminal.
En la terminal, escriba:

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

Espere un poco, el terminal se cerrará automáticamente cuando termine ...
Luego abra el Centro de software y ... ¡voilá!
¡No hay programas comerciales!

Notas al margen: El. archivos. son. empaquetado

¿Qué quiere decir esto que usted pide? Esto significa que,
cada vez que actualice su Centro de software, los cambios
se revertirán y deberá realizar estos pasos nuevamente.

Deshacer las modificaciones

Si desea restaurar el estado original de los archivos,
abra una terminal y escriba:

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

Nuevamente, se le pedirá su contraseña.
El terminal se cerrará automáticamente cuando termine.


+1 ¡ Gracias por contribuir! Bueno, esto se está volviendo bastante extenso, así que creo que voy a hacer un script de Python que haga la solución adecuada según la versión.
Alba Mendez

Voy a probar mi 12.10, si todo está listo, vincularé su respuesta en la parte superior y haré cualquier otra modificación.
Alba Mendez

Lo hice en mi nueva instalación de Ubuntu 12.10
blvdeer

@jmendeth Me encantaría ayudarte a escribir ese guión
blvdeer

Disculpe la demora. Desafortunadamente, no funciona en mi Ubuntu 12.10 de 64 bits. Veré si puedo hacer algo ...
Alba Mendez

-2

Puede hacerlo más simplemente seleccionando Ver -> Software actualizado canónico en lugar de Todo el software. Esto tiene el beneficio de no ser sobrescrito por las actualizaciones de software.

Esto puede ocultar algunos elementos adicionales, pero al menos se deshace de las molestas revistas y software de venta en mi experiencia.


2
Luego, está ocultando un 90% de todo el software, mostrando solo el software (comercial o no) que admite Canonical. Lo que quiero hacer es eliminar solo el software propietario .
Alba Mendez
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.