Skip to the content.

Quản lý Package

1.Một số khái niệm liên quan đến package

repository

Rất nhiều phầm mềm và tài liệu cho Linux sẵn có ở dạng package ở trong một hay nhiều repository. Các package được lưu trong repository thường được kiểm tra và rất dễ cài đặt với giao diện đồ họa hay câu lệnh.

.deb package

Debian, ubuntu, Mint, và tất cả các bản phân phối linux dựa trên Debian sử dụng .deb package. Để quản lý package trên những hệ thống này, bạn cần sử dụng aptitude hay apt-get, cả hai tool đều là front-end cho dpkg.

.rpm packages

Redhat, Fedora, Centos, OpenSUSE, … sử dụng .rpm package. Công cụ để quản lý ứng dụng trên các hệ thống này là yum và rpm.

Phụ thuộc

Một số package cần có nhứng package khác để hoạt động. Những công cụ như aptitude, apt-getyum là sẽ cài tất cả những package phụ thuộc mà bạn cần. Nhưng khi sử dụng dpkg hay rpm để cài hoặc build source code thì bạn sẽ cần cài thêm các package phụ thuộc nếu cần.

Opensource

Các repository này chứa rất nhiều phần mềm nguồn mở độc lập. Thông thường mã nguồn được tùy chỉnh để tích hợp tốt hơn với phân phối của bạn. Hầu hết các bản phân phối cũng cung cấp mã nguồn được sửa đổi này dưới dạng một package trong một hoặc nhiều source repository. Bạn có thể tự do truy cập trang web của dự án (samba.org, apache.org, github.com, …) để tải xuống mã nguồn vanilla .

2.deb package management

3.apt-get

apt-get update

Lệnh apt-get update là lệnh giúp tải xuống tên, phiên bản và mô tả ngắn về các gói có sắn trên tất cả các repository được cấu hình trên máy của bạn.

apt-get upgrade

Lệnh apt-get upgrade là lệnh giúp cập nhật tất cả những phần mềm đang được cài đặt trên máy.

apt-get clean

apt-get giữ lại một bản copy của những package đã tải xuống ở trong /var/cache/apt/archives:

lamth@m4700:~$ ls /var/cache/apt/archives/|head
apt_1.6.11_amd64.deb
apt-transport-https_1.6.11_all.deb
apt-utils_1.6.11_amd64.deb
augeas-lenses_1.10.1-2_all.deb
bash_4.4.18-2ubuntu1.1_amd64.deb
binutils_2.30-21ubuntu1~18.04.2_amd64.deb
binutils-common_2.30-21ubuntu1~18.04.2_amd64.deb
binutils-x86-64-linux-gnu_2.30-21ubuntu1~18.04.2_amd64.deb
bridge-utils_1.5-15ubuntu1_amd64.deb
cabextract_1.6-1.1_amd64.deb

Dùng lệnh apt-get clean để xóa các file .deb từ thư mục này.

Là lệnh dùng để tìm kiếm package với có sẵn.

apt-get install

Là lệnh dùng để cài đặt một hay nhiều úng dụng bằng cách thêm tên đằng sau lệnh này.

apt-get remove

Là lệnh dùng để gỡ cài đặt một hay nhiều ứng dụng bằng cách thêm tên vào sau lệnh. Sau khi xóa ứng dụng có thể sẽ vẫn còn lưu cấu hình của ứng dụng đó trên hệ thông khi dùng apt-get remove

apt-get purge

apt-get purge là lệnh giúp xóa ứng dụng và xóa tất cả những file cấu hình liên quan đến ứng dụng.

/etc/apt

Các file cấu hình của apt, apt-get, aptitude đều nằm ở /etc/apt, nếu thay đổi cấu hình ở đây sẽ thay đổi cấu hình cho tất cả ứng dụng đó.

/etc/apt/source.list

File /etc/apt/resource.list là file chứa danh sách địa chỉ http hay ftp của các kho lưu trữ các package có thể cài đặt, được sử dụng bởi apt hay apt-get. Ví dụ:

lamth@m4700:~$ cat  /etc/apt/sources.list |grep -v ^# | grep -v ^$
deb http://vn.archive.ubuntu.com/ubuntu/ bionic main restricted
deb http://vn.archive.ubuntu.com/ubuntu/ bionic-updates main restricted
deb http://vn.archive.ubuntu.com/ubuntu/ bionic universe
deb http://vn.archive.ubuntu.com/ubuntu/ bionic-updates universe
deb http://vn.archive.ubuntu.com/ubuntu/ bionic multiverse
deb http://vn.archive.ubuntu.com/ubuntu/ bionic-updates multiverse
deb http://vn.archive.ubuntu.com/ubuntu/ bionic-backports main restricted universe multiverse
deb http://security.ubuntu.com/ubuntu bionic-security main restricted
deb http://security.ubuntu.com/ubuntu bionic-security universe
deb http://security.ubuntu.com/ubuntu bionic-security multiverse
deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable
deb [arch=amd64] https://packages.microsoft.com/repos/vscode stable main

4.rpm

Red Hat package managerment có thể được sử dụng với lệnh rpm.

rpm -qa

Là lệnh dùng để liệt kê các package đã được cài đặt trên hệ thống.

rpm -q

Là lệnh dùng để kiểm tra xem một package đã được cài hay chưa.

rpm -Uvh

Là lệnh dùng để cài đặt hay cập nhật một package.

rpm -e

Là lệnh dùng để xóa một package.

/var/lib/rpm

Thư mục /var/lib/rpm là database lưu trữ các thông tin về những package mà đã được cài đặt (qua rpm). Nó theo dõi tất cả các file nên sẽ cho phép gỡ cài đặt hoàn toàn một phần mềm.

5.yum

yumYellowdog Update, Modified là một công cụ giúp làm việc với những package .rpm dễ hơn . Nó được cài mặc định trên Fedora và Redhat từ bản 5.2.

yum list

Lệnh yum list là lệnh giúp liệt kê các package có sẵn trên các repository của hệ thống.

Để tìm kiếm package sử dụng một chuỗi có trong tên hay mô tả của package đó sử dụng yum search $string.

[root@cen3 ~]# yum search docker
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.vhost.vn
 * extras: mirrors.vhost.vn
 * updates: mirrors.vhost.vn
============================= N/S matched: docker ==============================
cockpit-docker.x86_64 : Cockpit user interface for Docker containers
docker-client.x86_64 : Client side files for Docker
docker-client-latest.x86_64 : Client side files for Docker
docker-common.x86_64 : Common files for docker and docker-latest
docker-distribution.x86_64 : Docker toolset to pack, ship, store, and deliver
                           : content
docker-latest-logrotate.x86_64 : cron job to run logrotate on Docker containers

yum provides

Là lệnh dùng để tìm kiếm package mà chứa một file nào đó. ví dụ

[root@cen3 ~]# yum provides /bin/top 
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.vhost.vn
 * extras: mirrors.vhost.vn
 * updates: mirrors.vhost.vn
procps-ng-3.3.10-17.el7.x86_64 : System and process monitoring utilities
Repo        : @anaconda
Matched from:
Filename    : /bin/top

yum install

yum install $package là lệnh dùng để cài đặt một hay nhiều package và các package phụ thuộc nếu có.

yum update

Lệnh yum update là lệnh giúp tại và cập nhật tất cả các package đã được cài đặt. Nếu muốn cập nhật chỉ một package thì thêm tên package vào sau câu lệnh. Lệnh này tương đương lệnh apt upgrade.

yum check-update

Là lệnh sẽ đọc và làm mới danh sách các package có sẵn trên các repo, tương đương với lệnh apt update.

yum group

Các package có thể được tập hợp trong một nhóm nào đó. Để liệt kê các nhóm có trên repo được cài đặt, dùng lệnh yum grouplist Ví dụ

[root@cen3 ~]# yum grouplist
Loaded plugins: fastestmirror
There is no installed groups file.
Maybe run: yum groups mark convert (see man yum)
Loading mirror speeds from cached hostfile
 * base: mirrors.vhost.vn
 * extras: mirrors.vhost.vn
 * updates: mirrors.vhost.vn
Available Environment Groups:
   Minimal Install
   Compute Node
   Infrastructure Server
   File and Print Server
   Basic Web Server
   Virtualization Host
   Server with GUI
   GNOME Desktop
   KDE Plasma Workspaces
   Development and Creative Workstation
Available Groups:
   Compatibility Libraries
   Console Internet Tools
   Development Tools
   Graphical Administration Tools
   Legacy UNIX Compatibility
   Scientific Support
   Security Tools
   Smart Card Support
   System Administration Tools
   System Management
Done

Để cài đặt một nhóm các package sử dụng lệnh yum groupinstall

Các file cấu hình

alien

alien là một phần mềm thử nghiệm dùng để chuyển đổi giữa dạng .rpm sang .deb, ngược lại( và những dạng khác)

ví dụ

paul@barry:~$ ls -l netcat*
-rw-r--r-- 1 paul paul 123912 2009-06-04 14:58 netcat-0.7.1-1.i386.rpm
paul@barry:~$ alien --to-deb netcat-0.7.1-1.i386.rpm
netcat_0.7.1-2_i386.deb generated
paul@barry:~$ ls -l netcat*
-rw-r--r-- 1 paul paul 123912 2009-06-04 14:58 netcat-0.7.1-1.i386.rpm
-rw-r--r-- 1 root root 125236 2009-06-04 14:59 netcat_0.7.1-2_i386.deb

6.YUM vs RPM

| rpm | yum | |—–|—–| | Nếu muốn cài một package thì cần cài tất cả những package phụ thuộc trước | Khi cài một package tự tìm kiếm và cài đặt các package phụ thuộc| |Không thể tự động cập nhật các phần mềm| Có thể cập nhật phiên bản mới của ứng dụng với lệnh yum install upgrade| |Không thể kết nối đến repo online| Có thể kết nối đến các repo online và tải các package từ đó|