2009-02-25 37 views
6

Tôi tò mò là tại sao bạn không phải sử dụng initdb theo hướng dẫn postgresql trước khi chạy psql lần đầu tiên? (Tôi đã cài đặt phiên bản 8.3 trên 8.04.1)Tại sao PostgreSQL chạy trên Ubuntu sau khi cài đặt mà không sử dụng initdb?

Red Hat yêu cầu khởi động postgresql nhưng không phải init.db.

Tuy nhiên, trên FreeBSD bạn phải chạy initdb.

Tại sao thiết lập không nhất quán? Nó đi xuống đến một sự khác biệt giữa apt-get cài đặt, rpm -i và pkg_add?

Trả lời

1

Rất có thể đơn giản là các tập lệnh khởi động được đóng gói bởi các hệ thống đó sẽ tự động chạy initdb trong lần đầu tiên chúng chạy.

+0

Đúng vậy. Nhìn vào /etc/init.d/postgresql –

1

Gần như chắc chắn, có. Các hương vị khác nhau của Linux và Unix có các cách tiếp cận khác nhau đối với phần mềm đóng gói; FreeBSD, ví dụ, dựa trên hệ thống cổng (nơi bạn biên dịch từ đầu, mặc dù có các gói nhị phân được tạo sẵn cho phần lớn), trong khi đó thường là trường hợp trong các bản phân phối Linux chính thống mà bạn sẽ tìm thấy chuẩn bị gói nhị phân cho một cái gì đó phổ biến.

Những người khác nhau duy trì hệ thống đóng gói ("đóng gói", và các biệt danh khác đôi khi ít hơn) duy trì các cách tiếp cận khác nhau cho vấn đề, thường phản ánh đặc tính của dự án mẹ. Ngoài ra, có thể đơn giản là một người đóng gói quyết định việc thiết lập cấu hình chuẩn và chạy một số bước khởi tạo chung thay cho bạn, trong khi một trình đóng gói dễ dàng hơn sẽ cho phép người dùng cuối, đặc biệt nếu phần mềm là bất kỳ cách nào phức tạp hoặc cần xem xét trước khi triển khai, ví dụ Dịch vụ hệ thống.

0

Nếu không sai, gói PostgreSQL của Ubuntu có nguồn gốc từ Debian. Có thể bao bì của Debian có vị trí này vì một lý do nào đó. Nếu đó là trường hợp, Debian và tất cả các dẫn xuất của nó như Ubuntu sẽ mô tả hành vi tương tự. Điều này sẽ chỉ xảy ra nếu bạn cố cài đặt phần mềm tương ứng từ kho lưu trữ. Nếu bạn lấy được nguồn từ trang của PostgreSQL và biên dịch nó, bạn sẽ nhận được nó như được quy định trong sách hướng dẫn. Các bản phân phối khác nhau tuân theo các nguyên tắc đóng gói nhất định và có những quan điểm nhất định đối với việc đóng gói một số phần mềm nhất định. Nếu bạn muốn biết chi tiết chính xác, bạn có thể poke người duy trì gói của gói postgresql để biết lý do.

1

Không phải là các tập lệnh khởi động, các móc cài đặt bài đăng được chỉ định trong gói mà bạn đã cài đặt thực hiện các bước bổ sung cho bạn. Bất kể bạn sử dụng định dạng .deb hay .rpm, các gói có thể đặt các tác vụ xảy ra sau khi tất cả các tệp đã được cài đặt.

Một số bản phân phối giữ tay bạn khi bạn cài đặt phần mềm, một số mong muốn bạn muốn tự làm mọi thứ .. thực sự không có câu trả lời vàng là tại sao mọi người đóng gói lại làm theo cách của họ.

Ubuntu cố gắng chỉ với một lần nhấp mà không cần người dùng thấy vỏ. Các bản phân phối khác được xây dựng riêng cho các nhà tích hợp hệ thống không nắm tay bạn.

Chào mừng bạn đến với 31 (và nhiều hơn nữa) hương vị của hệ điều hành xoay quanh hạt nhân Linux, hoặc những nỗ lực tập trung vào hạt nhân BSD.

Mọi người đều có ý tưởng về cách thực hiện. Phân phối tốt cho rằng bạn biết bạn đang làm gì .. trừ khi tất nhiên họ muốn pinch thị trường máy tính để bàn từ Microsoft, trong trường hợp này họ trở thành bản phân phối máy tính để bàn tốt nắm tay bạn.

Đó là một vấn đề được lựa chọn, chủ yếu, đó là những gì làm cho toàn bộ hiện tượng trở nên tuyệt vời.

1

Debian (và bằng cách mở rộng, Ubuntu) xử lý PostgreSQL khá khéo léo. Hãy xem gói postgresql-common để biết chi tiết. Một thời gian ngắn, nó hỗ trợ có nhiều phiên bản (chính) của postgres được cài đặt, và nhiều cụm của mỗi phiên bản của postgres đang chạy. Để xem bạn có cụm nào, hãy thử pg_lsclusters. Trình bảo trì gói giả định rằng nếu bạn đang cài đặt một gói máy chủ pg lần đầu tiên, bạn sẽ muốn initdb một cụm cho nó. Ví dụ: nếu bạn cài đặt postgresql-9.1, bạn sẽ nhận được theo mặc định là 9.1/cụm chính initdb'd cho việc sử dụng của bạn.

Mọi thứ không nhất quán giữa các bản phân phối Linux vì toàn bộ điểm phân phối là cung cấp các giải pháp tốt hơn cho các vấn đề chính xác như thế này. Debian cung cấp một giải pháp tuyệt vời trên mặt trận này. Tuy nhiên, tôi sẽ đề nghị bạn sử dụng PPA postgresql và lấy một phiên bản mới hơn của postgresql, đặc biệt là vì bạn chỉ cài đặt mọi thứ.

Tôi vừa nhận ra rằng tôi đang trả lời một câu hỏi cổ xưa. Boo.

Các vấn đề liên quan