Bagaimana cara menghapus bagian "Untuk Pembelian" dari Pusat Perangkat Lunak?

35

Pusat Perangkat Lunak memiliki bagian dari program Untuk Pembelian — lihat tangkapan layar di bawah ini—,
yang mengingatkan saya setiap kali saya ingin menginstal sesuatu.

Apakah ada cara untuk menghapus atau menyembunyikan program ini dari Pusat Perangkat Lunak?

Tautan ke jawaban:

Untuk 13.10 dan lebih tinggi
Untuk 13.04
Untuk 12.10
Untuk 12.04
Untuk 11.10 dan lebih rendah
Silakan tinggalkan komentar atau kirim email ke [email protected]
jika itu tidak bekerja untuk Anda atau Anda mengalami masalah!

Bagian 'Untuk pembelian' dari Pusat Perangkat Lunak Ubuntu.

Alba Mendez
sumber
apa artinya 13.10 dan lebih tinggi?
Avinash Raj
@AvinashRaj Itu untuk versi terbaru Ubuntu seperti sekarang 13.10, dan segera 14.04 percaya alpha / beta 14.04 juga segera keluar.
Alvar

Jawaban:

17

Untuk 12,04

Berasal dari jawaban Pavlos G. dan inspirasi dari jawaban Darmien .
Versi yang berbeda? Buka daftar .
Lihat akhir posting jika Anda dalam masalah dan ingin mengembalikan perubahan.


1. Abaikan aplikasi yang dapat dibeli

Buka terminal ( Ctrl+ Alt+ T) dan ketik:

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

Dan tekan Enter. Anda akan dimintai kata sandi.
Maka editor akan muncul. Temukan baris berikut (petunjuk: Ctrl+ Fdapat membantu):

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

Segera setelah baris tersebut, rekatkan yang berikut ( termasuk spasi! ):

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

Catatan: jika Anda ingin menyimpan barang-barang yang tidak memerlukan biaya, tetapi harus "dibeli"
(seperti uji coba, majalah, dan barang kepemilikan lainnya), ganti ("")dengan ("0.00", "").

Simpan file ( Ctrl+ S), buka Pusat Perangkat Lunak dan ... voila!
Tidak ada program komersial!
Anda dapat menutup editor dan terminal sekarang.

2. Hapus saluran "Untuk pembelian" (opsional)

Untuk juga menghapus item "Untuk pembelian" di menu, buka terminal dan ketik:

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

Temukan baris ini:

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

Dan nonaktifkan mereka dengan meletakkan tanda #di depan setiap baris:

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

Simpan dan nikmati pusat perangkat lunak tanpa iklan!

 


Catatan: The. file. adalah. dikemas.

Apa artinya ini, Anda bertanya? Ini berarti bahwa,
setiap kali Anda meningkatkan Pusat Perangkat Lunak Anda, perubahan
akan dikembalikan dan Anda harus melakukan langkah ini lagi.

Batalkan modifikasi

Jika Anda ingin mengembalikan keadaan asli file,
buka terminal dan ketik:

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

Sekali lagi, Anda akan dimintai kata sandi, kali ini di terminal.
Ketik dan tekan ENTER. Jangan khawatir jika tidak ada yang muncul saat Anda mengetik, itu untuk menyembunyikan kata sandi Anda.
Terminal akan ditutup secara otomatis ketika selesai.

Alba Mendez
sumber
2
Seperti yang telah saya katakan kepada orang lain, yang terbaik adalah membuat cadangan sebelum mengedit sesuatu yang penting untuk suatu program.
ζ--
1
@ObsessiveFOSS poin bagus. Namun perlu diingat bahwa: 1) Perubahan itu sepele dan mudah dibatalkan. Tidak mungkin orang akan tersesat. : D 2) File-file ini dikemas, jadi jika Anda melakukan kesalahan, Anda dapat menginstal ulang paket.
Alba Mendez
@ObsessiveFOSS Saya telah menambahkan instruksi untuk kembali, untuk berjaga-jaga;)
Alba Mendez
12

Untuk 11.10 dan sebelumnya

Anda dapat mengedit:

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

dan komentar (atau hapus) baris berikut:

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)

Tentu saja, Anda harus ingat bahwa pembaruan yang diakibatkannya software-centermungkin akan menimpa skrip ...

Lihat tautan ini untuk detail lebih lanjut ;-)

Catatan: untuk 12,04 nama file adalah /usr/share/software-center/softwarecenter/backend/channel_impl/aptchannels.py. Langkah yang sama berlaku.

Pavlos G.
sumber
1
Mau mencari solusi untuk 12,04? :)
Savvas Radevic
1
Jika Anda mengganti pusat perangkat lunak dengan versi lama askubuntu.com/questions/95497/… maka Anda dapat mengikuti langkah-langkah ini.
Mateo
Pada 12,04, langkah-langkah ini akan menyembunyikan saluran "Untuk pembelian" tetapi tidak semua entri komersial. Untuk menyembunyikan mereka juga, sesuatu seperti solusi Darmien akan dibutuhkan. (Tapi saya ingin menemukan cara untuk mengubah logika bukan GUI ).
Alba Mendez
Aku menemukannya! Sembunyikan SEMUA entri komersial dari MANA SAJA!
Alba Mendez
@medigeek lihat jawaban saya . Jika tidak berhasil, katakan padaku. Saya mengujinya di tiga komputer yang berbeda.
Alba Mendez
6

Saya menemukan cara untuk menyembunyikan hasil komersial untuk 12,04:

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

Setelah garis:

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

Tambahkan baris berikut:

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

Seharusnya hanya mengubah apa yang ditampilkan, tetapi saya belum mengujinya, jadi gunakan risiko Anda sendiri. Dan nikmati pusat perangkat lunak bebas iklan.

Damien
sumber
Besar! Tidak sabar untuk mengujinya. :)
Alba Mendez
Belum mengujinya, tetapi akan dilakukan. Terima kasih telah mencoba!
Savvas Radevic
6

Untuk kelengkapan, berikut adalah solusi yang bekerja untuk saya di 13.10:

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

Temukan ini:

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

Dan tambahkan ini (pastikan Anda memiliki lekukan TABS yang tepat (python membutuhkan ini):

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

BTW ini adalah python evar pertamaku :-)

Lennart Rolland
sumber
+1 Tidak dapat memverifikasi sekarang, tetapi ditambahkan ke TOC juga. Terima kasih!
Alba Mendez
Bekerja untuk 14,04, tetapi akan lebih baik jika bisa dinyalakan / dimatikan dari UI. Solusi ini agak permanen. Tidak pernah melihat aplikasi untuk dibeli lagi.
VlatkoB
3

Saya mencoba ini itu berhasil untuk saya: hanya GRATIS (harga tidak lebih dari 0) item yang ditampilkan.

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

Temukan ini:

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

Kemudian tambahkan kode berikut:

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

Untuk 12.10 dan yang lebih baru

Berasal dari jmendeth jawaban .
Versi yang berbeda? Buka daftar .
Lihat akhir posting jika Anda dalam masalah dan ingin mengembalikan perubahan.

Tutup Pusat Perangkat Lunak jika terbuka.
Sekarang buka terminal ( Ctrl+ Alt+ T) dan ketik:

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

Dan tekan Enter. Anda akan dimintai kata sandi.
Maka editor akan muncul. Temukan baris berikut (petunjuk: Ctrl+ Fdapat membantu):

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

Segera setelah baris tersebut, rekatkan yang berikut ( termasuk spasi! ):

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

Simpan file ( Ctrl+ S) dan tutup editor, tetapi bukan terminal.
Sekarang ketikkan terminal:

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

Tekan enter. Editor akan muncul lagi. Temukan baris ini:

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

Dan nonaktifkan mereka dengan meletakkan tanda #di depan setiap baris:

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

Simpan file, tutup editor tetapi bukan terminal.
Di terminal, ketik:

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

Tunggu sebentar, terminal akan secara otomatis menutup ketika selesai ...
Kemudian buka Pusat Perangkat Lunak dan ... voila!
Tidak ada program komersial!

Catatan: The. file. adalah. dikemas.

Apa artinya ini, Anda bertanya? Ini berarti bahwa,
setiap kali Anda meningkatkan Pusat Perangkat Lunak Anda, perubahannya
akan dikembalikan dan Anda harus melakukan langkah ini lagi.

Batalkan modifikasi

Jika Anda ingin mengembalikan keadaan asli file,
buka terminal dan ketik:

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

Sekali lagi, Anda akan dimintai kata sandi.
Terminal akan ditutup secara otomatis ketika selesai.

blvdeer
sumber
+1 Terima kasih telah berkontribusi! Nah, ini semakin extense, jadi saya pikir saya akan membuat skrip Python yang membuat perbaikan yang tepat tergantung pada versinya.
Alba Mendez
Akan saya uji pada 12,10 saya, jika semuanya sudah siap saya akan menghubungkan jawaban Anda di atas dan membuat modifikasi lainnya.
Alba Mendez
Baru saja melakukannya pada instalasi baru saya Ubuntu 12.10
blvdeer
@jmendeth Saya akan senang membantu Anda menulis naskah itu
blvdeer
Maaf atas keterlambatannya. Sayangnya, itu tidak berfungsi pada Ubuntu 12.10 64-bit saya. Saya akan melihat apakah saya dapat membuat sesuatu ...
Alba Mendez
-2

Anda dapat melakukan ini lebih sederhana dengan memilih View -> Canonical Maintained Software, bukan All Software. Ini bermanfaat karena tidak ditimpa oleh pembaruan perangkat lunak.

Ini mungkin menyembunyikan beberapa item tambahan, tetapi setidaknya itu menyingkirkan majalah yang mengganggu dan untuk dijual perangkat lunak dalam pengalaman saya.

pengguna1691562
sumber
2
Kemudian Anda menyembunyikan 90% dari semua perangkat lunak, hanya menunjukkan perangkat lunak (komersial atau tidak) yang didukung Canonical. Apa yang ingin saya lakukan adalah menghapus perangkat lunak propietary saja .
Alba Mendez