Đây là lần thứ hai trong vòng chưa đầy 6 tháng, các nhóm Ubuntu đã thực hiện một bản cập nhật được đề xuất mà không có bất kỳ thử nghiệm nào và phá vỡ các hệ thống Ubuntu đang hoạt động.
Những kẻ này gần đây đã sẵn sàng phá vỡ phiên bản LTS hiện tại bằng các bản cập nhật được đề xuất giả mạo và chưa được kiểm tra ... Đó là điều mới, cho đến năm ngoái, điều đó chưa bao giờ xảy ra.
Giải pháp là NEVER installđề xuất và được gọi là Partial Upgrade... Bạn vẫn có thể cập nhật hệ thống của mình thông qua Synapticgói theo gói (mặc dù để hiểu rõ về nó Synaptichiện đã bị xóa khỏi bản phát hành chính thức) ... Cho đến khi bạn chặn tất cả các bản cập nhật của bản phát hành lỗi . Đây là một ví dụ:
#!/bin/sh
#
# Add nemo package to update blacklist
# Run script as super user i.e. sudo ./block-upd-unity.sh
#
if [ $(id -u) != 0 ]; then
echo "This script requires root permissions"
sudo "$0"
exit
fi
echo "nemo hold" | dpkg --set-selections
echo "nemo-data hold" | dpkg --set-selections
echo "nemo-fileroller hold" | dpkg --set-selections
Sau đó chạy tập lệnh theo tên của nó trong thư mục hiện tại, như:
$ ./block-upd-nemo
Để bỏ chặn
#!/bin/sh
#
# Remove nemo package from update blacklist
# Run script as super user i.e. sudo ./block-upd-unity.sh
#
if [ $(id -u) != 0 ]; then
echo "This script requires root permissions"
sudo "$0"
exit
fi
echo "nemo install" | dpkg --set-selections
echo "nemo-data install" | dpkg --set-selections
echo "nemo-fileroller install" | dpkg --set-selections
Sau đó
$ ./unblock-upd-nemo
Tại Synaptic, bạn có thể thấy một danh sách dài compizcác gói liên quan đang bị phá vỡ Xenial LTSbằng cách xóa các gói này:
ubuntu-desktop unity unity-tweak-tool unsettings ...
Các gói để chặn là:
[Danh sách được cập nhật khi tôi bỏ lỡ các gói bị ảnh hưởng thống nhất]
compiz compiz-core compiz-dev compiz-gnome compiz-plugins compiz-plugins-default compiz-plugins-extra compiz-plugins-main compiz-plugins-main-default compizconfig-settings-manager libcompizconfig0 libdecoration0 libdecoration0-dev python-compizconfig libunity-core-6.0-9 libunity-core-6.0-dev unity unity-schemas unity-services
Một danh sách dài. Quản lý thông qua kịch bản Shell.
Một giải pháp phục hồi sẽ là khởi động từ thanh USB cài đặt Xenial và thực hiện a chroot. Tới trang web của Launchpad cho compiz để tải về các Release (main)gói và buộc cài đặt chúng với dpkg -i *.debsau đó chặn tất cả các bản cập nhật, hoặc loại bỏ các proposedphiên bản từ cấu hình cập nhật của bạn.
[Cập nhật]: Bạn cũng cần truy cập trang web Launchpad unity và tải xuống các Release (main)gói bị ảnh hưởng (xem bên dưới trong tập lệnh).
Tìm kiếm Google nếu bạn không quen thuộc với nó.
Đây là kịch bản chặn của tôi cho compiztôi vừa hoàn thành:
[Cập nhật khi tôi bỏ lỡ các gói bị ảnh hưởng thống nhất]
#!/bin/sh
#
# Add compiz package to update blacklist
# Run script as super user i.e. sudo ./block-upd-compiz.sh
#
if [ $(id -u) != 0 ]; then
echo "This script requires root permissions"
sudo "$0"
exit
fi
echo "compiz hold" | dpkg --set-selections
echo "compiz-core hold" | dpkg --set-selections
echo "compiz-dev hold" | dpkg --set-selections
echo "compiz-gnome hold" | dpkg --set-selections
echo "compiz-plugins hold" | dpkg --set-selections
echo "compiz-plugins-default hold" | dpkg --set-selections
echo "compiz-plugins-extra hold" | dpkg --set-selections
echo "compiz-plugins-main hold" | dpkg --set-selections
echo "compiz-plugins-main-default hold" | dpkg --set-selections
echo "compizconfig-settings-manager hold" | dpkg --set-selections
echo "libcompizconfig0 hold" | dpkg --set-selections
echo "libdecoration0 hold" | dpkg --set-selections
echo "libdecoration0-dev hold" | dpkg --set-selections
echo "python-compizconfig hold" | dpkg --set-selections
echo "libunity-core-6.0-9 hold" | dpkg --set-selections
echo "libunity-core-6.0-dev hold" | dpkg --set-selections
echo "unity hold" | dpkg --set-selections
echo "unity-schemas hold" | dpkg --set-selections
echo "unity-services hold" | dpkg --set-selections
Đừng quên thiết lập các tập lệnh thực thi ...
$ chmod a+x block-upd-compiz
[Folllow Up]: Sau khi chạy tập lệnh Shell để bỏ chặn 19 gói từ compizvà unity. Tôi đã thử N0rbetgiải pháp và nó có vẻ hiệu quả:
$ sudo apt-get install compiz-core-abiversion-20170630
Reading package lists... Done
Building dependency tree
Reading state information... Done
Note, selecting 'compiz-core' instead of 'compiz-core-abiversion-20170630'
The following additional packages will be installed:
compiz-dev compiz-gnome compiz-plugins compiz-plugins-default libcompizconfig0 libdecoration0
libdecoration0-dev libunity-core-6.0-9 libunity-core-6.0-dev unity unity-schemas unity-services
The following packages will be upgraded:
compiz-core compiz-dev compiz-gnome compiz-plugins compiz-plugins-default libcompizconfig0 libdecoration0
libdecoration0-dev libunity-core-6.0-9 libunity-core-6.0-dev unity unity-schemas unity-services
13 upgraded, 0 newly installed, 0 to remove and 13 not upgraded.
Need to get 5,410 kB of archives.
After this operation, 283 kB of additional disk space will be used.
Do you want to continue? [Y/n] y