Di Linux, repositori perangkat lunak biasanya menyimpan paket perangkat lunak. Setelah menambahkan repositori perangkat lunak, Anda dapat menggunakan tool manajemen paket untuk mencari, menginstal, atau memperbarui paket-paket tersebut. Proses ini menyederhanakan operasi dan pemeliharaan (O&M) sistem serta mendukung pengembangan aplikasi. Topik ini menjelaskan cara mengelola dan menggunakan repositori perangkat lunak pada berbagai distribusi Linux, dengan menggunakan repositori Alibaba Cloud sebagai contoh.
Latar Belakang
Kecepatan akses repositori perangkat lunak bergantung pada faktor-faktor seperti wilayah geografis dan jaraknya. Website mirror open source Alibaba Cloud memanfaatkan infrastruktur Alibaba Cloud untuk menyediakan layanan mirror all-in-one gratis berkecepatan tinggi. Layanan ini mencakup mirror repositori perangkat lunak untuk distribusi Linux utama, seperti CentOS, Debian, Ubuntu, Fedora, dan openSUSE. Repositori ini gratis untuk pengguna Alibaba Cloud maupun non-Alibaba Cloud.
Penting Secara default, repositori perangkat lunak dalam gambar publik dari Alibaba Cloud menggunakan alamat repositori pribadi untuk ECS dari situs mirror Alibaba Cloud. Pengguna ECS dapat langsung menggunakan repositori ini tanpa konfigurasi manual. Jika Anda perlu menambahkan atau memperbaiki repositori perangkat lunak secara manual untuk distribusi Linux Anda, lihat topik ini.
Topik ini menggunakan alamat repositori publik http://mirrors.aliyun.com, yang ditujukan untuk sistem Linux dengan koneksi internet. Jika server Anda adalah instance ECS Alibaba Cloud, gunakan alamat repositori pribadi untuk ECS, http://mirrors.cloud.aliyuncs.com, untuk unduhan yang lebih cepat.
Tambahkan repositori perangkat lunak Alibaba Cloud
Hubungkan ke instance Linux
Untuk informasi lebih lanjut, lihat Login ke instance Linux menggunakan Workbench. Contoh login dalam topik ini menggunakan ecs-user. Anda juga dapat menggunakan metode login lainnya.
Tambahkan repositori perangkat lunak Alibaba Cloud
Catatan Bagian berikut menjelaskan cara menambahkan repositori perangkat lunak Alibaba Cloud untuk beberapa distribusi Linux umum. Ikuti instruksi sesuai versi sistem operasi Anda.
Alibaba Cloud Linux 3/2
Jalankan perintah berikut untuk membuat cadangan repositori perangkat lunak asli.
sudo mv /etc/yum.repos.d/AliYun.repo /etc/yum.repos.d/AliYun.repo.backup
Jalankan perintah berikut untuk menambahkan repositori perangkat lunak baru.
Alibaba Cloud Linux 3
sudo rpm -Uvh --reinstall https://mirrors.aliyun.com/alinux/3/updates/x86_64/Packages/alinux-repos-3.2104.12-1.al8.x86_64.rpm
Alibaba Cloud Linux 2
sudo rpm -Uvh --reinstall https://mirrors.aliyun.com/alinux/2/updates/x86_64/Packages/alinux-release-2.1903-11.al7.x86_64.rpm
Jalankan perintah berikut untuk membuat cache lokal guna mempercepat pencarian dan instalasi paket perangkat lunak.
sudo yum clean all && sudo yum makecache
CentOS 8/7/6
Jalankan perintah berikut untuk membuat cadangan repositori perangkat lunak asli.
sudo mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
Jalankan perintah berikut untuk menambahkan repositori perangkat lunak Alibaba Cloud.
CentOS 8
url=https://mirrors.aliyun.com/repo/Centos-vault-8.5.2111.repo;if [ -f /usr/bin/curl ];then sudo curl -sSo /etc/yum.repos.d/Centos-vault-8.5.2111.repo $url;else sudo wget -O /etc/yum.repos.d/Centos-vault-8.5.2111.repo $url; fi
CentOS 7
url=https://mirrors.aliyun.com/repo/Centos-7.repo;if [ -f /usr/bin/curl ];then sudo curl -sSO $url;else sudo wget -O /etc/yum.repos.d/Centos-7.repo $url; fi
CentOS 6
url=https://mirrors.aliyun.com/repo/Centos-vault-6.10.repo;if [ -f /usr/bin/curl ];then sudo curl -sSL -o /etc/yum.repos.d/Centos-vault-6.10.repo $url;else sudo wget -O /etc/yum.repos.d/Centos-vault-6.10.repo $url; fi
Jalankan perintah berikut untuk membuat cache lokal guna mempercepat pencarian dan instalasi paket perangkat lunak.
sudo yum clean all && sudo yum makecache
Ubuntu
Jalankan perintah berikut untuk membuat cadangan repositori perangkat lunak asli.
sudo mv /etc/apt/sources.list /etc/apt/sources.list.backup
Jalankan perintah berikut untuk membuat dan membuka file konfigurasi.
sudo vim /etc/apt/sources.list
Tekan i untuk masuk ke mode insert dan tambahkan konfigurasi repositori untuk versi Ubuntu Anda ke dalam file.
Ubuntu 24.04
deb https://mirrors.aliyun.com/ubuntu/ noble main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ noble main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ noble-security main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ noble-security main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ noble-updates main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ noble-updates main restricted universe multiverse
# deb https://mirrors.aliyun.com/ubuntu/ noble-proposed main restricted universe multiverse
# deb-src https://mirrors.aliyun.com/ubuntu/ noble-proposed main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ noble-backports main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ noble-backports main restricted universe multiverse
Ubuntu 23.04
deb https://mirrors.aliyun.com/ubuntu/ lunar main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ lunar main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ lunar-security main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ lunar-security main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ lunar-updates main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ lunar-updates main restricted universe multiverse
# deb https://mirrors.aliyun.com/ubuntu/ lunar-proposed main restricted universe multiverse
# deb-src https://mirrors.aliyun.com/ubuntu/ lunar-proposed main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ lunar-backports main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ lunar-backports main restricted universe multiverse
Ubuntu 22.04
deb https://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
# deb https://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse
# deb-src https://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
Ubuntu 20.04
deb https://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
# deb https://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
# deb-src https://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
Ubuntu 18.04
deb https://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
# deb https://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
# deb-src https://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
Tekan Esc, masukkan :wq, lalu tekan Enter untuk menyimpan dan menutup file konfigurasi.
Jalankan perintah berikut untuk memperbarui indeks paket lokal.
sudo apt update
Debian
Jalankan perintah berikut untuk membuat cadangan repositori perangkat lunak asli.
sudo mv /etc/apt/sources.list /etc/apt/sources.list.backup
Jalankan perintah berikut untuk membuat dan membuka file konfigurasi.
sudo vim /etc/apt/sources.list
Tekan i untuk masuk ke mode insert dan tambahkan konfigurasi repositori untuk versi Debian Anda ke dalam file.
Debian 11.x
deb http://mirrors.cloud.aliyuncs.com/debian/ bullseye main non-free contrib
deb-src http://mirrors.cloud.aliyuncs.com/debian/ bullseye main non-free contrib
deb http://mirrors.cloud.aliyuncs.com/debian-security/ bullseye-security main
deb-src http://mirrors.cloud.aliyuncs.com/debian-security/ bullseye-security main
deb http://mirrors.cloud.aliyuncs.com/debian/ bullseye-updates main non-free contrib
deb-src http://mirrors.cloud.aliyuncs.com/debian/ bullseye-updates main non-free contrib
Debian 10.x
deb http://mirrors.cloud.aliyuncs.com/debian-archive/debian/ buster main non-free contrib
deb http://mirrors.cloud.aliyuncs.com/debian-archive/debian-security buster/updates main
deb http://mirrors.cloud.aliyuncs.com/debian-archive/debian/ buster-updates main non-free contrib
deb-src http://mirrors.cloud.aliyuncs.com/debian-archive/debian/ buster main non-free contrib
deb-src http://mirrors.cloud.aliyuncs.com/debian-archive/debian-security buster/updates main
deb-src http://mirrors.cloud.aliyuncs.com/debian-archive/debian/ buster-updates main non-free contrib
Debian 9.x
deb http://mirrors.cloud.aliyuncs.com/debian-archive/debian stretch main contrib non-free
#deb http://mirrors.cloud.aliyuncs.com/debian-archive/debian stretch-proposed-updates main non-free contrib
#deb http://mirrors.cloud.aliyuncs.com/debian-archive/debian stretch-backports main non-free contrib
deb http://mirrors.cloud.aliyuncs.com/debian-archive/debian-security stretch/updates main contrib non-free
deb-src http://mirrors.cloud.aliyuncs.com/debian-archive/debian stretch main contrib non-free
#deb-src http://mirrors.cloud.aliyuncs.com/debian-archive/debian stretch-proposed-updates main contrib non-free
#deb-src http://mirrors.cloud.aliyuncs.com/debian-archive/debian stretch-backports main contrib non-free
deb-src http://mirrors.cloud.aliyuncs.com/debian-archive/debian-security stretch/updates main contrib non-free
Debian 8.x
deb http://mirrors.cloud.aliyuncs.com/debian-archive/debian/ jessie main non-free contrib
deb-src http://mirrors.cloud.aliyuncs.com/debian-archive/debian/ jessie main non-free contrib
Tekan Esc, masukkan :wq, lalu tekan Enter untuk menyimpan dan menutup file konfigurasi.
Jalankan perintah berikut untuk memperbarui indeks paket lokal.
sudo apt update
Fedora
Jalankan perintah berikut untuk membuat cadangan repositori perangkat lunak asli.
sudo mv /etc/yum.repos.d/fedora.repo /etc/yum.repos.d/fedora.repo.backup
sudo mv /etc/yum.repos.d/fedora-updates.repo /etc/yum.repos.d/fedora-updates.repo.backup
Jalankan perintah berikut untuk menambahkan repositori perangkat lunak Fedora Alibaba Cloud.
url=http://mirrors.aliyun.com/repo/fedora.repo;if [ -f /usr/bin/curl ];then sudo curl -sSO $url;else sudo wget -O /etc/yum.repos.d/fedora.repo $url; fi
Jalankan perintah berikut untuk menambahkan repositori perangkat lunak fedora-updates Alibaba Cloud.
url=http://mirrors.aliyun.com/repo/fedora-updates.repo;if [ -f /usr/bin/curl ];then sudo curl -sSO $url;else sudo wget -O /etc/yum.repos.d/fedora-updates.repo $url; fi
Jalankan perintah berikut untuk membuat cache lokal guna mempercepat pencarian dan instalasi paket perangkat lunak.
sudo yum clean all && sudo yum makecache
openSUSE 15.6
Jalankan perintah berikut untuk membuat cadangan repositori perangkat lunak asli.
sudo rename '.repo' '.repo.backup' /etc/zypp/repos.d/openSUSE*.repo
Jalankan perintah berikut untuk menambahkan repositori perangkat lunak Alibaba Cloud.
sudo zypper addrepo -f http://mirrors.aliyun.com/opensuse/distribution/leap/15.6/repo/oss/ openSUSE-15.6-Oss
sudo zypper addrepo -f http://mirrors.aliyun.com/opensuse/distribution/leap/15.6/repo/non-oss/ openSUSE-15.6-Non-Oss
sudo zypper addrepo -f http://mirrors.aliyun.com/opensuse/update/leap/15.6/oss/ openSUSE-15.6-Update-Oss
sudo zypper addrepo -f http://mirrors.aliyun.com/opensuse/update/leap/15.6/non-oss/ openSUSE-15.6-Update-Non-Oss
Jalankan perintah berikut untuk merefresh repositori.
Kelola perangkat lunak dengan manajer paket
Di Linux, Anda dapat menggunakan tool manajemen paket untuk mengelola paket perangkat lunak yang tersedia di repositori perangkat lunak. Tool manajemen paket umum meliputi yum, dnf, apt, dan zypper. Topik ini menunjukkan cara menggunakan tool ini untuk mencari, menginstal, memperbarui, dan menghapus perangkat lunak pada sistem operasi berbeda. Dalam contoh, ganti nama paket sampel dengan nama yang Anda butuhkan.
Catatan Paket perangkat lunak dalam distribusi Linux terus menerima pembaruan untuk menambahkan fitur baru, memperbaiki bug, dan menyediakan pembaruan keamanan. Perbarui paket ke versi terbaru sesuai kebutuhan.
Alibaba Cloud Linux / CentOS / Fedora
Cari paket perangkat lunak
Jalankan perintah berikut untuk menemukan paket perangkat lunak dengan tool manajemen paket yum.
sudo yum search <package-keyword>
Misalnya, untuk mencari paket yang mengandung kata kunci nginx, jalankan perintah berikut.
sudo yum search nginx
Instal paket perangkat lunak
Jalankan perintah berikut untuk menginstal paket perangkat lunak menggunakan tool manajemen paket yum.
sudo yum install <package-name>
Misalnya, untuk menginstal paket nginx, jalankan perintah berikut.
sudo yum install nginx
Instal ulang paket perangkat lunak
Jalankan perintah berikut untuk menginstal ulang paket perangkat lunak yang telah terinstal dengan tool manajemen paket yum.
sudo yum reinstall <package-name>
Misalnya, untuk menginstal ulang paket nginx, jalankan perintah berikut.
sudo yum reinstall nginx
Perbarui paket perangkat lunak
Jalankan perintah berikut untuk memperbarui paket perangkat lunak menggunakan tool manajemen paket yum.
sudo yum update <package-name>
Misalnya, untuk memperbarui paket nginx, jalankan perintah berikut.
sudo yum update nginx
Hapus paket perangkat lunak
Jalankan perintah berikut untuk menghapus paket perangkat lunak menggunakan tool manajemen paket yum.
sudo yum remove <package-name>
Misalnya, untuk menghapus paket nginx, jalankan perintah berikut.
sudo yum remove nginx
Ubuntu / Debian
Cari paket perangkat lunak
Jalankan perintah berikut untuk mencari paket perangkat lunak menggunakan tool manajemen paket apt.
sudo apt search <package-keyword>
Misalnya, untuk mencari paket yang mengandung kata kunci nginx, jalankan perintah berikut.
sudo apt search nginx
Instal paket perangkat lunak
Jalankan perintah berikut untuk menginstal paket perangkat lunak dengan tool manajemen paket apt.
sudo apt install <package-name>
Misalnya, untuk menginstal paket nginx, jalankan perintah berikut.
sudo apt install nginx
Instal ulang paket perangkat lunak
Jalankan perintah berikut untuk menginstal ulang paket perangkat lunak yang telah terinstal dengan tool manajemen paket apt.
sudo apt install --reinstall <package-name>
Misalnya, untuk menginstal ulang paket nginx, jalankan perintah berikut.
sudo apt install --reinstall nginx
Perbarui paket perangkat lunak
Jalankan perintah berikut untuk memperbarui paket perangkat lunak menggunakan tool manajemen paket apt.
sudo apt upgrade <package-name>
Misalnya, untuk memperbarui paket nginx, jalankan perintah berikut.
sudo apt upgrade nginx
Hapus paket perangkat lunak
Jalankan perintah berikut untuk menghapus paket perangkat lunak menggunakan alat manajemen paket yum.
sudo apt remove <package-name>
Misalnya, untuk menghapus paket nginx, jalankan perintah berikut.
sudo apt remove nginx
openSUSE
Cari paket perangkat lunak
Jalankan perintah berikut untuk mencari paket perangkat lunak menggunakan tool manajemen paket zypper.
sudo zypper search <package-keyword>
Misalnya, untuk mencari paket yang mengandung kata kunci nginx, jalankan perintah berikut.
sudo zypper search nginx
Instal paket perangkat lunak
Jalankan perintah berikut untuk menginstal paket perangkat lunak menggunakan tool manajemen paket zypper.
sudo zypper install <package-name>
Misalnya, untuk menginstal paket nginx, jalankan perintah berikut.
sudo zypper install nginx
Instal ulang paket perangkat lunak
Jalankan perintah berikut untuk menginstal ulang paket perangkat lunak yang telah terinstal menggunakan tool manajemen paket zypper.
sudo zypper install --force <package-name>
Misalnya, untuk menginstal ulang paket nginx, jalankan perintah berikut.
sudo zypper install --force nginx
Perbarui paket perangkat lunak
Jalankan perintah berikut untuk memperbarui paket perangkat lunak menggunakan tool manajemen paket zypper.
sudo zypper update <package-name>
Misalnya, untuk memperbarui paket nginx, jalankan perintah berikut.
sudo zypper update nginx
Hapus paket perangkat lunak
Jalankan perintah berikut untuk menghapus paket perangkat lunak dengan tool manajemen paket zypper.
sudo zypper remove <package-name>
Misalnya, untuk menghapus paket nginx, jalankan perintah berikut.
sudo zypper remove nginx
FAQ
Error "Failed to fetch"
Gejala
Saat menjalankan perintah berikut untuk menginstal paket perangkat lunak openjdk-7-jre-headless pada instance ECS yang menjalankan Ubuntu 14.04, terjadi error "Failed to fetch".
apt-get install openjdk-7-jre-headless
Sistem menampilkan output yang mirip dengan berikut.
Penyebab
Instance ECS terhubung ke repositori perangkat lunak eksternal, yang mencegah instalasi OpenJDK.
Resolusi
Hubungkan ke instance Linux.
Untuk informasi lebih lanjut, lihat Hubungkan ke instance Linux menggunakan password atau kunci.
Jalankan perintah berikut untuk menginstal ulang OpenJDK:
apt-get install openjdk-7-jre-headless --fix-missing
Error "File contains no section headers"
Gejala
Saat menggunakan perintah yum untuk menginstal MySQL pada instance ECS yang menjalankan CentOS 7.0, terjadi error berikut:
File contains no section headers.
Penyebab
Repositori perangkat lunak tidak berisi paket perangkat lunak yang diperlukan.
Resolusi
Ikuti langkah-langkah berikut untuk beralih ke repositori perangkat lunak CentOS resmi.
Hubungkan ke instance Linux.
Untuk informasi lebih lanjut, lihat Hubungkan ke instance Linux menggunakan password atau kunci.
Modifikasi file konfigurasi /etc/yum.repos.d/epel.repo.
Jalankan perintah berikut untuk mengedit file konfigurasi /etc/yum.repos.d/epel.repo:
vim /etc/yum.repos.d/epel.repo
Tekan tombol i untuk masuk ke mode insert dan ganti konten file konfigurasi dengan berikut:
[epel-source]
name=Extra Packages for Enterprise Linux 7 - $basearch - Source
#baseurl=http://download.fedoraproject.org/pub/epel/7/SRPMS
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-source-7&arch=$basearch
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
gpgcheck=1
[epel]
name=Extra Packages for Enterprise Linux 7 - $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearch
failovermethod=priority
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
[epel-debuginfo]
name=Extra Packages for Enterprise Linux 7 - $basearch - Debug
#baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch/debug
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-debug-7&arch=$basearch
failovermethod=priority
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
gpgcheck=1
Setelah mengedit file, tekan tombol Esc untuk keluar dari mode insert. Lalu, masukkan :wq dan tekan tombol Enter untuk menyimpan dan menutup file.
Jalankan perintah berikut secara berurutan untuk menerapkan konfigurasi repositori perangkat lunak baru:
yum makecache
yum repolist
Instal ulang MySQL. Jika pesan error tidak muncul lagi, masalah telah terselesaikan.
"Error processing package install-info"
Gejala
Saat menggunakan apt-get untuk menginstal perangkat lunak pada instance ECS yang menjalankan Ubuntu, terjadi error "error processing package install-info (--configure)".
Penyebab
Masalah ini dapat disebabkan oleh paket perangkat lunak Ubuntu yang rusak, sehingga instalasi gagal.
Resolusi
Ikuti langkah-langkah berikut untuk memperbarui repositori perangkat lunak APT dan menginstal ulang perangkat lunak.
Hubungkan ke instance Ubuntu.
Untuk informasi lebih lanjut, lihat Hubungkan ke instance Linux menggunakan password atau kunci.
Ganti nama direktori info.
mv /var/lib/dpkg/info/ /var/lib/dpkg/info.bak.old/
Buat direktori info baru.
mkdir /var/lib/dpkg/info/
Jalankan perintah berikut untuk memperbarui repositori perangkat lunak APT:
apt-get update
Jalankan perintah berikut untuk menginstal ulang perangkat lunak. Ganti xxxxx dengan nama paket perangkat lunak yang ingin Anda instal ulang. Jika pesan error tidak muncul lagi, masalah telah terselesaikan.
apt-get install xxxxx
Error "Segmentation fault"
Gejala
Saat menggunakan apt-get untuk menginstal atau memperbarui perangkat lunak pada instance ECS yang menjalankan Ubuntu, terjadi error "Segmentation fault".
Penyebab
Masalah ini dapat disebabkan oleh konflik cache APT, sehingga instalasi atau pembaruan gagal.
Resolusi
Ikuti langkah-langkah berikut untuk memperbarui repositori perangkat lunak APT.
Hubungkan ke instance Ubuntu.
Untuk informasi lebih lanjut, lihat Hubungkan ke instance Linux menggunakan password atau kunci.
Backup direktori /var/cache/apt/.
Setelah backup, jalankan perintah berikut untuk menghapus semua file .bin dari direktori /var/cache/apt/:
rm /var/cache/apt/*.bin
Jalankan perintah berikut untuk memperbarui repositori perangkat lunak APT:
apt-get update
Periksa apakah Anda dapat menggunakan apt-get tanpa error.
Catatan Jika error "Segmentation fault" terjadi pada instance dengan memori rendah, seperti 512 MB, jalankan perintah top untuk memeriksa penggunaan memori. Hentikan proses yang tidak penting, lalu coba lagi perintah apt-get.
Error "Reading package lists"
Gejala
Saat menggunakan apt-get untuk menginstal perangkat lunak pada instance ECS yang menjalankan Ubuntu, muncul pesan error yang mirip dengan berikut:
Reading package lists... Error! E: Encountered a section with no Package: header E: Problem with MergeList /var/lib/apt/lists/AZ.archive.ubuntu.com_ubuntu_dists_natty_main_i18n _Translation-en E: The package lists or status file could not be parsed or opened.
Penyebab
Daftar paket perangkat lunak rusak, sehingga instalasi perangkat lunak gagal.
Resolusi
Ikuti langkah-langkah berikut untuk menghapus daftar yang rusak dan membuat ulang daftar pembaruan.
Jalankan perintah berikut untuk menghapus daftar yang rusak dari direktori:
rm -rf /var/lib/apt/lists/*
Jalankan perintah berikut untuk membuat ulang daftar pembaruan:
apt-get update

Instal ulang perangkat lunak. Jika pesan error tidak muncul lagi, masalah telah terselesaikan.
Error "404 Not Found" pada Apt-get
Gejala
Saat menjalankan perintah apt-get install unzip atau aptitude install unzip pada instance ECS yang menjalankan Ubuntu, muncul pesan error berikut:
Error http://mirrors.aliyun.com/ubuntu/ trusty-updates/main unzip amd64 6.0-9ubuntu1.1 404 Not Found [IP: 112.124.XXX.XXX 80]
Error http://mirrors.aliyun.com/ubuntu/ trusty-updates/main unzip amd64 6.0-9ubuntu1.1 404 Not Found [IP: 112.124.XXX.XXX 80]
Error http://mirrors.aliyun.com/ubuntu/ trusty-updates/main unzip amd64 6.0-9ubuntu1.1 404 Not Found [IP: 112.124.XXX.XXX 80]
Penyebab
Error ini biasanya terjadi ketika versi paket perangkat lunak yang diharapkan oleh sistem operasi tidak sesuai dengan versi yang tersedia di repositori perangkat lunak APT. Akibatnya, apt-get meminta resource yang tidak ada.
Resolusi
Ikuti langkah-langkah berikut untuk memperbarui repositori perangkat lunak APT.
Hubungkan ke instance Ubuntu.
Untuk informasi lebih lanjut, lihat Hubungkan ke instance Linux menggunakan password atau kunci.
Jalankan perintah berikut untuk memperbarui repositori perangkat lunak APT:
apt-get update
Setelah memperbarui repositori perangkat lunak, gunakan perintah apt-get install untuk menginstal perangkat lunak yang diperlukan.
Error KEYEXPIRED
Gejala
Saat menjalankan perintah apt-get update pada instance ECS yang menjalankan Ubuntu, muncul pesan berikut:
The following signatures were invalid: KEYEXPIRED 1544811256
Penyebab
Pembaruan gagal karena tanda tangan repositori perangkat lunak telah kedaluwarsa.
Resolusi
Ikuti langkah-langkah berikut untuk memperbarui kunci yang kedaluwarsa.
Hubungkan ke instance Ubuntu.
Untuk informasi lebih lanjut, lihat Hubungkan ke instance Linux menggunakan password atau kunci.
Jalankan perintah berikut untuk mendapatkan kunci yang kedaluwarsa:
sudo apt-key list | grep -A 1 expired

Jalankan perintah berikut untuk memperbarui kunci yang kedaluwarsa:
apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys [$Key]
Catatan Ganti [$Key] dengan kunci kedaluwarsa dari langkah sebelumnya.
Jalankan kembali perintah berikut untuk memperbarui repositori perangkat lunak APT:
apt-get update
Kegagalan repositori YUM pihak ketiga
Gejala
Pada instance ECS yang menjalankan Alibaba Cloud Linux 2 dan memenuhi kondisi berikut, instalasi paket Docker gagal dan muncul error berikut saat menjalankan perintah yum install docker-ce menggunakan repositori YUM pihak ketiga docker-ce dan epel untuk CentOS 7.
Loaded plugins: fastestmirror, langpacks, update-motd
Loading mirror speeds from cached hostfile
* epel: mirror.sjtu.edu.cn
https://mirrors.aliyun.com/docker-ce/linux/centos/2.1903/x86_64/stable/repodata/repomd.xml: [Errno 14] HTTPS Error 404 - Not Found
Trying other mirror.
Downloading packages:
docker-ce-20.10.6-3.el7.x86_64 FAILED
https://mirrors.aliyun.com/docker-ce/linux/centos/2.1903/x86_64/stable/Packages/docker-ce-20.10.6-3.el7.x86_64.rpm: [Errno 14] HTTPS Error 404 - Not Found
Trying other mirror.
docker-ce-rootless-extras-20.1 FAILED
https://mirrors.aliyun.com/docker-ce/linux/centos/2.1903/x86_64/stable/Packages/docker-ce-rootless-extras-20.10.6-3.el7.x86_64.rpm: [Errno 14] HTTPS Error 404 - Not Found
Trying other mirror.
Error downloading packages:
3:docker-ce-20.10.6-3.el7.x86_64: [Errno 256] No more mirrors to try.
docker-ce-rootless-extras-20.10.6-3.el7.x86_64: [Errno 256] No more mirrors to try.
Penyebab
Repositori YUM pihak ketiga dirancang hanya untuk distribusi CentOS 7. Nilai $releasever dari sistem operasi Alibaba Cloud Linux 2 berbeda dari sistem operasi CentOS 7. Perbedaan ini menyebabkan YUM mengarah ke alamat yang tidak valid, sehingga paket perangkat lunak tidak dapat diunduh.
Catatan Saat menginstal paket docker-ce menggunakan YUM, YUM pertama-tama mendapatkan nomor versi sistem, yaitu nilai $releasever. Kemudian, YUM mengganti variabel $releasever dalam alamat baseurl repositori YUM yang sesuai dengan nilai tersebut. YUM kemudian mengambil data dari alamat hasil substitusi tersebut. Karena nilai $releasever adalah 7 untuk sistem operasi CentOS 7 dan 2.1903 untuk sistem operasi Alibaba Cloud Linux 2, yang menggunakan nilai $releasever, alamat baseurl yang dihasilkan bukan alamat yang diharapkan. Akibatnya, YUM tidak dapat mengambil data dari alamat yang salah ini.
Resolusi
Pilih salah satu solusi berikut sesuai kebutuhan Anda.
Catatan Contoh berikut menggunakan repositori docker-ce. Solusinya serupa untuk repositori YUM lainnya.
Solusi 1: Modifikasi variabel secara manual
Hubungkan ke instance Linux.
Untuk informasi lebih lanjut, lihat Hubungkan ke instance Linux menggunakan password atau kunci.
Jalankan perintah berikut untuk mengedit file konfigurasi /etc/yum.repos.d/docker-ce.repo:
vim /etc/yum.repos.d/docker-ce.repo
Tekan tombol i untuk masuk ke mode edit. Di file docker-ce.repo, temukan semua sumber dengan enabled=1 dan ubah variabel $releasever dalam alamat baseurl menjadi 7. Konten yang dimodifikasi adalah sebagai berikut. 
Setelah modifikasi selesai, tekan tombol Esc, masukkan :wq, lalu tekan tombol Enter untuk menyimpan dan menutup file konfigurasi. Anda kemudian dapat menginstal ulang paket perangkat lunak.
Solusi 2: Instal plugin
Instal plugin yum-plugin-releasever-adapter untuk secara otomatis mengonversi nilai $releasever dari 2.1903 menjadi 7.
Periksa apakah instance Anda mendukung plugin yum-plugin-releasever-adapter.
Versi plugin dan repositori pihak ketiga yang didukung secara default tercantum dalam tabel berikut.
Versi Plugin | Repositori yang Didukung | Batasan Plugin |
1.0-1.3 | docker-ce.repo, epel.repo | Gunakan plugin ini hanya jika kondisi berikut terpenuhi: Sistem operasi adalah Alibaba Cloud Linux 2. Jalankan perintah berikut untuk memastikan repo plus ada di sistem: cat /etc/yum.repos.d/AliYun.repo |grep -A3 plus
Output yang mirip dengan berikut menunjukkan bahwa repo plus ada. 
|
Hubungkan ke instance Linux.
Untuk informasi lebih lanjut, lihat Hubungkan ke instance Linux menggunakan password atau kunci.
Jalankan perintah berikut untuk menginstal plugin yum-plugin-releasever-adapter, yang secara default secara otomatis mengonversi nilai $releasever di repositori YUM pihak ketiga docker-ce dan epel.
yum install yum-plugin-releasever-adapter --disablerepo=* --enablerepo=plus
Jika Anda tidak perlu mengonversi repositori YUM lainnya, Anda sekarang dapat menginstal perangkat lunak. Jika tidak, ikuti langkah-langkah berikut untuk mengonfigurasi repositori tambahan:
Jalankan perintah berikut untuk masuk ke direktori yang ditentukan:
cd /etc/yum/pluginconf.d/
Jalankan perintah berikut untuk mengedit file konfigurasi releasever-adapter.conf. Jika Anda perlu menambahkan repositori YUM lainnya, tambahkan nama file .repo mereka ke bidang includes, dipisahkan dengan koma.
vim releasever-adapter.conf
Sistem menampilkan output yang mirip dengan berikut:
[main]
enabled=1
hostfilepath=timedhosts.txt
[releasevermapping]
release_dict={'2.1903':'7', '3':'8'}
[reposlist]
includes=docker-ce.repo, epel.repo
Catatan Berikut penjelasan parameter dalam file:
: Ini adalah bagian kontrol utama Plugin, yang menentukan apakah Plugin diaktifkan. Jika enabled=1, Plugin diaktifkan; jika enabled=0, Plugin dinonaktifkan.
[releasevermapping]: Pemetaan untuk variabel $releasever, di mana 2.1903 dipetakan ke 7 dan 3 dipetakan ke 8.
[repolist]: Daftar sumber yang akan dimodifikasi. Untuk menambahkan sumber lain, tambahkan nama file .repo mereka setelah bidang include dan pisahkan dengan koma.
File .repo dapat berisi beberapa repositori. Setiap repositori diidentifikasi dengan nama, yang harus unik di sistem. Misalnya, file docker-ce.repo berisi repositori seperti [docker-ce-stable] dan [docker-ce-stable-debuginfo].
Pastikan bahwa nama file sumber yang ditambahkan ke file konfigurasi releasever-adapter.conf merupakan awalan untuk semua nama repositori dalam file tersebut. Misalnya, nama repositori docker-ce-stable dan docker-ce-stable-debuginfo dalam file sumber docker-ce.repo keduanya menggunakan docker-ce sebagai awalan.
Simpan file konfigurasi. Jalankan perintah berikut untuk menginstal paket perangkat lunak menggunakan repositori YUM pihak ketiga docker-ce dan epel:
yum install docker-ce
Kegagalan repositori DNF pihak ketiga
Gejala
Pada instance ECS yang menjalankan Alibaba Cloud Linux 3 dan memenuhi kondisi berikut, perintah dnf install docker-ce gagal menginstal paket perangkat lunak kontainer, dan muncul error berikut.
Sistem menampilkan pesan error yang mirip dengan berikut:
Docker CE Stable - x86_64
Failed to download metadata for repo 'docker-ce-stable'
Error: Failed to download metadata for repo 'docker-ce-stable'
Penyebab
Repositori DNF pihak ketiga hanya kompatibel dengan distribusi CentOS 8, dan karena variabel $releasever sistem memiliki nilai berbeda di Alibaba Cloud Linux 3, DNF mengarah ke alamat yang tidak valid dan gagal mengunduh paket RPM.
Catatan Saat DNF menginstal docker-ce, DNF pertama-tama mendapatkan nomor versi dari sistem, yaitu nilai variabel $releasever. Kemudian, DNF mengganti variabel $releasever yang sesuai dalam baseurl repositori. Setelah penggantian, DNF mengambil data relevan dari baseurl baru. Karena nilai variabel $releasever adalah 8 untuk CentOS 8 dan 3 untuk Alibaba Cloud Linux 3, baseurl yang dihasilkan bukan alamat yang diharapkan. Oleh karena itu, DNF tidak dapat menginstal paket perangkat lunak dari alamat yang salah ini.
Resolusi
Pilih salah satu solusi berikut sesuai kebutuhan Anda.
Catatan Contoh ini menggunakan repositori docker-ce. Solusinya serupa untuk repositori DNF lainnya.
Solusi 1: Modifikasi variabel secara manual
Hubungkan ke instance Linux.
Untuk informasi lebih lanjut, lihat Hubungkan ke instance Linux menggunakan password atau kunci.
Jalankan perintah berikut untuk membuka file konfigurasi /etc/yum.repos.d/docker-ce.repo:
vim /etc/yum.repos.d/docker-ce.repo
Tekan tombol i untuk masuk ke mode edit, temukan semua sumber dalam file docker-ce.repo yang berisi enabled=1, dan ganti variabel $releasever dengan 8 dalam baseurl sumber-sumber tersebut.

Tekan tombol Esc, masukkan :wq, dan tekan tombol Enter untuk menyimpan dan menutup file konfigurasi. Anda kemudian dapat menginstal ulang.
Solusi 2: Instal plugin
Anda dapat menginstal plugin dnf-plugin-releasever-adapter untuk secara otomatis mengonversi variabel $releasever dari 3 menjadi 8.
Periksa apakah instance Anda mendukung plugin dnf-plugin-releasever-adapter.
Versi saat ini dari plugin dnf-plugin-releasever-adapter dan repositori pihak ketiga yang didukung secara default tercantum dalam tabel berikut.
Versi Plugin | Repositori yang Didukung | Batasan Plugin |
Versi baru: 1.0-2 Versi lama: 1.0-1.3
Catatan Versi baru dan lama plugin tidak kompatibel. File konfigurasi untuk versi baru bernama releasever_adapter.conf, dan file untuk versi lama bernama releasever-adapter.conf. Peningkatan plugin akan menghapus file konfigurasi asli. Oleh karena itu, setelah Anda meningkatkan, jika Anda perlu mendukung sumber pihak ketiga selain docker-ce dan epel, Anda harus memodifikasi bidang include dalam file konfigurasi baru. Semua pengaturan lain tetap tidak berubah. | docker-ce.repo, epel.repo | Anda dapat menggunakan plugin ini hanya jika kondisi berikut terpenuhi: Sistem operasi adalah Alibaba Cloud Linux 3. Jalankan perintah berikut untuk memastikan repo alinux3-plus ada di sistem: cat /etc/yum.repos.d/AliYun.repo |grep -A3 alinux3-plus
Output yang mirip dengan berikut menunjukkan bahwa repo alinux3-plus ada. 
|
Hubungkan ke instance Linux.
Untuk informasi lebih lanjut, lihat Hubungkan ke instance Linux menggunakan password atau kunci.
Jalankan perintah berikut untuk menginstal plugin dnf-plugin-releasever-adapter:
Catatan Saat ini, plugin secara default secara otomatis mengonversi variabel $releasever di sumber docker-ce dan epel.
dnf install dnf-plugin-releasever-adapter --repo alinux3-plus
Jika tidak ada repositori DNF lain yang perlu dikonversi, Anda dapat langsung menginstal perangkat lunak setelah plugin terinstal. Jika repositori DNF lain memerlukan konversi, konfigurasikan dengan mengikuti langkah-langkah berikut:
Jalankan perintah berikut untuk masuk ke direktori /etc/yum/pluginconf.d/.
cd /etc/yum/pluginconf.d/
Jalankan perintah berikut untuk mengedit file konfigurasi releasever_adapter.conf.
vim releasever_adapter.conf
Tekan tombol i untuk beralih ke mode edit. Jika Anda perlu menambahkan repositori DNF lainnya, tambahkan nama file .repo setelah bidang include dan pisahkan dengan koma.
Catatan File .repo repositori DNF biasanya ditemukan di direktori /etc/yum.repos.d/.
Sistem menampilkan output yang mirip dengan berikut:
[main]
enabled=1
[releasevermapping]
2.1903 = 7
3 = 8
[reposlist]
include=docker-ce.repo, epel.repo
Catatan Berikut penjelasan parameter dalam file:
: Ini adalah bagian kontrol utama plugin yang menentukan apakah plugin diaktifkan. Jika enabled=1, plugin diaktifkan. Jika enabled=0, plugin dinonaktifkan.
[releasevermapping]: Bagian ini menentukan pemetaan untuk $releasever, di mana 2.1903 dipetakan ke 7 dan 3 dipetakan ke 8.
[repolist]: Bagian ini adalah daftar sumber yang akan dimodifikasi. Jika Anda perlu menambahkan sumber lain, tambahkan nama file .repo setelah bidang include dan pisahkan dengan koma.
Secara umum, file .repo mendefinisikan beberapa repositori. Setiap repositori memiliki nama yang harus unik di sistem. Misalnya, file docker-ce.repo berisi repositori seperti [docker-ce-stable] dan [docker-ce-stable-debuginfo].
Setelah selesai mengedit, tekan tombol Esc, masukkan :wq, dan tekan Enter untuk menyimpan dan menutup file konfigurasi.
Jalankan perintah berikut untuk menginstal perangkat lunak docker-ce menggunakan repositori docker-ce, epel, dan repositori baru yang Anda tambahkan:
dnf install docker-ce
Error "bad interpreter" pada Yum
Gejala
Saat menjalankan perintah yum pada instance ECS yang menjalankan CentOS 7, muncul pesan error berikut.
-bash: /usr/bin/yum: /usr/bin/python: bad interpreter: No such file or directory
Penyebab
Perintah yum dapat gagal karena masalah pada instalasi Python, seperti Python tidak terinstal, diganti namanya, atau dipindahkan ke path berbeda.
Catatan yum (Yellow dog Updater, Modified) adalah manajer paket front-end shell untuk Fedora, Red Hat, dan SUSE.
Resolusi
Ikuti langkah-langkah berikut untuk mendiagnosis dan memperbaiki masalah Python.
Hubungkan ke instance Linux.
Untuk informasi lebih lanjut, lihat Hubungkan ke instance Linux menggunakan password atau kunci.
Jalankan perintah berikut untuk memeriksa path yum:
which yum
Output berikut menunjukkan bahwa path yum adalah /usr/bin/yum.
/usr/bin/yum
Jalankan perintah berikut untuk melihat konten file yum:
cat /usr/bin/yum
Output berikut menunjukkan path versi Python yang digunakan.
#!/usr/bin/python
Catatan Topik ini menggunakan path /usr/bin/python sebagai contoh. Gunakan path aktual berdasarkan lingkungan Anda.
Jalankan perintah berikut untuk memeriksa path yang Anda lihat:
ls -al /usr/bin/python
Jika muncul output yang mirip dengan berikut, Python mungkin telah diuninstall, diganti namanya, atau dipindahkan.
ls: cannot access /usr/bin/python: No such file or directory
Jalankan perintah berikut untuk memeriksa apakah file terkait Python ada:
rpm -qa | grep python
Dalam kondisi normal, output yang mirip dengan berikut akan dikembalikan.
python-decorator-3.4.0-3.el7.noarch
libselinux-python-2.5-14.1.el7.x86_64
python-backports-1.0-8.el7.x86_64
python-pyudev-0.15-9.el7.noarch
rpm-python-4.11.3-35.el7.x86_64
python-2.7.5-76.el7.x86_64
.....
Jika file terkait Python ada, file tersebut mungkin telah diganti namanya atau dipindahkan.
Jalankan perintah berikut untuk melihat file terkait Python:
ls -al /usr/bin/python*
Output yang mirip dengan berikut, yang mencakup "/usr/bin/python.bak -> python2", menunjukkan bahwa executable Python telah diganti namanya.
lrwxrwxrwx 1 root root 14 Feb 15 2019 /usr/bin/python-config -> python2-config
lrwxrwxrwx. 1 root root 7 Feb 15 2019 /usr/bin/python.bak -> python2
lrwxrwxrwx. 1 root root 9 Feb 15 2019 /usr/bin/python2 -> python2.7
lrwxrwxrwx 1 root root 16 Feb 15 2019 /usr/bin/python2-config -> python2.7-config
-rwxr-xr-x. 1 root root 7216 Oct 31 2018 /usr/bin/python2.7
-rwxr-xr-x 1 root root 1835 Oct 31 2018 /usr/bin/python2.7-config
Jalankan perintah berikut untuk mengganti nama /usr/bin/python.bak kembali menjadi /usr/bin/python:
mv python.bak python
Jalankan kembali perintah yum. Jika pesan error tidak muncul lagi, masalah telah terselesaikan.
Jika tidak ada paket terkait Python yang terdaftar, Python mungkin telah diuninstall.
Anda tidak dapat menggunakan perintah yum yang rusak untuk memperbaiki dirinya sendiri. Unduh secara manual paket RPM Python yang diperlukan dari mirror vault CentOS menggunakan tool seperti curl, lalu instal paket tersebut menggunakan perintah rpm:
rpm -ivh --replacepkgs python-2.7.5-*.rpm
Jalankan kembali perintah yum. Jika pesan error sebelumnya tidak muncul lagi, masalah telah diperbaiki.