Khi cài đặt pg-native (một module của Node.js để kết nối vào CSDL Postgresql), đôi khi bạn có thể gặp lỗi không tìm thấy pg_config như dưới đây:
find: `/usr/pg*': No such file or directory
gyp: Call to 'which pg_config || find /usr/bin /usr/local/bin /usr/pg* /opt -executable -name pg_config -print -quit' returned exit status 1. while trying to load binding.gyp
...
Lỗi này xảy ra do không tìm thấy pg_config. pg_config nằm trong gói postgresql-devel nên chúng ta cần có gói này trước.
Đầu tiên bạn kiểm tra xem đã cài đặt các gói liên quan tới postgresql hay chưa bằng câu lệnh sau
yum list installed postgres*
Nếu bạn đã cài đặt một số gói thì kết quả có thể tương tự như dưới đây:
Còn trong trường hợp chưa cài gói postgresql-devel thì bạn có thể làm theo các bước sau:
Bước 1: kiểm tra các gói postgresql mà yum hỗ trợ cài đặt
yum list postgres*
Bước 2: Giả sử bạn đang sử dụng postgresql9.4, chọn gói postgresql94-devel.x86_64
để cài đặt
yum install postgresql94-devel.x86_64
Bước 3: Kiểm tra xem có thể chạy lệnh pg_config hay chưa?
pg_config
Nếu lệnh pg_config không tìm thấy thì mở file .bashrc (vim ~/.bashrc
) và thêm vào các dòng sau vào cuối file:
PATH=$PATH:/usr/pgsql-9.4/bin
export PATH
Sau đó chạy lệnh source ~/.bashrc
Cuối cùng, ta lại chạy lại lệnh cài đặt pg-native
npm install pg-native
Đối với MacOS X: cách đơn giản nhất là sử dụng Postgres app (http://postgresapp.com).
Mở file .bashrc_profile (vim ~/.bashrc_profile
) và thêm vào dòng lệnh sau
PATH="/Applications/Postgres.app/Contents/Versions/9.4/bin:$PATH"
export PATH
Sau đó chạy lệnh source ~/.bashrc_profile
Các bước tiếp theo tương tự khi làm trên CentOS.
Bình luận