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
, community
và testing
. 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
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
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
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