AUR trong Arch Linux là gì và bạn có nên sử dụng nó không?

Tác giả sysadmin, T.Sáu 22, 2023, 08:57:37 SÁNG

« Chủ đề trước - Chủ đề tiếp »

0 Thành viên và 1 Khách đang xem chủ đề.

AUR trong Arch Linux là gì và bạn có nên sử dụng nó không?


Kho lưu trữ AUR của Arch Linux chứa phần mềm dựa trên cộng đồng, an toàn để sử dụng nếu bạn thực hiện một số biện pháp phòng ngừa đơn giản. Ngay cả khi bạn không hiểu shell scripting, vẫn có những chỉ số mà bạn có thể sử dụng để đánh giá liệu một gói có an toàn hay không.


AUR là một trong những viên ngọc quý trên vương miện của Arch Linux, cung cấp hàng nghìn gói phần mềm bổ sung. Nhưng kho lưu trữ do người dùng điều khiển này có an toàn để sử dụng hay bạn nên tránh sử dụng nó?

1. AUR là gì?

AUR ( Kho lưu trữ người dùng Arch ) là một kho lưu trữ phần mềm do cộng đồng điều khiển, cung cấp tới 85.000 gói phần mềm cho người dùng Arch Linux. Không giống như các kho Arch khác như kho lõi, kho bổ sung và multilib, AUR không lưu trữ các gói sẵn sàng để cài đặt. Trên thực tế, nó hoàn toàn không lưu trữ các tệp nhị phân hoặc phần mềm đóng gói.

Các tệp xây dựng gói lưu trữ AUR, được gọi là PKGBUILD. Đây là các tập lệnh shell được chạy bởi makepkgcông cụ Arch. Khi makepkgchạy, nó sẽ tìm một tệp có tên "PKGBUILD". Nếu tìm thấy, nó sẽ mở ra và làm theo hướng dẫn bên trong để tạo kho lưu trữ gói phần mềm trên máy tính của bạn. Nếu bạn đã quen với việc biên dịch trên dòng lệnh, tệp PKGBUILD và makepkghoạt động cùng nhau theo cách tương tự với MAKEFILE và maketiện ích.

Hướng dẫn PKGBUILD tải xuống các tệp mã nguồn và các tệp khác được yêu cầu để tạo kho lưu trữ gói. Công cụ này pacmanđược gọi tự động để cài đặt phần mềm từ kho lưu trữ gói.

Có nguy cơ gây ra một số nhầm lẫn, một số gói AUR cung cấp các tệp nhị phân được biên dịch sẵn. Nhưng những tệp nhị phân đó không được lưu trữ trong AUR, chúng được lưu trữ ở nơi khác trên internet. Mục nhập AUR cho các gói đó chỉ chứa tệp PKGBUILD tải tệp nhị phân được biên dịch sẵn xuống máy tính của bạn.

AUR cho phép mọi người tạo PKGBUILD cho một phần mềm mà họ muốn cung cấp cho những người dùng Arch khác. Đây có thể là các gói nguồn mở hoặc đóng hoặc thậm chí là phần mềm thương mại. Các gói AUR nhận đủ phiếu bầu của người dùng có thể được thăng cấp lên kho lưu trữ Arch thông thường được gọi là kho lưu trữ cộng đồng.

Vấn đề với AUR trở nên rõ ràng khi bạn giải quyết vấn đề cơ bản. Đó là tập hợp các tập lệnh từ những người dùng ngẫu nhiên trên internet. Và họ muốn bạn chạy chúng trên máy tính của bạn.

Để giảm thiểu rủi ro, các tập lệnh đã tải lên được xem xét bởi các tình nguyện viên có trình độ, được tôn trọng, được gọi là người dùng đáng tin cậy. Những người dùng đáng tin cậy kiểm tra và kiểm tra PKGBUILDS, đồng thời xóa mọi lỗi chứa lỗi nguy hiểm hoặc ý định xấu.

2. Sự nguy hiểm của việc sử dụng AUR

Đây là một trường hợp rất hiếm xảy ra, nhưng đôi khi mọi thứ lọt qua mạng, bất chấp sự cẩn trọng của những người dùng đáng tin cậy. Trở lại năm 2015, một  tập lệnh  Steam của Valve Software  đã xóa thư mục chính của bạn  nếu trước đó bạn đã chuyển thư mục Steam sang một vị trí mới.

Nguy hiểm hơn là sự cố vào năm 2005, khi một gói AUR mồ côi đã bị chiếm đoạt bởi một người bảo trì mới, người này đã cố tình thêm  mã độc vào tệp PKGBUILD. Những ví dụ này đã cũ và không phổ biến, nhưng những điều tương tự có thể xảy ra lần nữa.

Tất nhiên, nếu đủ kỹ năng, bạn có thể tự mình xem lại nội dung của tệp PKGBUILD. Tính minh bạch này là một trong những điểm mạnh của AUR, nhưng nó đòi hỏi phải có đủ kiến thức về tập lệnh để hưởng lợi từ nó. Và điều đó chỉ bao gồm chính tệp PKGBUILD. Nếu nó kéo vào một lượng lớn mã nguồn ứng dụng, thì về mặt lý thuyết, điều đó cũng nên được kiểm tra.

Các mối nguy hiểm khác khi sử dụng AUR là dựa trên phân phối. Không phải tất cả các bản phân phối dựa trên Arch đều đủ giống Arch để AUR hoạt động hoàn hảo. AUR giả định rằng nó đang được cài đặt trên Arch Linux chính hãng và một phiên bản được cập nhật và vá lỗi đầy đủ. Ví dụ, Manjaro  không chính thức hỗ trợ AUR mặc dù nó dựa trên Arch.

Tuy nhiên, do bản phân phối của bạn hỗ trợ AUR, bạn có thể làm gì để đảm bảo rằng bạn đang sử dụng nó một cách an toàn nhất có thể, cho dù bạn có hiểu mã nguồn và tập lệnh shell hay không?

3. An toàn AUR: Kiểm tra chi tiết gói hàng và danh tiếng

Ngay cả khi không có đánh giá mã, bạn vẫn có thể thực hiện các bước để quyết định xem mình có thể tin tưởng gói AUR hay không.

3.1. Tìm gói hàng của bạn trên AUR

Có một trang trong AUR cho mỗi gói. Trang web của gói mô tả gói, gói phụ thuộc nào, gói nào phụ thuộc vào gói và thông tin hữu ích khác. Bắt đầu cuộc điều tra của bạn bằng cách  truy cập AUR  và tìm kiếm gói hàng của bạn.


3.2. Danh tiếng của nó là gì?

Các gói có thể được bình chọn bởi người dùng và cũng có điểm số phổ biến cho từng gói. Càng nhiều phiếu bầu và mức độ phổ biến càng cao thì càng tốt. Nó có nghĩa là gói này nổi tiếng và được sử dụng rộng rãi. Nói cách khác, nó là một gói có uy tín.


Danh tiếng của gói là một dấu hiệu tốt về độ tin cậy của nó. Càng nhiều người sử dụng và bỏ phiếu cho nó, bạn càng cảm thấy thoải mái hơn khi sử dụng nó.

3.3. Kiểm tra ngày hoạt động

Trong phần "Chi tiết gói", bạn sẽ thấy phiếu bầu, điểm phổ biến và hai ngày. Một là khi các gói được đưa vào AUR lần đầu tiên và thứ hai là khi gói được cập nhật lần cuối.


Ngày "Cập nhật lần cuối" sẽ cho bạn biết liệu gói có đang được bảo trì tích cực hay không. Các gói đã không hoạt động trong một thời gian dài nên được xử lý thận trọng.

3.4. URL ngược dòng có phải là Vị trí hợp lệ không?

Ngoài ra, hãy kiểm tra "URL ngược dòng" và xác minh rằng nó dẫn đến một trang web hoặc kho lưu trữ mã hợp lệ cho gói hoặc dự án. Nếu không, có gì đó không ổn.


3.5. Đọc bình luận của người dùng

Có nhận xét của người dùng ở cuối mỗi trang AUR. Chúng có thể mở rộng trên nhiều trang. Xem những người dùng khác đang nói gì về gói và loại câu hỏi họ hỏi. Cũng xem những giải pháp được cung cấp cho các vấn đề được nêu ra. Có bất kỳ ý kiến ����gần đây? Gói này vẫn có cơ sở người dùng đang hoạt động chứ?

3.6. Đăng ký và tham gia

Nếu bạn đăng ký trên AUR và tạo một tài khoản miễn phí, bạn sẽ có thể để lại nhận xét và đặt câu hỏi. Ngoài ra, hãy sử dụng các tài nguyên khác như diễn đàn và subreddits để hỏi về gói.

Ngay cả khi bạn không hiểu shell script, vẫn có một số điều bạn có thể kiểm tra.

4. Kiểm tra nội dung của PKGBUILD và các tệp khác

Một cách phổ biến để truy cập AUR là sử dụng dòng lệnh "Trợ giúp AUR", chẳng hạn như yay, nhưng bạn cũng có thể sử dụng AUR theo cách thủ công.

Những người trợ giúp AUR tốt cung cấp cho bạn tùy chọn kiểm tra tệp PKGBUILD, tạm dừng cài đặt nếu bạn không muốn tiếp tục. Trong quy trình thủ công, bạn tìm kiếm gói trên AUR và tải xuống tệp PKGBUILD và kiểm tra nó trước khi sử dụng. Nếu bạn vui lòng tiếp tục sau khi đã xem xét nó, bạn sẽ chạy makepkgthủ công.

Bạn nên cài đặt ít nhất một gói theo cách thủ công để biết cơ chế hoạt động của trình trợ giúp AUR trong nền. Chúng tôi sẽ sử dụng  trình trợ giúp yay AUR làm ví dụ.

Gói này được gửi lần đầu tiên vào năm 2016 và được cập nhật lần cuối vào tháng 5 năm 2023. Tại thời điểm viết bài, đó là một bản cập nhật rất gần đây. Cũng đáng chú ý là người gửi ban đầu, người bảo trì hiện tại và người cuối cùng đóng gói phần mềm đều là cùng một người. Sự liên tục đó là một dấu hiệu tốt.

Nhấp vào liên kết URL "Git Clone URL" trong phần "Chi tiết gói" để sao chép nó vào khay nhớ tạm.

Trong cửa sổ đầu cuối, nhập "git clone", một dấu cách, sau đó nhấn Shift+Ctrl+V để dán URL vào dòng lệnh. Nhấn "Enter" để bắt đầu tải xuống.

Mã nguồn [Chọn]
git clone https://aur.archlinux.org/yay.git

Khi quá trình tải xuống hoàn tất, hãy chuyển sang thư mục "yay" mới.

Mã nguồn [Chọn]
cd yay

Hãy xem chúng ta có những tệp nào.

Mã nguồn [Chọn]
ls

Có một tệp duy nhất, tệp PKGBUILD. Thường có một hoặc hai tệp trợ giúp bổ sung. Nhìn qua những quá. Chúng tôi sẽ sử dụng lessđể đọc tập tin duy nhất của chúng tôi.

Mã nguồn [Chọn]
less PKGBUILD

5. Tệp PKGBUILD sử dụng URL nào?

Tệp PKGBUILD được định dạng tốt tuân theo các quy ước sẽ tạo các biến để giữ các URL mà nó sử dụng. Điều này cung cấp cho chúng tôi một danh sách gọn gàng ở đầu tệp các URL mà PKGBUILD sẽ tham chiếu. Trong trường hợp này, chỉ có một.


Chúng ta có thể thấy rằng nó đang trỏ đến trang GitHub của yaydự án.

Trang GitHub thuộc sở hữu của người dùng có cùng tên với người bảo trì đã được liệt kê trên trang AUR cho gói này. Đây là hai dấu hiệu tốt cho thấy đây là một gói an toàn.

Nhưng chúng ta sẽ tiếp tục và nhìn sâu hơn một chút.

5.1. Tìm lệnh tải xuống

Sử dụng tính lessnăng tìm kiếm để tìm kiếm tệp để sử dụng wgethoặccurl. Cả hai công cụ này đều có thể được sử dụng để truy xuất các tệp từ xa. Một PKGBUILD hoạt động tốt sẽ không cần hoạt động như vậy.

Nếu bạn tìm thấy bất kỳ sự cố nào, hãy coi chúng là dấu hiệu cảnh báo và không cài đặt gói cho đến khi bạn chắc chắn rằng nó lành tính. URL mà các lệnh wgethoặc curlđang tham chiếu là gì? Họ có hợp pháp và liên quan đến gói không?

Nếu bạn có thể nhận được xác nhận từ một nguồn đáng tin cậy rằng PKGBUILD đáng tin cậy và nó chỉ được viết theo cách không tuân theo các quy ước, thì bạn vẫn có thể chọn cài đặt nó.

5.2. Tìm kiếm rm, mv và các lệnh nguy hiểm khác

Tương tự như vậy, tệp PKGBUILD không cần chứa các lệnh rmhoặc mv, chúng cũng không cần tham chiếu bất kỳ thứ gì trong thư mục "/dev". Nếu PKGBUILD trực tiếp gọi pacmanhoặc đề cập đến systemctl, systemdhoặc bất kỳ thành phần hệ thống quan trọng nào khác chẳng hạn như grub, hãy coi tệp PKGBUILD là tệp nguy hiểm và không chạy tệp đó.

Bạn có thể thực hiện các bước chúng tôi đã sử dụng cho đến nay ngay cả khi bạn không thể đọc các tập lệnh shell. Nếu bạn biết một số shell scripting, bạn có thể xem lại mã thực tế trong PKGBUILD.

5.3. Hãy cảnh giác với mã bị xáo trộn

Những người viết mã độc hại thường cố gắng che giấu ý định của nó bằng cách làm xáo trộn nó. Họ sử dụng cú pháp tối giản, ngắn gọn, không thể hiểu được nên rất khó để giải mã những gì họ đang cố gắng thực hiện. Nếu bạn thấy bất kỳ dòng nào sử dụng chuyển hướng hoặc gọi sedhoặc awk, hãy coi chúng là đáng ngờ.

Sao chép những dòng đó và thả chúng vào một trình phân tích cú pháp trực tuyến chẳng hạn như giải   Đăng nhập để xem liên kết sẽ giải nén chúng để bạn có thể thấy những gì họ thực sự làm. Nếu bạn đang phải đối mặt với một đống dấu ngoặc, dấu chấm phẩy và dấu và dày đặc, bạn nên sử dụng trình phân tích cú pháp trực tuyến để kiểm tra kỹ xem bạn đã diễn giải chính xác những gì dòng đó đang cố thực hiện chưa. Nhưng nói chung, mã khó đọc là một dấu hiệu cảnh báo.

5.4. Thư mục /home của bạn nên là lâu đài của bạn

PKGBUILD biên dịch và xây dựng diễn ra trong một chrootmôi trường.

Đây là những hệ thống tệp nhỏ bị cô lập cho phép các nhà phát triển xử lý hộp cát bằng cách giới hạn quyền truy cập của họ vào phần còn lại của hệ thống tệp trên máy tính của bạn và giảm quyền truy cập của họ vào các lệnh hệ thống khác.

Nếu PKGBUILD đang trực tiếp thao túng thư mục chính của bạn, hãy coi đó là cờ cảnh báo. Đảm bảo bạn hoàn toàn hiểu nó đang làm gì trước khi quyết định chạy nó.

6. Bạn có thể giúp những người dùng AUR khác

Với các gói cực kỳ phổ biến, bạn rất có thể an toàn. Do số lượng người dùng cao nên các sự cố được phát hiện nhanh hơn và được báo cáo nhanh hơn. Bạn có thể thực hiện phần việc của mình bằng cách báo cáo bất kỳ vấn đề nào bạn tìm thấy và ủng hộ các gói tốt để cải thiện danh tiếng của họ.

Nếu bạn thấy có vấn đề với một gói khiến bạn không muốn cài đặt nó, bạn có thể thấy mình bị ràng buộc vì bạn cần gói đó. Một cách phía trước là hỏi trên các diễn đàn về các đề xuất về các gói khác có thể đáp ứng nhu cầu cụ thể đó.

Linux thường có nhiều cách để lột da bất kỳ con mèo nào.