Jak usunąć sekcję „Do zakupu” z Centrum oprogramowania?


35

Centrum oprogramowania ma sekcję Programy do zakupu - patrz zrzut ekranu poniżej -
co mnie denerwuje za każdym razem, gdy chcę coś zainstalować.

Czy istnieje sposób na usunięcie lub ukrycie tych programów w Centrum oprogramowania?

Linki do odpowiedzi:

Dla wersji 13.10 i wyższej
Dla wersji 13.04
Dla wersji 12.10
Dla wersji 12.04
Dla wersji 11.10 i niższych
Zostaw komentarz lub wyślij wiadomość na adres, jmendeth@gmail.com
jeśli nie działa dla Ciebie lub masz problemy!

Sekcja „Do zakupu” w Centrum oprogramowania Ubuntu.


co oznacza 13.10 i wyższe?
Avinash Raj

@AvinashRaj To dotyczy najnowszej wersji Ubuntu, takiej jak teraz 13.10, a wkrótce 14.04 uważa, że ​​alfa / beta 14.04 wkrótce się pojawi.
Alvar

Odpowiedzi:


17

12.04

Pochodzi z odpowiedzi Pavlos G. i inspiracji z odpowiedzi Darmien .
Inna wersja? Przejdź do listy .
Jeśli masz kłopoty i chcesz cofnąć zmiany, zobacz koniec wpisu.


1. Zignoruj ​​aplikacje do kupienia

Otwórz terminal ( Ctrl+ Alt+ T) i wpisz:

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

I naciśnij Enter. Zostaniesz poproszony o podanie hasła.
Następnie pojawi się edytor. Znajdź następujące linie (wskazówka: Ctrl+ Fmoże pomóc):

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

Natychmiast po tych wierszach wklej następujące elementy (w tym spacje! ):

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

Uwaga: jeśli chcesz zachować materiał, który nie kosztuje pieniądze, ale musi być „zakupione”
(jak badaniach, czasopism i innych propietary rzeczy), wymienić ("")z ("0.00", "").

Zapisz plik ( Ctrl+ S), otwórz Centrum oprogramowania i… voila!
Brak programów komercyjnych!
Możesz teraz zamknąć edytor i terminal.

2. Usuń kanał „Do zakupu” (opcjonalnie)

Aby również usunąć pozycję „Do zakupu” z menu, otwórz terminal i wpisz:

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

Znajdź te linie:

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

I wyłącz je, umieszczając #przed każdym wierszem:

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

Zapisz i ciesz się centrum oprogramowania bez reklam!

 


Dodatkowe uwagi:. pliki. są. zapakowane.

Co to znaczy, pytasz? Oznacza to, że
za każdym razem , gdy uaktualniasz Centrum oprogramowania, zmiany
zostaną przywrócone i będziesz musiał wykonać te czynności ponownie.

Cofnij zmiany

Jeśli chcesz przywrócić pierwotny stan plików,
otwórz terminal i wpisz:

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

Ponownie zostaniesz poproszony o podanie hasła, tym razem na terminalu.
Wpisz go i naciśnij ENTER. Nie martw się, jeśli nic nie pojawi się podczas pisania, ukryje twoje hasło.
Terminal zakończy się automatycznie po zakończeniu.


2
Jak powiedziałem innym, najlepiej wykonać kopię zapasową przed edycją czegoś krytycznego dla programu.
ζ--

1
@ObsessiveFOSS dobry punkt. Pamiętaj jednak, że: 1) Zmiany są banalne i łatwe do cofnięcia. Jest mało prawdopodobne, że ludzie kiedykolwiek się zgubią. : D 2) Te pliki są spakowane, więc jeśli popełnisz błąd, możesz po prostu ponownie zainstalować pakiet.
Alba Mendez,

@ObsessiveFOSS Dodałem instrukcje cofania, na wszelki wypadek;)
Alba Mendez 1'12

12

Dla wersji 11.10 i wcześniejszych

Możesz edytować:

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

i skomentuj (lub usuń) następujące wiersze:

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)

Oczywiście należy pamiętać, że konsekwentne aktualizacje software-centerprawdopodobnie zastąpią skrypt ...

Sprawdź ten link, aby uzyskać więcej informacji ;-)

Uwaga: nazwa pliku to 12.04 /usr/share/software-center/softwarecenter/backend/channel_impl/aptchannels.py. Obowiązują te same kroki.


1
Chcesz znaleźć rozwiązanie dla 12.04? :)
Savvas Radevic,

1
Jeśli zastąpisz centrum oprogramowania starą wersją askubuntu.com/questions/95497/ ..., możesz wykonać następujące kroki.
Mateo

W dniu 12.04 kroki te ukryją kanał „Do zakupu”, ale nie wszystkie wpisy komercyjne. Aby je również ukryć, potrzebne byłoby coś takiego jak rozwiązanie Darmiena. (Ale chcę znaleźć sposób na zmianę logiki, a nie GUI ).
Alba Mendez,

Znalazłem to! Ukryj WSZYSTKIE wpisy commertial z KAŻDEGO!
Alba Mendez,

@medigeek spójrz na moją odpowiedź . Jeśli to nie działa, powiedz mi. Testowałem to na trzech różnych komputerach.
Alba Mendez,

6

Znalazłem sposób na ukrycie wyników komercyjnych dla 12.04:

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

Po wierszach:

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

Dodaj następujący wiersz:

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

Powinno to zmienić tylko to, co się wyświetla, ale jeszcze go nie testowałem, więc używaj na własne ryzyko. I ciesz się centrum oprogramowania bez reklam.


Świetny! Nie mogę się doczekać, aby to przetestować. :)
Alba Mendez

Nie przetestowałem tego, ale zrobię to. Dziękujemy za próbę!
Savvas Radevic

6

Dla kompletności, oto rozwiązanie, które działało dla mnie w 13.10:

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

Znajdź to:

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

I dodaj to (upewnij się, że masz właściwe wcięcie TABS (python tego wymaga):

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

BTW to był mój pierwszy evar w Pythonie :-)


+1 Nie można teraz zweryfikować, ale dodano również do spisu treści. Dzięki!
Alba Mendez

Działa dla 14.04, ale byłoby lepiej, gdyby można go było włączyć / wyłączyć z interfejsu użytkownika. To rozwiązanie jest raczej trwałe. Nigdy więcej nie zobacz aplikacji do zakupu.
VlatkoB,

3

Próbowałem tego, to zadziałało dla mnie: wyświetlane są tylko ZA DARMO (cena nie więcej niż 0) przedmiotów.

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

Znajdź to:

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

Następnie dodaj następujący kod:

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

2

Do wersji 12.10 i nowszych

Pochodzi z odpowiedzi Jmendetha .
Inna wersja? Przejdź do listy .
Jeśli masz kłopoty i chcesz cofnąć zmiany, zobacz koniec wpisu.

Zamknij Centrum oprogramowania, jeśli jest otwarte.
Teraz otwórz terminal ( Ctrl+ Alt+ T) i wpisz:

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

I naciśnij Enter. Zostaniesz poproszony o podanie hasła.
Następnie pojawi się edytor. Znajdź następujące linie (wskazówka: Ctrl+ Fmoże pomóc):

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

Natychmiast po tych wierszach wklej następujące elementy (w tym spacje! ):

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

Zapisz plik ( Ctrl+ S) i zamknij edytor, ale nie terminal.
Teraz wpisz terminal:

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

Naciśnij enter. Edytor pojawi się ponownie. Znajdź te linie:

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

I wyłącz je, umieszczając #przed każdym wierszem:

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

Zapisz plik, zamknij edytor, ale nie terminal.
W terminalu wpisz:

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

Poczekaj chwilę, terminal skończy się automatycznie po zakończeniu ...
Następnie otwórz Centrum oprogramowania i… voila!
Brak programów komercyjnych!

Dodatkowe uwagi:. pliki. są. zapakowane.

Co to znaczy, pytasz? Oznacza to, że
za każdym razem , gdy uaktualniasz Centrum oprogramowania, zmiany
zostaną przywrócone i będziesz musiał wykonać te czynności ponownie.

Cofnij zmiany

Jeśli chcesz przywrócić pierwotny stan plików,
otwórz terminal i wpisz:

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

Ponownie pojawi się monit o podanie hasła.
Terminal zakończy się automatycznie po zakończeniu.


+1 Dziękujemy za pomoc! Cóż, robi się to dość rozbudowane, więc myślę, że stworzę skrypt w języku Python, który odpowiednio naprawi w zależności od wersji.
Alba Mendez,

Testuję na moim 12.10, jeśli wszystko będzie gotowe, połączę twoją odpowiedź na górze i dokonam innych modyfikacji.
Alba Mendez,

Właśnie to zrobiłem na mojej nowej instalacji Ubuntu 12.10
blvdeer

@jmendeth Z przyjemnością pomogę ci napisać ten skrypt
blvdeer

Przepraszam za opóźnienie. Niestety nie działa na moim 64-bitowym Ubuntu 12.10. Zobaczę, czy uda mi się coś zrobić ...
Alba Mendez,

-2

Możesz to zrobić po prostu wybierając Widok -> Canonical Maintained Software zamiast All Software. Ma to tę zaletę, że nie jest zastępowane przez aktualizacje oprogramowania.

Może to ukrywać niektóre dodatkowe przedmioty, ale przynajmniej pozbywam się irytujących magazynów i oprogramowania na sprzedaż z mojego doświadczenia.


2
Następnie ukrywasz 90% całego oprogramowania, pokazując tylko oprogramowanie (komercyjne lub nie) obsługiwane przez Canonical. Co chcę zrobić, to usunąć propietary oprogramowanie tylko .
Alba Mendez,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.