无法加载Rails服务器甚至无法在任何源中找到pg-0.17.1

时间:2014-07-28 06:16:56

标签: ruby-on-rails ruby postgresql gem nokogiri

对这一切都很陌生,遇到了真正的沟渠。我使用rails 4.1+运行ruby 2.0.0p353,一切都安装了自制程序,xcode,git,heroku等....我在OSX 10.9.4

然后来试试S3并安装aws-sdk gem。我无法安装nokogiri宝石淘宝stackoverflow几天后无济于事。然后我在网上看到这篇文章,建议更新rails和ruby版本。在我尝试将我的ruby版本升级到最新版本时,我按照here给出的说明进行了如下操作:

终端和我的app文件夹中的

  1. 的/ usr /本地的/ opt /红宝石/ bin中
  2. export PATH =" / usr / local / opt / ruby​​ / bin:$ PATH"
  3. source~ / .bash_profile
  4. gem update --system ..我随后尝试了捆绑更新/安装...并收到pastebin上显示的此错误:http://pastebin.com/Q64j0LwD
  5. 现在,由于我甚至无法运行rails服务器,因此完全搞砸了。获取此错误无法在任何来源中找到pg-0.17.1

    我目前安装了Ruby 2.1.2p95。我不知道在这个试验期间还安装了什么,错误很可能是很多版本的许多版本。任何建议都会很棒。

    :在任何来源

    中都找不到pg-0.17.1

2 个答案:

答案 0 :(得分:0)

尝试postgresapp并使用documentation进行安装并配置postgresql服务器。

  

在Mac上开始使用PostgreSQL的最简单方法

答案 1 :(得分:0)

你对rails编码很新。我开始时犯了很多错误。我仍然犯了很多错误,但现在他们犯了更复杂的错误,主要是;)

我首先使用" RailsInstaller"。获得所有作品的绝佳方式......除了Postgres。正如名字由许多非ASCII字符组成的人所建议的那样,PostgresApp对于获得更新的Postgres非常有用,而不会在项目之外编译内容。

您可能应该使用" rvm"或" rbenv"管理你的红宝石。我试过两个,我喜欢rvm。建议使用rbenv,但是在我决定回到rvm之前,我花了一个尴尬的半天试图解开键入"捆绑exec rails new app"的后果。 rvm对我来说更自然,代价是为每个项目创建gemsets。其中,我个人喜欢。我希望将每个添加到操作系统中的内容隔离开来,这样我就可以处理多个污染较少的项目,而无需为每个项目创建虚拟机。

污染是,我认为Nokogiri的问题。每个人都告诉你去安装brew或Macports,或者从头开始为你自己构建。当你这样做时,你会安装很多东西。这些东西会影响编译过程。我大约80%确定我无法使用系统库编译Nokogiri,因为其他项目已经删除了包含将iconv_open重命名为libiconv_open的文件 - 这不是本机库中的。我现在有Nokogiri编译,但只是使用GNU iconv,并使用奥术"捆绑配置"单独为nokogiri设置构建时依赖关系以使用iconv的/ opt / local / include版本。这很耗时。

所以,有些建议我还没有采取自己的建议。清理brew / ports的东西。我怀疑你可以在本地安装的项目目录中运行你需要的任何东西,而不是干扰操作系统。除非你真的需要一些不适合Mac的东西,比如最新的红宝石(由rbenv / rvm解决)

查看Heroku。发布小型应用程序的低成本方式。

确保您拥有GitHubBitBucket帐户。就个人而言,我为GitHub上的项目做贡献,但我的私人资料是BitBucket - 定价模型。

Git看起来很生气。但是git很精彩。学会分支。许多。学习合并。学习标记,并学习如何从上游回购推送和拉动。这些话对你来说可能毫无意义,但它们会拯救你的理智。您将使用git将项目推送到Heroku。只是吓人的惊人。了解如何拥有暂存分支和实时分支,并将每个分支推送到不同的Heroku实例,这样您就可以在面向公众的服务器上测试用户接受度,而不会污染开发版或实时版本。混帐/ Heroku的。快乐。

注意我的一些事情...... Ruby获得了很多补丁。它们很有意义。我花了几天时间试图弄清楚为什么一段ruby代码失败了,结果却发现它在不同的补丁级别工作。观看更新并应用它们 - 除了'捆绑更新'。不要捆绑更新'直到你老了,聪明。

宝石版本 - 这也是我的意思。有一个有效的项目。然后它没有,根本没有代码更改......除了我更新了我的宝石。更新版本的gem打乱了代码。所以......

Bundler是你的另一个朋友。锁定项目所需的gem版本。不要使用"捆绑更新"除非你准备好发生奇怪的事情。制作漂亮的Gemfiles。

你可能需要掌握TDD,最好是BDD。

接下来您需要安装Qt库,并使用" gem' capybara-webkit'"和Rcpec-Rails的Cucumber可以帮助您编写浏览器将执行的测试。如果您开始更改宝石版本,请注意保护中心。至少你在测试停止工作时知道,并且可以使用git恢复到已知的工作块。更重要的是,它最终会在出现意外停止工作时进行大量繁琐的检查。

另外......确保您的宝石开发组(在Gemfile中)包含" better_errors"和" binding_of_caller"。当您的代码失败时,浏览器窗格中的REPL很棒。

如果你想把一些东西放在一起,例如你不想花费大量时间来完善用户界面的办公室管理项目,只需构建工作的东西。试试' hobo'。我发现它对于快速构建某些东西非常有用。编写代码比编写或绘制代码更快。认真。尽管我从来没有将任何Hobo代码转换成适合高规模使用的东西,但这一切都是可以过度使用的......

欢迎来到Mac上用Rails开发的惊人世界。这是一个快速发展的声音。希望有所帮助。 :)