Thứ tư, 14/01/2015 | 00:00 GMT+7

Giới thiệu về Bảo trì FreeBSD Cơ bản

Khi quản lý các server FreeBSD, điều quan trọng là phải hiểu các quy trình bảo trì cơ bản sẽ giúp bạn giữ cho hệ thống của bạn hoạt động tốt.

Trong hướng dẫn này, ta sẽ đề cập đến các quy trình cơ bản cần thiết để giữ cho server của bạn luôn được cập nhật và hoạt động bình thường. Ta sẽ trình bày cách cập nhật hệ điều hành cơ bản mà group FreeBSD duy trì. Ta cũng sẽ thảo luận về cách cập nhật và duy trì phần mềm tùy chọn được cài đặt thông qua hệ thống cổng hoặc gói.

Nếu bạn cần trợ giúp để bắt đầu với FreeBSD, hãy làm theo hướng dẫn của ta tại đây .

Cập nhật Hệ điều hành FreeBSD Cơ bản

Một điều quan trọng cần nhận ra khi làm việc với FreeBSD là hệ điều hành cơ sở được xây dựng và quản lý tách biệt với phần mềm khác trên hệ thống. Điều này mang lại một số lợi ích và cho phép group FreeBSD kiểm tra cẩn thận và phát triển chức năng cốt lõi của hệ thống.

Lưu ý : Đọc ghi chú ở cuối phần này về một lỗi trong quy trình cập nhật hiện tại trước khi tiếp tục.

Khi bạn bắt đầu sử dụng server của bạn , rất có thể các bản cập nhật bảo mật đã được xuất bản cho hệ thống cơ sở. Để truy vấn server của dự án FreeBSD cho các bản cập nhật này, hãy download các file mới nào và cài đặt chúng trên hệ thống của bạn, hãy nhập lệnh sau:

sudo freebsd-update fetch install 

Nếu bạn đang thực hiện cài đặt DigitalOcean FreeBSD, sudo được bao gồm theo mặc định. Nếu bạn đang sử dụng một nền tảng khác, bạn có thể cần phải cài đặt sudo thông qua hệ thống cổng hoặc gói hoặc su để root.

Lệnh freebsd-update là tiện ích quản lý phần mềm trong hệ điều hành cơ sở. Lệnh con fetch download mọi bản cập nhật mới, trong khi lệnh con install áp dụng chúng cho hệ thống đang hoạt động.

Nếu có bản cập nhật, bạn sẽ thấy danh sách phần mềm bị ảnh hưởng bởi bản cập nhật. Bạn có thể cuộn qua bằng mũi tên xuống hoặc lướt qua trang bằng phím cách. Khi bạn đến cuối danh sách, các bản cập nhật sẽ được áp dụng.

Mọi phần mềm chạy lâu đã được cập nhật cần được khởi động lại để sử dụng version mới. Nếu bạn thấy bất kỳ bản cập nhật nào cho kernel , bạn cần phải khởi động lại để ngăn chặn hành vi lạ. Bạn có thể thực hiện việc này bằng lệnh :

sudo shutdown -r now 

QUAN TRỌNG: Lỗi trong quy trình cập nhật

Hiện tại, có một lỗi ngược dòng với quy trình cập nhật FreeBSD đang được thực hiện tại đây . Lỗi này dẫn đến việc hệ thống bị treo khi khởi động lại theo quy trình cập nhật.

Có hai cách để đối phó với tình huống này, cách thứ hai được ưu tiên trong hầu hết các trường hợp.

Đầu tiên là chỉ cần buộc một chu kỳ năng lượng cho server bằng console DigitalOcean. Điều này sẽ dẫn đến việc server khởi động lại mạnh mẽ và không đúng quy trình, nhưng khi bạn khởi động lại, nó sẽ sử dụng môi trường được cập nhật.

Một giải pháp thay thế an toàn hơn là tắt cập nhật mềm hoặc ghi log các cập nhật mềm trên hệ thống file trước khi cập nhật. Cập nhật mềm là cốt lõi của vấn đề, vì vậy điều này sẽ ngăn chặn việc khởi động lại bị treo. Đây là một thủ tục mở rộng hơn một chút và sẽ thêm một khoảng thời gian để khôi phục bất kỳ quá trình khôi phục nào mà đĩa của bạn yêu cầu trong tương lai (cho đến khi bạn bật lại các tính năng này).

Để làm điều này, trước khi bạn áp dụng bất kỳ bản cập nhật nào, hãy khởi động vào chế độ một user . Bạn có thể thực hiện việc này bằng lệnh :

sudo nextboot -o "-s" -k kernel sudo reboot 

Tiếp theo, vào console DigitalOcean cho Server và nhấp vào nút “Quyền truy cập console ” để truy cập console web. Nhấn “Enter” khi quá trình khởi động kết thúc để có được phiên shell cứu. Từ đây, bạn có thể tắt cập nhật mềm hoặc ghi log cập nhật mềm.

Để tắt hoàn toàn cập nhật mềm, hãy nhập:

tunefs -n disable / 

Nếu bạn chỉ muốn tắt tính năng ghi log cập nhật mềm, một thỏa hiệp ít nghiêm trọng hơn, bạn có thể sử dụng lệnh này để thay thế:

tunefs -j disable / 

Sau khi hoàn tất, bạn có thể bắt đầu khởi động lại để khởi động lại server ở chế độ nhiều user đầy đủ :

reboot 

Sau khi khởi động xong, bạn có thể tìm nạp và áp dụng các bản cập nhật FreeBSD bằng quy trình được mô tả ở trên mà không bị treo khi khởi động lại.

Ta khuyên bạn nên theo dõi báo cáo lỗi để có thể hoàn nguyên những thay đổi này khi có bản sửa lỗi ngược dòng.

Tự động kiểm tra cập nhật

Có thể cấu hình hệ thống của bạn để tự động kiểm tra các bản vá bảo mật này hàng ngày bằng cách cài đặt cron job. Tiện ích freebsd-update có một lệnh con cron đặc biệt dành riêng cho mục đích này.

Điều này sẽ tạm dừng trong một khoảng thời gian ngẫu nhiên (tối đa một giờ) để phân tán tải trên các server download . Sau đó, nó sẽ kiểm tra các bản cập nhật và tải chúng xuống (về cơ bản là hoạt động fetch trong nền). Nếu các bản cập nhật được download , một account user được chỉ định sẽ được thông báo. Các bản cập nhật không được cài đặt tự động để người quản trị có thể quyết định thời điểm thích hợp.

Để cài đặt kiểm tra tự động này, hãy chỉnh sửa file /etc/crontab với các quyền sudo :

sudo vi /etc/crontab 

Ở cuối file , hãy thêm một dòng giống như sau:

@daily root freebsd-update -t freebsd cron 

Lệnh trên sẽ chạy lệnh cập nhật tự động với quyền là user root. Nếu các bản cập nhật được tìm thấy, account user được chỉ định sau thành phần -t sẽ được thông báo. Trong ví dụ trên, user freebsd mặc định sẽ được thông báo.

Lưu file khi bạn hoàn tất.

Lần sau khi đăng nhập vào account freebsd , bạn có thể kiểm tra thư của bạn bằng lệnh :

mail 

Nếu các bản cập nhật được download , bạn sẽ thấy thông tin như sau:

Mail version 8.1 6/6/93.  Type ? for help. "/var/mail/freebsd": 1 message 1 new >N  1 freebsd@freebsdserver       Thu Dec 18 21:45 209/3997  "freebsdserver security updates" & 

Bạn có thể xem danh sách các bản cập nhật bằng lệnh số tin nhắn được liên kết với thông báo:

1 

Khi thấy ổn với phần mềm sẽ được thay đổi, bạn có thể nhanh chóng cài đặt các bản cập nhật bằng lệnh :

sudo freebsd-update install 

Hãy nhớ khởi động lại máy nếu có bất kỳ bản vá lỗi kernel nào được áp dụng và khởi động lại bất kỳ dịch vụ nào bị ảnh hưởng bởi bản cập nhật.

Đồng bộ hóa các nguồn hệ điều hành

Một nhiệm vụ mà bạn có thể cần làm thường xuyên là đồng bộ hóa bản sao mã nguồn FreeBSD với hệ thống của bạn. Điều này hữu ích vì nhiều lý do. Một số cổng yêu cầu nguồn hiện tại phải xây dựng chính xác và nguồn cũng được dùng để bắt đầu theo dõi đến một nhánh phần mềm mới.

Mã nguồn FreeBSD được duy trì trong repository lưu trữ SVN. Nếu bạn chỉ cần version mới nhất của nguồn, không có chi phí lớn mà quá trình lật đổ đòi hỏi, bạn có thể sử dụng trình có tên svnup để đồng bộ hóa các nguồn hiện tại. Điều này nhanh hơn nhiều so với việc sử dụng chính nó.

Bạn có thể cài đặt gói svnup bằng lệnh :

sudo pkg install svnup 

Nếu bạn muốn sử dụng cổng, bạn có thể nhận được điều đó bằng lệnh :

cd /usr/ports/net/svnup sudo make config-recursive install clean 

Khi bạn đã có tiện ích, ta nên điều chỉnh file cấu hình một chút. Mở nó với các quyền sudo trong editor của bạn:

sudo vi /usr/local/etc/svnup.conf 

Đầu tiên, ta cần chọn một gương từ danh sách. Có nhiều dòng host= trong file cấu hình, tất cả đều được comment . Chọn một cái mà bạn nghĩ có thể gần gũi với bạn và bỏ ghi chú nó:

. . . [defaults] work_directory=/var/tmp/svnup #host=svn.freebsd.org #host=svn0.us-west.freebsd.org host=svn0.us-east.freebsd.org #host=svn0.eu.freebsd.org  . . . 

Tiếp theo, bạn nên đảm bảo các phần của file mô tả từng nhánh SVN đang tham chiếu đến version phát hành mà bạn đang sử dụng. Bạn có thể tìm thấy điều này trong version phát hành của bạn bằng lệnh điều này từ dòng lệnh:

freebsd-version 
10.1-RELEASE-p2 

Điều này cho ta biết nhánh của hệ điều hành cũng như mức vá hệ thống ở cuối. Phần ta muốn chú ý đến cho mục đích hiện tại của ta là số trước dấu gạch ngang đầu tiên. Trong trường hợp này, nó chỉ định 10.1 . RELEASE nghĩa là ta hiện đang theo dõi nhánh phát hành, nhánh ổn định nhất hiện có cho FreeBSD.

Quay lại file , đảm bảo định nghĩa cho tham số branch= trong [release] đang trỏ đến số này:

. . .  [release] branch=base/releng/10.1 target=/usr/src  . . . 

Điều này sẽ đảm bảo bạn đang download đúng nguồn. Lưu file khi bạn hoàn tất.

Bây giờ, vì ta đang theo dõi nhánh phát hành, ta có thể nhập:

sudo svnup release 

Thao tác này sẽ download version mới nhất của cây nguồn xuống /usr/src . Bạn có thể cập nhật nó bất kỳ lúc nào bằng cách chạy lại lệnh này.

Nếu bạn cần khả năng chạy các lệnh lật đổ trên nguồn, bạn sẽ phải download công cụ lật đổ. Bạn có thể cài đặt gói bằng lệnh :

sudo pkg install subversion 

Nếu bạn muốn sử dụng các cổng, bạn có thể có được công cụ bằng lệnh :

cd /usr/ports/devel/subversion sudo make config-recursive install clean 

Sử dụng subversion lệnh sẽ mất thời gian nhiều hơn đáng kể. Nó sẽ không chỉ download version hiện tại của mỗi file trong cây, mà còn toàn bộ lịch sử của dự án.

Nếu trước đó bạn đã đồng bộ hóa nguồn bằng công cụ svnup , bạn cần xóa cây nguồn trước khi kiểm tra nguồn bằng cách sử dụng subversion :

sudo rm -rf /usr/src 

Hướng dẫn chi tiết về cách sử dụng subversion nằm ngoài phạm vi của hướng dẫn này. Tuy nhiên, ý tưởng chung là đưa ra lệnh checkout đối với một trong các nhánh trên một trong các máy nhân bản nguồn FreeBSD.

Ví dụ: để kiểm tra cùng một nguồn chính xác mà ta đã sử dụng lệnh svnup ở trên, ta có thể nhập thông tin như sau:

sudo svn checkout https://svn0.us-east.FreeBSD.org/base/releng/10.1 /usr/src 

Lưu ý URL cho lệnh này về cơ bản chỉ là sự kết hợp của các định nghĩa host=branch= mà ta đã thấy trong file cấu hình svnup .

Cập nhật profile hệ thống về phần mềm tùy chọn

FreeBSD cung cấp hai định dạng khác nhau để cài đặt phần mềm bổ sung trên server của bạn. Đầu tiên là một hệ thống dựa trên nguồn được gọi là "cổng" và thứ hai là một repository các gói được biên dịch trước dựa trên các cổng có sẵn. Đối với phần mềm nằm ngoài hệ điều hành cơ sở, một số công cụ bổ sung được sử dụng để quản lý.

Hệ thống lưu giữ thông tin về các cổng có thể được cài đặt trong hệ thống phân cấp folder bắt nguồn từ /usr/ports . Cấu trúc folder này được gọi là “cây cổng”. Trước khi chạm vào bất kỳ cổng nào, ta nên đảm bảo cây cổng của ta có thông tin cập nhật về phần mềm có sẵn của ta . Ta có thể sử dụng lệnh portsnap để thực hiện việc này.

Cú pháp của lệnh portsnap phản ánh cú pháp của lệnh freebsd-update theo một số cách. Trên DigitalOcean, cây nguồn sẽ được điền sẵn thông tin ban đầu về các cổng có sẵn, bạn có thể cập nhật thông tin này như được minh họa trong lệnh portsnap thứ hai.

Nếu bạn không sử dụng DigitalOcean, folder /usr/ports bạn có thể sẽ trống khi bạn bắt đầu. Nếu đúng như vậy, lần đầu tiên bạn sử dụng portsnap , bạn nên sử dụng extract :

sudo portsnap fetch extract 

Thao tác này sẽ tìm nạp một cây cổng hoàn chỉnh và extract nó vào /usr/ports . Việc này có thể mất một lúc và chỉ cần thiết nếu bạn không có bất kỳ thông tin nào trong /usr/ports .

Để cập nhật thông tin hệ thống của ta về các cổng có sẵn (mỗi lần chạy portsnap tiếp theo), hãy nhập:

sudo portsnap fetch update 

Quá trình này có thể mất một chút thời gian tùy thuộc vào cách bạn cập nhật cây cổng mới nhất . Nó phải download một số lượng lớn các file cho mọi phần mềm có sẵn đã được sửa đổi kể từ lần chạy cuối cùng. Điều này sẽ điền vào cấu trúc phân cấp /usr/ports với thông tin về các port.

Trình cài đặt gói pkg cũng có thể tận dụng một số thông tin này. Tuy nhiên, nó cũng duy trì database của riêng mình để theo dõi các gói binary được tạo sẵn để cài đặt. Để cập nhật điều này, có thể chạy lệnh:

sudo pkg update 

Thao tác này sẽ lấy thông tin database gói mới nhất từ server của dự án FreeBSD. Cần lưu ý đối với nhiều hoạt động pkg , pkg update được thực hiện tự động như một phần của quá trình thực thi lệnh, vì vậy nó không phải lúc nào cũng cần thiết như một lệnh độc lập.

Cập nhật phần mềm tùy chọn

Lúc này, ta đã học cách cập nhật và áp dụng các bản cập nhật cho hệ điều hành cơ sở. Ta cũng đã học cách cập nhật mã nguồn hệ điều hành và cách làm mới thông tin local của ta về các cổng và gói có sẵn.

Như vậy, ta có thể sử dụng thông tin phần mềm cập nhật này để download và áp dụng các bản cập nhật cho phần mềm tùy chọn của ta . Quá trình này sẽ khác nhau tùy thuộc vào việc bạn đang sử dụng các cổng hay gói. Nếu bạn đang sử dụng hỗn hợp của cả hai, bạn có thể cần phải kết hợp một số quy trình.

Tìm ra phần mềm nào có thể được cập nhật

Bước đầu tiên trong việc cập nhật phần mềm của bạn là tìm xem ứng dụng nào có version mới. Ta có thể làm điều này theo một số cách khác nhau.

Kiểm tra các bản cập nhật bằng lệnh pkg

Nếu bạn muốn so sánh phần mềm mà bạn đã cài đặt trên hệ thống của bạn với thông tin cập nhật về các version mới nhất hiện có, bạn có thể sử dụng lệnh con version của pkg . Điều này hiển thị cho bạn version đã cài đặt và có thể tùy chọn hiển thị thông tin về các version có sẵn.

Điều đáng chú ý là lệnh này sẽ hiển thị phần mềm tùy chọn được cài đặt thông qua cả cổng và gói. Lệnh này không phân biệt giữa các nguồn cài đặt, vì vậy nó có thể hiển thị chính xác tất cả các bản cập nhật có sẵn trên hệ thống.

Ta có thể xem liệu phần mềm của bạn có cập nhật hay không bằng lệnh :

pkg version -vIL= 

Nếu có tham chiếu đến version mới của bất kỳ phần mềm nào trong file index mới nhất (được download thông qua lệnh portsnap trước đó), kết quả kết quả sẽ hiển thị sự khác biệt. Ví dụ:

perl5-5.18.4_10                    <   needs updating (index has 5.18.4_11) 

Vì ta đang kiểm tra phần mềm được cài đặt trên hệ thống của ta so với file index mới nhất trong cây cổng của ta , đôi khi bạn sẽ kiểm tra điều này tại một thời điểm khi có các bản cập nhật trong cây cổng chưa được chuyển đến gói. Điều này xảy ra bởi vì các gói được xây dựng từ cây cổng và thường phải tụt lại phía sau một chút.

Do khả năng này, lệnh trên có thể hiển thị các bản cập nhật chưa thực sự có sẵn dưới dạng gói. Để phát hiện những trường hợp này, bạn có thể so sánh kết quả của lệnh trên với kết quả của lệnh này:

pkg version -vRL= 

Lệnh này kiểm tra các version mới trong database gói có sẵn của hệ thống pkg (thay vì file index trong cây cổng). Nếu hai lệnh tạo ra cùng một kết quả , thì bạn có thể cập nhật bất kỳ gói nào bằng hệ thống pkg .

Nếu có cập nhật trong lệnh đầu tiên không hiển thị trong lệnh thứ hai, điều này nghĩa là các thay đổi chưa được đóng gói. Nếu bạn đang sử dụng các gói cho phần mềm cần được cập nhật, bạn có thể đợi cho đến khi gói bắt kịp hoặc bạn có thể chuyển sang cổng để nhận bản cập nhật mới nhất ngay bây giờ.

Kiểm tra các bản cập nhật với Portmaster

Nếu bạn thường chọn xây dựng phần mềm từ nguồn sử dụng hệ thống cổng, thì một giải pháp thay thế hấp dẫn là lệnh portmaster . Công cụ này hữu ích cho bất kỳ tác vụ quản lý phần mềm dựa trên cổng nào trên FreeBSD, từ kiểm tra và áp dụng các bản cập nhật, đến cài đặt hoặc gỡ bỏ các cổng và tất cả các phụ thuộc của chúng.

Để nhận lệnh portmaster , bạn có thể cài đặt gói hoặc biên dịch nó từ hệ thống cổng.

Để cài đặt gói, hãy nhập:

sudo pkg install portmaster 

Nếu bạn muốn biên dịch công cụ từ nguồn, hãy chuyển sang folder của gói trong cây cổng và cài đặt nó bằng make:

cd /usr/ports/ports-mgmt/portmaster sudo make install clean 

Sau khi cài đặt, bạn có thể thấy thông báo về việc thêm một số thông tin vào file /etc/make.conf và chuyển đổi database gói của bạn. Điều này không cần thiết nếu bạn đang bắt đầu từ FreeBSD 10.1 trở lên.

Khi bạn đã cài đặt portmaster , bạn có thể kiểm tra các bản cập nhật bằng lệnh :

portmaster -L 

Thao tác này sẽ kiểm tra tất cả phần mềm được cài đặt trên hệ thống của bạn và so sánh nó với file index để xem có version mới hay không. Lệnh này hoạt động giống như lệnh pkg ở chỗ nó sẽ hiển thị các bản cập nhật dù phần mềm được cài đặt bằng cổng hay gói. Nó phân loại phần mềm dựa trên cách nó được kết nối với phần mềm khác về mặt phụ thuộc.

Bất kỳ phần mềm nào có sẵn bản cập nhật sẽ có dòng thụt vào như sau:

===>>> perl5-5.18.4_10         ===>>> New version available: perl5-5.18.4_11 

Ở dưới cùng, một dòng tóm tắt sẽ mô tả số lượng ứng dụng có thể được cập nhật:

===>>> 42 total installed ports         ===>>> 1 has a new version available 

portmaster hoạt động chủ yếu với các cổng, nên tất cả các bản cập nhật được phát hiện sẽ có sẵn cho ứng dụng.

Kiểm tra lỗ hổng phần mềm

FreeBSD duy trì một database lỗ hổng cần được kiểm tra thường xuyên đảm bảo rằng không có lỗ hổng nào trong phần mềm bạn đã cài đặt trên hệ thống của bạn .

Mặc dù việc cập nhật tất cả phần mềm trên hệ thống của bạn đôi khi có lợi, nhưng ít nhất, bất kỳ phần mềm nào có lỗ hổng bảo mật đã biết nên được cập nhật sớm nhất có thể. Để kiểm tra các lỗ hổng đã biết bằng bất kỳ phần mềm tùy chọn nào bạn đã cài đặt trên hệ thống của bạn , hãy nhập:

pkg audit -F 

Thao tác này sẽ download database lỗ hổng bảo mật mới nhất từ server FreeBSD và kiểm tra nó với phần mềm đã cài đặt trên hệ thống. Nếu có bất kỳ lỗ hổng nào trong phần mềm đã cài đặt của bạn, nó sẽ cảnh báo cho bạn.

Kiểm tra Ghi chú CẬP NHẬT

Trước khi bạn cập nhật bất kỳ phần mềm nào, điều cần thiết là phải kiểm tra bất kỳ lỗi nào mà các bản cập nhật có thể gây ra. Những người bảo trì cổng FreeBSD đôi khi phải áp dụng các thay đổi không thể áp dụng một cách rõ ràng nếu không có sự can thiệp của user . Nếu bạn không kiểm tra các tình huống này, bạn có thể kết thúc với phần mềm không hoạt động và có khả năng là hệ thống bị hỏng.

Trong folder /usr/ports , một file có tên UPDATING chứa thông tin về bất kỳ bản cập nhật phần mềm nào có thể có kết quả không mong muốn. Để đọc file này, hãy nhập:

less /usr/ports/UPDATING 

Tệp văn bản đơn giản này sẽ chứa thông tin về bất kỳ bản cập nhật nào cần chú ý thêm, dù phần mềm đã được cài đặt hay chưa. Mỗi mục nhập sẽ được đánh dấu bằng ngày mà bản cập nhật tham chiếu được commit cho cây cổng. Một điều nữa cần lưu ý là file chứa thông tin cập nhật hoàn toàn từ năm 2008. Tệp sẽ trông giống như sau:

This file documents some of the problems you may encounter when upgrading your ports.  We try our best to minimize these disruptions, but sometimes they are unavoidable.  You should get into the habit of checking this file for changes each time you update your ports collection, before attempting any port upgrades.  20141208:   AFFECTS: users of ports-mgmt/poudriere, ports-mgmt/poudriere-devel   AUTHOR: bdrewery@FreeBSD.org    8.4 jails created with Poudriere 3.1, or poudriere-devel-3.0.99.20141117   should be recreated with 'jail -d' and 'jail -c'. This fixes pkg(8)   crashes.  20141205:   AFFECTS: users of polish/kadu   AUTHOR: pawel@FreeBSD.org    Before running kadu 1.x for the first time upstream developers   advise to backup your ~/.kadu directory.  . . . 

Bạn nên kiểm tra file này để biết bất kỳ vấn đề cập nhật nào đã được thêm vào kể từ lần cuối cùng bạn cập nhật. Vì file này chứa một lượng lớn thông tin sẽ không liên quan đến bản cập nhật bạn đang xem xét, vì nó liên quan đến phần mềm không được cài đặt trên hệ thống của bạn hoặc vì nó nêu chi tiết một vấn đề từ bản cập nhật trước đó, bạn thường chỉ phải kiểm tra các mục gần đầu file hơn.

Nếu có bất kỳ bước bổ sung nào bạn cần thực hiện trước khi nâng cấp, hãy hoàn thành chúng ngay bây giờ.

Cập nhật các gói và cổng

Sau khi thực hiện bất kỳ hành động nào được đề xuất trong file UPDATING , bây giờ bạn đã sẵn sàng cập nhật phần mềm của bạn . Các phương pháp mà ta sử dụng sẽ phụ thuộc vào việc bạn muốn sử dụng các gói được biên dịch trước hay các cổng dựa trên nguồn cho phần mềm của bạn .

Nếu bạn chủ yếu sử dụng các gói và muốn sử dụng định dạng này để nâng cấp, bạn có thể sử dụng lệnh pkg upgrade :

sudo pkg upgrade 

Điều này sẽ cung cấp để nâng cấp tất cả các gói có sẵn các bản cập nhật.

Một điều cần lưu ý về phương pháp này là, nếu bạn đang trộn các gói và cổng, bản cập nhật gói có thể cố gắng cài đặt lại phần mềm mà bạn đã xây dựng bằng hệ thống cổng. Điều này có thể xảy ra khi bạn biên dịch ứng dụng với các tùy chọn khác nhau, các tùy chỉnh đã chọn yêu cầu các phụ thuộc khác nhau, v.v. từ version đóng gói.

Kịch bản này sẽ như thế này:

freebsd@wowie:~ % sudo pkg upgrade Updating FreeBSD repository catalogue... FreeBSD repository is up-to-date. All repositories are up-to-date. Updating database digests format: 100% Checking for upgrades (2 candidates): 100% Processing candidates (2 candidates): 100% The following 1 packages will be affected (of 0 checked):  Installed packages to be REINSTALLED:         portmaster-3.17.7 (options changed)  The operation will free 1 KB. 40 KB to be downloaded.  Proceed with this action? [y/N]: 

Trong trường hợp này, lệnh portmaster đã được cài đặt thông qua hệ thống các cổng, nhưng pkg đang cố gắng đưa nó phù hợp với version mà nó biết. Nếu bạn muốn giữ version cổng tùy chỉnh của bạn , bạn có thể nhấn “N” để thực hiện thao tác này và sau đó khóa gói bằng lệnh :

sudo pkg lock portmaster 

Điều này sẽ ngăn phần mềm được nâng cấp, cho phép bạn nâng cấp phần còn lại của phần mềm bằng lệnh pkg upgrade . Khi bạn muốn nâng cấp phần mềm bị khóa, bạn có thể mở khóa tạm thời bằng lệnh :

sudo pkg unlock portmaster 

Nếu bạn chủ yếu sử dụng portmaster và các cổng để xử lý các gói của bạn , bạn có thể nâng cấp tất cả phần mềm đã cài đặt tùy chọn của bạn bằng lệnh :

sudo portmaster -a 

Bạn cần chọn các tùy chọn cho các cổng mà bạn đang nâng cấp. Nếu bạn không biết bất kỳ tùy chọn nào nghĩa là gì hoặc nếu bạn không có bất kỳ lý do cụ thể nào để thực hiện lựa chọn, bạn có thể sử dụng giá trị mặc định.

Nếu bạn sử dụng portmaster trước khi nâng cấp các gói của bạn , do độ trễ giữa các bản cập nhật gói và cổng, có khả năng một số phần mềm đã được cài đặt trước đó bằng một gói bây giờ sẽ được cập nhật bằng các cổng. Nếu đây không phải là vấn đề đối với bạn, hãy sử dụng phương pháp này. Nếu bạn muốn gắn bó với các gói phần mềm của bạn , có lẽ tốt nhất là bạn nên đợi cho đến khi bản cập nhật được đóng gói lại.

Nếu bạn muốn cập nhật chi tiết các gói của bạn , bạn cũng có thể nâng cấp một gói cụ thể bằng cách chỉ định danh mục và tên của nó như được tìm thấy trong cây cổng:

sudo portmaster category/portname 

Ví dụ: để nâng cấp cổng vim-lite , bạn có thể ra lệnh sau:

sudo portmaster editors/vim-lite 

Kết luận

Như bạn thấy , có khá nhiều quy trình khác nhau cần diễn ra để duy trì các server FreeBSD của bạn.

Một số trong số này, như quá trình cập nhật nguồn của hệ thống cơ sở, không cần phải chạy thường xuyên, trong khi các việc khác, như cập nhật hệ điều hành cơ sở và cập nhật bất kỳ phần mềm nào có lỗ hổng đã biết, nên được hoàn thành thường xuyên. Việc bảo trì hệ thống của bạn thoạt đầu có vẻ phức tạp, nhưng sẽ trở nên khá dễ dàng khi bạn làm quen với các công cụ bạn đang sử dụng.

Để tìm hiểu thêm thông tin về cách làm việc với các gói, hãy nhấp vào liên kết này . Để hiểu rõ hơn về cách làm việc với các cổng, hãy làm theo hướng dẫn này .


Tags:

Các tin liên quan