web-dev-qa-db-ja.com

Nginxと乗客の依存関係の問題(デジタルオーシャンデプロイメント)

私はこのガイドに従おうとしています

https://www.digitalocean.com/community/tutorials/how-to-deploy-a-Rails-app-with-passenger-and-nginx-on-ubuntu-14-04

このコマンドを実行した後でチュートリアルを続行したい場合:

Sudo apt-get install nginx-extras passenger

私はこのエラーを受け取ります:

Reading package lists... Done
Building dependency tree

Reading state information... Done
passenger is already the newest version.
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
nginx-extras : Depends: perlapi-5.18.2 but it is not installable
Depends: libperl5.18 (>= 5.18.2) but it is not installable
Recommends: passenger (< 4.0.60) but 1:4.0.59-1~trusty1 is to be installed
E: Unable to correct problems, you have held broken packages.

Nginx-extrasをインストールできないと思います。誰かが私を助けてくれますか?

23
Sebas Mardini

Ubuntu 14.10でも同じ問題が発生しました

Sudo nano /etc/apt/sources.list.d/passenger.list

コメントアウト
deb https://oss-binaries.phusionpassenger.com/apt/passenger trusty main

ctrl + x
Y
入る

Sudo apt-get update

Sudo apt-get install nginx nginx-extras

それでいいなら

Sudo nano /etc/apt/sources.list.d/passenger.list

インサート
deb https://oss-binaries.phusionpassenger.com/apt/passenger wheezy main

ctrl + x
Y
入る

Sudo apt-get update

Sudo apt-get install passenger

出来上がり!

59

Ubuntu 16.04を使用している場合は、次の手順を実行します

# Install our PGP key and add HTTPS support for APT
Sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 561F9B9CAC40B2F7
Sudo apt-get install -y apt-transport-https ca-certificates

# Add our APT repository
Sudo sh -c 'echo deb https://oss-binaries.phusionpassenger.com/apt/passenger xenial main > /etc/apt/sources.list.d/passenger.list'
Sudo apt-get update

# Install Passenger + Nginx
Sudo apt-get install -y nginx-extras passenger
31

このエラーが発生したのは、インストールしようとした乗客のバージョンがubuntuのバージョンと一致しなかったためです。あなたがubuntu 14.04にいることを確認してください。

そうでない場合は、deb https://oss-binaries.phusionpassenger.com/apt/passenger trusty mainの行/etc/apt/sources.list.d/passenger.listを、ubuntuのバージョンに合わせて変更する必要があります。

次にSudo apt-get updateを実行します

2
kane morgan

この問題のため、nginx-fullではなくnginx-extrasを使用しました。 Postgres 9.4が欲しいので14.10を実行しています。

何度も奇妙なエラーが発生し続け、私は誤ってAPTの指示を過ぎて乗客の指示に従い続けました。おっと。それで、私はもともと@ Maciej-adamczewskiの回答に従っていましたが、彼はUbuntu 14.04インストールの代わりにDebian 7パッセンジャーインストールを追加しています。これは私を台無しにしました。

これが私を並べ替えるためにしたことです:

Sudo apt-mark showhold  # apparently I had nothing in here
Sudo apt-get autoclean
Sudo apt-get update && Sudo apt-get upgrade
# I hoped upgrade would get rid of that error re: nginx-extras
# it didn't at all, so decided to scrap and start over

Sudo apt-get purge nginx*  # to get rid of everything nginx
Sudo apt-get remove nginx*  # paranoia
Sudo apt-get purge passenger
Sudo apt-get remove passenger  # paranoia again
Sudo apt-get autoremove

Sudo apt-get update
Sudo apt-get install nginx-full passenger

ブーム! nginxを正常に実行できるようになりました。

Digital Oceanの部分については触れていませんが、Rubyの代わりにRVMを直接インストールした場合は、rvm Rubyがどこにあるかを見つける必要があります:

rvm use
passenger-config --Ruby-command

次に、passenger_Ruby /usr/local/...と書かれたnginx情報をコピーして貼り付け、/etc/nginx/nginx.confファイルの元のpassenger_Ruby行を上書きします。

後でサイトを作成するときに、nginxのサーバーブロックにpassenger_enabled on;を追加してください。

この男のマッドプロップ: セットアップRails on DO

2
risa_risa

多分ubuntuバージョンエラー、このコマンドで試してください:

Sudo sh -c 'echo deb https://oss-binaries.phusionpassenger.com/apt/passenger xenial main > /etc/apt/sources.list.d/passenger.list'
0
Neeraj Kumar