Nếu khả năng phụ thuộc vào phiên bản của gói phát hành Ubuntu (hoặc các sắp xếp có nguồn gốc Debian khác) giống như phiên bản dành cho phiên bản bạn đang cố gắng xây dựng, bạn có thể chạy apt-get build-dep nginx
hoặc aptitude build-dep nginx
- điều này sẽ không cài đặt gói nginx nhưng thay vào đó sẽ cài đặt tất cả những thứ được liệt kê là phụ thuộc (và phụ thuộc của chúng, như thường lệ) bao gồm libssl-dev
(gói mà bạn hiện đang tìm kiếm).
Trong hầu hết các trường hợp, điều này sẽ cho phép việc xây dựng phiên bản khác (có lẽ mới hơn) được hoàn thành thành công và nó giúp bạn tự cài đặt từng thư viện và các tệp tiêu đề của nó. Ngay cả khi có các phụ thuộc mới trong phiên bản khác mà bạn đang cố gắng xây dựng, build-dep <package>
vẫn là một nơi tốt để bắt đầu vì điều đó có nghĩa là bạn chỉ phải cài đặt thủ công các phụ thuộc mới.
Ví dụ, kết quả trên một trong các máy chủ của tôi là:
user@host:~$ sudo aptitude build-dep nginx
Reading package lists... Done
Building dependency tree
Reading state information... Done
Reading extended state information
Initialising package states... Done
The following NEW packages will be installed:
autotools-dev cvs{a} debhelper gettext{a} html2text{a} intltool-debian{a}
libcroco3{a} libmail-sendmail-perl{a} libpcre3-dev libpcrecpp0{a}
libssl-dev libsys-hostname-long-perl{a} po-debconf{a} zlib1g-dev
0 packages upgraded, 14 newly installed, 0 to remove and 19 not upgraded.
Need to get 7,217kB of archives. After unpacking 22.9MB will be used.
Do you want to continue? [Y/n/?]
Nó đang có ý định cài đặt một số thư viện và tiêu đề, để cho phép xây dựng nginx, nhưng bản thân nginx thì không.
Một điều cần lưu ý là nếu bạn đang biên dịch bản sao của riêng mình vì bạn muốn các tùy chọn xây dựng khác nhau thay vì cần một phiên bản khác vì một lý do nào đó, bạn có thể biên dịch từ nguồn của kho lưu trữ cho gói hơn là sử dụng trực tiếp các nguồn ngược dòng. Câu hỏi SO này là trang hữu ích đầu tiên xuất hiện trong một tìm kiếm nhanh, mặc dù bạn có thể dễ dàng tìm thấy các hướng dẫn chi tiết hơn nếu bạn cần điều đó.
Một điều nhỏ khác cần lưu ý: các gói được cài đặt là kết quả apt-get build-dep
sẽ được đánh dấu là cài đặt thủ công như thể bạn đã thực hiện việc này bằng tay như bạn hiện đang làm. Điều đó có nghĩa là bạn không thể xóa tất cả chúng trong một lần (không có apt-get unintall-dep
hoặc tương tự) - mặc dù điều đó không khác với tình huống bạn sẽ nhận được từ cài đặt thư viện / tiêu đề thủ công (dù sao tôi chỉ đề cập đến thực tế như một số người mong đợi ở đó là một cách một bước để hoàn tác một build-dep
hoạt động, và không có).