Làm cách nào để xóa phần Phần mềm mua hàng từ Trung tâm phần mềm?


35

Trung tâm phần mềm có một phần của các chương trình Mua hàng Ảnh chụp màn hình bên dưới của
Wap , đó là thông báo cho tôi mỗi khi tôi muốn cài đặt một cái gì đó.

Có cách nào để xóa hoặc ẩn các chương trình này khỏi Trung tâm phần mềm không?

Liên kết đến câu trả lời:

Cho 13.10 trở lên
Cho 13.04
Cho 12.10
Cho 12.04
Cho 11.10 và thấp hơn
Vui lòng để lại nhận xét hoặc gửi thư đến jmendeth@gmail.com
nếu nó không hoạt động cho bạn hoặc bạn gặp sự cố!

Phần 'Để mua' của Trung tâm phần mềm Ubuntu.


13.10 và phương tiện cao hơn là gì?
Avinash Raj

@AvinashRaj Đó là phiên bản Ubuntu mới nhất như bây giờ 13.10 và ngay sau đó 14.04 tin rằng bản alpha / beta của 14.04 cũng sẽ sớm ra mắt.
Alvar

Câu trả lời:


17

Cho 12.04

Bắt nguồn từ câu trả lời của Pavlos G. và cảm hứng từ câu trả lời của Darmien .
Phiên bản khác nhau? Tới danh sách .
Xem phần cuối của bài đăng nếu bạn gặp rắc rối và muốn hoàn nguyên các thay đổi.


1. Bỏ qua các ứng dụng có thể mua

Mở một thiết bị đầu cuối ( Ctrl+ Alt+ T) và gõ:

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

Và nhấn Enter. Bạn sẽ được nhắc nhập mật khẩu của bạn.
Sau đó, một biên tập viên sẽ xuất hiện. Xác định vị trí các dòng sau (gợi ý: Ctrl+ Fcó thể giúp):

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

Ngay sau những dòng đó, dán các dòng sau ( bao gồm cả khoảng trắng! ):

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

Lưu ý: nếu bạn muốn giữ những thứ không tốn tiền, nhưng phải được "mua"
(như thử nghiệm, tạp chí và những thứ khác), hãy thay thế ("")bằng ("0.00", "").

Lưu tệp ( Ctrl+ S), mở Trung tâm phần mềm và voila!
Không có chương trình thương mại!
Bạn có thể đóng trình soạn thảo và thiết bị đầu cuối ngay bây giờ.

2. Xóa kênh "Để mua" (tùy chọn)

Để cũng loại bỏ mục "Để mua" đó trong menu, hãy mở một thiết bị đầu cuối và gõ:

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

Xác định vị trí các dòng này:

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

Và vô hiệu hóa chúng bằng cách đặt #trước mỗi dòng:

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

Lưu và tận hưởng một trung tâm phần mềm không có quảng cáo!

 


Ghi chú bên: The. các tập tin. là đóng gói.

Điều này có nghĩa là gì? Điều này có nghĩa là,
bất cứ khi nào bạn nâng cấp Trung tâm phần mềm của mình, các thay đổi
sẽ được hoàn nguyên và bạn sẽ phải thực hiện lại các bước này.

Hoàn tác các sửa đổi

Nếu bạn muốn khôi phục trạng thái ban đầu của các tệp, hãy
mở một thiết bị đầu cuối và gõ:

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

Một lần nữa, bạn sẽ được nhắc nhập mật khẩu, lần này là trên thiết bị đầu cuối.
Nhập nó và nhấn ENTER. Đừng lo lắng nếu không có gì xuất hiện khi bạn nhập, đó là để ẩn mật khẩu của bạn.
Thiết bị đầu cuối sẽ tự động đóng khi hoàn thành.


2
Như tôi đã nói với những người khác, tốt nhất là tạo một bản sao lưu trước khi chỉnh sửa bất cứ điều gì quan trọng cho một chương trình.
ζ--

1
@ObsessiveFOSS điểm tốt. Nhưng hãy nhớ rằng: 1) Những thay đổi là tầm thường và dễ hoàn tác. Không chắc là mọi người sẽ bị lạc. : D 2) Tập tin này được đóng gói, vì vậy nếu bạn mắc lỗi, bạn có thể chỉ cần cài đặt lại gói.
Alba Mendez

@ObsessiveFOSS Tôi đã thêm hướng dẫn để hoàn nguyên, chỉ trong trường hợp;)
Alba Mendez

12

Cho 11.10 trở về trước

Bạn có thể chỉnh sửa:

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

và nhận xét (hoặc xóa) các dòng sau:

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)

Tất nhiên, bạn nên nhớ rằng các bản cập nhật software-centercó thể sẽ ghi đè lên tập lệnh ...

Kiểm tra liên kết này để biết thêm chi tiết ;-)

Lưu ý: cho 12.04 tên tệp là /usr/share/software-center/softwarecenter/backend/channel_impl/aptchannels.py. Các bước tương tự áp dụng.


1
Quan tâm để tìm một giải pháp cho 12.04? :)
Savvas Radevic

1
Nếu bạn thay thế trung tâm phần mềm bằng một phiên bản cũ, hãy hỏi Ubuntu.com/questions/95497/, thì bạn có thể làm theo các bước sau.
Mateo

Vào ngày 12.04, các bước này sẽ ẩn kênh "Để mua" nhưng không phải tất cả các mục thương mại. Để che giấu chúng, cũng cần một cái gì đó như giải pháp của Darmien. (Nhưng tôi muốn tìm cách thay đổi logic chứ không phải GUI ).
Alba Mendez

Tôi tìm thấy nó! Ẩn TẤT CẢ các mục nhập từ MỌI NƠI!
Alba Mendez

@medigeek nhìn câu trả lời của tôi . Nếu nó không hoạt động, cho tôi biết. Tôi đã thử nghiệm nó trong ba máy tính khác nhau.
Alba Mendez

6

Tôi tìm thấy một cách để ẩn kết quả thương mại cho 12.04:

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

Sau dòng:

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

Thêm dòng sau:

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

Nó chỉ nên thay đổi những gì được hiển thị, nhưng tôi chưa kiểm tra nó nhiều, vì vậy hãy tự chịu rủi ro khi sử dụng. Và tận hưởng một trung tâm phần mềm không có quảng cáo.


Tuyệt quá! Không thể chờ đợi để kiểm tra nó. :)
Alba Mendez

Không thử nghiệm nó, nhưng sẽ làm. Cảm ơn bạn đã thử!
Savvas Radevic

6

Để hoàn thiện, đây là giải pháp hiệu quả với tôi trong 13.10:

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

Tìm thấy điều này:

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

Và thêm phần này (đảm bảo bạn có thụt lề TABS đúng (python yêu cầu điều này):

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

BTW đây là evar python đầu tiên của tôi :-)


+1 Không thể xác minh ngay bây giờ, nhưng cũng được thêm vào TOC. Cảm ơn!
Alba Mendez

Hoạt động cho 14.04, nhưng sẽ tốt hơn nếu có thể bật / tắt từ UI. Giải pháp này là khá lâu dài. Không bao giờ thấy các ứng dụng để mua lại.
VlatkoB

3

Tôi đã thử nó, nó hoạt động với tôi: chỉ các mục MIỄN PHÍ (giá không quá 0) được hiển thị.

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

Tìm thấy điều này:

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

Sau đó thêm mã sau đây:

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

2

Cho 12.10 trở đi

Bắt nguồn từ câu trả lời của jmendeth .
Phiên bản khác nhau? Tới danh sách .
Xem phần cuối của bài đăng nếu bạn gặp rắc rối và muốn hoàn nguyên các thay đổi.

Đóng Trung tâm phần mềm nếu nó mở.
Bây giờ hãy mở một thiết bị đầu cuối ( Ctrl+ Alt+ T) và gõ:

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

Và nhấn Enter. Bạn sẽ được nhắc nhập mật khẩu của bạn.
Sau đó, một biên tập viên sẽ xuất hiện. Xác định vị trí các dòng sau (gợi ý: Ctrl+ Fcó thể giúp):

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

Ngay sau những dòng đó, dán các dòng sau ( bao gồm cả khoảng trắng! ):

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

Lưu tệp ( Ctrl+ S) và đóng trình chỉnh sửa, nhưng không phải thiết bị đầu cuối.
Bây giờ gõ vào thiết bị đầu cuối:

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

Nhấn nút Enter. Một biên tập viên sẽ xuất hiện trở lại. Xác định vị trí các dòng này:

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

Và vô hiệu hóa chúng bằng cách đặt #trước mỗi dòng:

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

Lưu tệp, đóng trình chỉnh sửa nhưng không phải thiết bị đầu cuối.
Trong thiết bị đầu cuối, gõ:

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

Đợi một chút, thiết bị đầu cuối sẽ tự động đóng khi hoàn tất ...
Sau đó, mở Trung tâm phần mềm và Voila!
Không có chương trình thương mại!

Ghi chú bên: The. các tập tin. là đóng gói.

Điều này có nghĩa là gì? Điều này có nghĩa là,
bất cứ khi nào bạn nâng cấp Trung tâm phần mềm của mình, các thay đổi
sẽ được hoàn nguyên và bạn sẽ phải thực hiện lại các bước này.

Hoàn tác các sửa đổi

Nếu bạn muốn khôi phục trạng thái ban đầu của các tệp, hãy
mở một thiết bị đầu cuối và gõ:

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

Một lần nữa, bạn sẽ được nhắc nhập mật khẩu của bạn.
Thiết bị đầu cuối sẽ tự động đóng khi hoàn thành.


+1 Cảm ơn bạn đã đóng góp! Chà, điều này đang trở nên khá mở rộng, vì vậy tôi nghĩ rằng tôi sẽ tạo một tập lệnh Python để sửa lỗi phù hợp tùy thuộc vào phiên bản.
Alba Mendez

Kiểm tra Gonna vào ngày 12.10 của tôi, nếu mọi thứ đã sẵn sàng, tôi sẽ liên kết câu trả lời của bạn ở đầu và thực hiện bất kỳ sửa đổi nào khác.
Alba Mendez

Chỉ cần làm điều đó trên bản cài đặt Ubuntu 12.10 mới của tôi
blvdeer

@jmendeth Tôi rất muốn hỗ trợ bạn viết kịch bản đó
blvdeer

Xin lỗi về sự chậm trễ. Thật không may, nó không hoạt động trên Ubuntu 12.10 64 bit của tôi. Tôi sẽ xem liệu tôi có thể làm một cái gì đó không ...
Alba Mendez

-2

Bạn có thể làm điều này đơn giản hơn bằng cách chọn Xem -> Phần mềm duy trì Canonical thay vì Tất cả phần mềm. Điều này có lợi ích của việc không bị ghi đè bởi các bản cập nhật phần mềm.

Điều này có thể ẩn một số mặt hàng bổ sung nhưng ít nhất nó sẽ thoát khỏi các tạp chí gây phiền nhiễu và bán phần mềm theo kinh nghiệm của tôi.


2
Sau đó, bạn đang ẩn 90% tất cả phần mềm, chỉ hiển thị phần mềm (thương mại hoặc không) mà Canonical hỗ trợ. Những gì tôi muốn làm là loại bỏ các phần mềm propietary chỉ .
Alba Mendez
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.