Dạo chơi với Alpine Linux

Alpine Linux là bản phân phối Linux dựa trên musl và BusyBox, được thiết kế bảo mật, đơn giản và hiệu quả về tài nguyên. Nó sử dụng OpenRC cho hệ thống init.

Alpine nổi lên sau khi Docker được phát triển bởi vì nó nhỏ và nhẹ, thường được sử dụng để làm docker image.

Alpine Repository

Giống như các distro Linux khác, Alpine sử dụng repo để cài đặt và cập nhật gói theo các phiên bản của Alpine. Các phiên bản ổn định của Alpine được đánh tên theo số ví dụ 3.13 3.12. Ứng với mỗi phiên bản chính thức Alpine duy trì 3 repo main, communitytesting. Ngoài ra, Alpine còn duy trì một phiên bản đang phát triển edge cùng với nó là repo riêng.

Alipine lưu thông tin các repo ở đường dẫn sau /etc/apk/repositories. Trong lúc cài đặt, bạn có thể thiết lập đường dẫn cho repo mặc định. Tuy nhiên, nếu muốn chỉnh sửa thông số mặc định đó bạn có thể sử dụng lệnh sau:

setup-apkrepos

Chỉnh sửa

vi /etc/apk/repositories
chỉnh sửa file /etc/apk/repositories

chỉnh sửa file /etc/apk/repositories

Quản lý gói trên Alpine Linux

  • Cài đặt gói: apk add <tên gói>

  • Gỡ bỏ gói: apk del <tên gói>

  • Khởi chạy một chương trình: rc-service <tên chương trình> start

  • Dừng chương trình đang chạy rc-service <tên chương trình> stop

  • Khởi động chương trình cùng hệ thống rc-update add <tên chương trình>

  • Xóa khởi động chương trình cùng hệ thống rc-update del <tên chương trình>

Cài đặt gói trong một repo được chỉ định:

Để tìm kiếm tên một gói nào đó có hiện hữu trên Alpine Linux hay không bạn có thể vào trang sau

Để cài đặt gói trong một repo được chỉ định, bạn thực hiện câu lệnh cú pháp như sau:

apk add <tên gói>@<tên repo>

Ví dụ: Cài đặt chromium trong repo community

apk add chromium@community

Cài đặt gói theo phiên bản cụ thể

apk add <tên gói>==<phiên bản>
apk add bash==4.3.33-r0

Quản lý gói trên Alpine-Linux bỏ rơi những gói cũ khi chúng có những phiên bản mới hơn. Đôi khi bạn cần phải cài đặt gói cũ trên phiên bản Alpine mới, câu lệnh được thực hiện tương tự như sau cho việc cài đặt nodejs 12 trên Alpine 3.13.

apk add --no-cache --update-cache --repository http://dl-cdn.alpinelinux.org/alpine/v3.12/main nodejs==12.22.1-r0

Login SSH với tài khoản root

Sau khi cài đặt xong Alpine Linux bạn không thể login SSH với tài khoản root vì Alpine mặc định không cho login bằng tài khoản root, do đó bạn phải chỉnh sửa file cấu hình ssh để cho phép login với tài khoản root:

vi /etc/ssh/sshd_config

Tìm đến dòng sau và sửa thành:

PermitRootLogin yes

build-base trên Alpine

Tương tự trên Debian/Ubutu có gói build-essential thì Alpine có gói build-base

apk --no-cache --update add build-base 

Tường lửa ufw

Sử dụng tường lửa Uncomplicated Firewall

Cài đặt ip6tables và ufw sử dụng repo community

apk add ip6tables ufw@community

Kích hoạt và khởi cùng với hệ thống trong trường hợp reboot. Ngoài ra cho phép SSH

ufw allow ssh
rc-update add ufw
ufw enable

Timezone trên linux Alpine

Trên Alpine timezone package không được cài mặc định, do đó bạn cần phải cài đặt nó trước khi thiết lập timezone

apk update
apk add tzdata

Liệt kê các timezone

ls /usr/share/zoneinfo

Ví dụ set timezone Ho Chi Minh

ln -fs /usr/share/zoneinfo/Asia/Ho_Chi_Minh /etc/localtime

Cập nhật phiên bản Alpine mới nhất

Để cập nhật Alpine lên phiên bản mới nhất, bạn cần chỉnh sửa repo của Alpine trỏ về phiên bản mới nhất, sử dụng câu lệnh sau:

sudo setup-apkrepos
Chỉnh sửa repo trước khi cập nhật

Chỉnh sửa repo trước khi cập nhật

Sửa 2 dòng bên dưới với phiên bản Alpine mới nhất (ở đây là 3.14) và comment bằng cách thêm dấu # trước những dòng còn lại

http://dl-cdn.alpinelinux.org/alpine/v3.14/main
http://dl-cdn.alpinelinux.org/alpine/v3.14/community
Repo sau khi chỉnh sửa

Repo sau khi chỉnh sửa

Thực hiện lệnh

# sudo apk update
fetch http://dl-cdn.alpinelinux.org/alpine/v3.14/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.14/community/x86_64/APKINDEX.tar.gz
v3.14.2-44-g417ec972c6 [http://dl-cdn.alpinelinux.org/alpine/v3.14/main]
v3.14.2-45-gef2553a9e6 [http://dl-cdn.alpinelinux.org/alpine/v3.14/community]
OK: 15105 distinct packages available

Chạy lệnh

sudo apk upgrade --available

Khởi động lại tất cả dịch vụ đã được update và khởi động lại hệ điều hành

# sudo sync
# sudo reboot

Sau khi khởi động lại kiểm tra phiên bản Alpine bằng câu lệnh:

cat /etc/alpine-release 

Theo: https://ostechnix.com/how-to-upgrade-alpine-linux-to-latest-version/

Tham khảo thêm về Alpine

Sau cùng, nếu bạn mới bắt đầu và tự hỏi có thể làm được gì với Alpine Linux thì trang wiki là không thể bỏ qua