このフォーラムでError InterpreterとPermission Deniedに関連する同様の投稿を見ましたが、この問題に対する解決策が見つかりませんでした。
私はvps Linux x64(v2.6.18、CentOS 6.7)を使用しています。私はクライアント(OpenClinica)用の特定のプロジェクトを進めており、.binファイルからPostgresqlバージョン8.4(私が知っている以前のバージョン)を直接インストールする必要があります。postgresql-8.4.1-1-linux-x64.bin
私が理解したところによると、ファイル.bin
は.sh
。/tmp/postgresql_installer/
また、このファイルが正常に動作し、OpenClinicaを実行している他の多くのLinux(CentOS)システムにPostgresを正常にインストールしたと言われました。
コマンドラインからrootとして実行するときは、次のように入力します。
./postgresql* --mode text
私は次のような落ち込んだメッセージを受け取りました。
Error:
Error running /tmp/postgresql_installer/getlocales.sh :
/bin/sh: /tmp/postgresql_installer/getlocales.sh:
/bin/sh: bad interpreter: Permission denied
確認した内容(このフォーラムとは別のフォーラムで確認しました)
最初の行
getlocales.sh
に#!/bin/sh
sh -> bash*
にリンクがあります/bin
root@vps [/bin]# ls -l sh lrwxrwxrwx 1 root root 4 Nov 14 12:29 sh -> bash*
sestatus
障害のある実行する前に権限を付与しました
chmod x
。postgres*.bin
脱出も試みたが役に立た
postgres*.bin
なかっ~/
た。
どんなアイデアがありますか?
答え1
前述のように、問題はnoexecを使用して/ tmpをマウントすることです。説明は簡単です。一部のインストールスクリプトは、/ tmpに実行可能ファイル/スクリプトを解凍して実行しようとします。
私は実際に数ヶ月前にセキュリティ上の理由から、いくつかのサーバーの/ tmpをnoexecに変更した後、いくつかのDebianパッケージのインストール/アップデートスクリプトが機能しなくなったときにこの問題を偶然発見しました。わざわざ変更を行ったので、当時の問題点を簡単に発見できました。
パブリックネットワークサーバーで/ tmpをnoexecに設定することはまだ良い考えだと思いますが、これまではこの特定の問題を解決する方法を見ていませんでした。
答え2
に基づいてルイの答え、私は以下のコマンドを実行しました。
mount -o remount,exec /tmp