Hi Bill,

Thanks for being understanding. Looks like you're very close, but your
config isn't quite right. Try this (replace "myname" and "mypassword"
with your psql username and password that you set):

LedgerWeb::Config.new do |config|
  config.set :database_url, "postgres://myname:mypassword@localhost/ledger"
end

The ":database_url" is a ruby symbol. It's effectively the name of a
constant, not something to change. As you surmised, you should
probably put  /var/lib/gems/1.8/bin/ledger_web in your path, and
you'll hopefully be all set. I have no idea why that's where gem is
putting things, but that's where it goes on your system I guess.

--Pete

On Mon, Mar 19, 2012 at 7:40 PM, Bill Harris
<[email protected]> wrote:
> Peter Keen <[email protected]> writes:
>
>> I'm sorry you've had so many problems with ledger_web! It's completely
>> my fault, I forgot a line in the gemspec file. If you take a look at
>> the commit[1] you'll see exactly what I missed.
>
> Peter, no problem.  That's what OSS brings sometimes, right?  Part of my
> contribution might be helping to debug things.  That said, I'm a bit
> busy with other things, so my response is likely to be slow, as you've
> seen.
>
>> I pushed a new version up to rubygems (1.4.2). If you install that you
>> should find a ledger_web binary in the appropriate bin directory.
>
> Thanks; got it.  I had to run gem install as root so it would install
> something.
>
> Unfortunately, I can't find where it went.
>
> ,----
> | # gem install ledger_web
> | Successfully installed rspec-core-2.9.0
> | Successfully installed diff-lcs-1.1.3
> | Successfully installed rspec-expectations-2.9.0
> | Successfully installed rspec-mocks-2.9.0
> | Successfully installed rspec-2.9.0
> | Successfully installed database_cleaner-0.7.1
> | Successfully installed ledger_web-1.4.3
> | 7 gems installed
> | Installing ri documentation for rspec-core-2.9.0...
> | Installing ri documentation for diff-lcs-1.1.3...
> | Installing ri documentation for rspec-expectations-2.9.0...
> | Installing ri documentation for rspec-mocks-2.9.0...
> | Installing ri documentation for rspec-2.9.0...
> | Installing ri documentation for database_cleaner-0.7.1...
> | Installing ri documentation for ledger_web-1.4.3...
> | Installing RDoc documentation for rspec-core-2.9.0...
> | Installing RDoc documentation for diff-lcs-1.1.3...
> | Installing RDoc documentation for rspec-expectations-2.9.0...
> | Installing RDoc documentation for rspec-mocks-2.9.0...
> | Installing RDoc documentation for rspec-2.9.0...
> | Installing RDoc documentation for database_cleaner-0.7.1...
> | Installing RDoc documentation for ledger_web-1.4.3...
> `----
>
> and
>
> ,----
> | # find / -name "ledger_web*" -print
> | 
> /home/myname/.gem/specs/rubygems.org%80/quick/Marshal.4.8/ledger_web-1.4.2.gemspec
> | 
> /home/myname/.gem/specs/rubygems.org%80/quick/Marshal.4.8/ledger_web-1.3.gemspec
> | /home/myname/.gem/ruby/1.8/cache/ledger_web-1.4.2.gem
> | /home/myname/.gem/ruby/1.8/cache/ledger_web-1.3.gem
> | /root/.gem/specs/rubygems.org%80/quick/Marshal.4.8/ledger_web-1.4.3.gemspec
> | /root/.gem/specs/rubygems.org%80/quick/Marshal.4.8/ledger_web-1.3.gemspec
> | /root/.gem/specs/rubygems.org%80/quick/Marshal.4.8/ledger_web-1.4.2.gemspec
> | /var/lib/gems/1.8/bin/ledger_web
> | /var/lib/gems/1.8/specifications/ledger_web-1.4.3.gemspec
> | /var/lib/gems/1.8/specifications/ledger_web-1.3.gemspec
> | /var/lib/gems/1.8/specifications/ledger_web-1.4.2.gemspec
> | /var/lib/gems/1.8/doc/ledger_web-1.4.2
> | /var/lib/gems/1.8/doc/ledger_web-1.4.2/rdoc/files/lib/ledger_web_rb.html
> | /var/lib/gems/1.8/doc/ledger_web-1.4.2/rdoc/files/lib/ledger_web
> | /var/lib/gems/1.8/doc/ledger_web-1.3
> | /var/lib/gems/1.8/doc/ledger_web-1.3/rdoc/files/lib/ledger_web_rb.html
> | /var/lib/gems/1.8/doc/ledger_web-1.3/rdoc/files/lib/ledger_web
> | /var/lib/gems/1.8/doc/ledger_web-1.4.3
> | /var/lib/gems/1.8/doc/ledger_web-1.4.3/rdoc/files/lib/ledger_web_rb.html
> | /var/lib/gems/1.8/doc/ledger_web-1.4.3/rdoc/files/lib/ledger_web
> | /var/lib/gems/1.8/cache/ledger_web-1.4.3.gem
> | /var/lib/gems/1.8/cache/ledger_web-1.3.gem
> | /var/lib/gems/1.8/cache/ledger_web-1.4.2.gem
> | /var/lib/gems/1.8/gems/ledger_web-1.4.2
> | /var/lib/gems/1.8/gems/ledger_web-1.4.2/ledger_web.gemspec
> | /var/lib/gems/1.8/gems/ledger_web-1.4.2/lib/ledger_web
> | /var/lib/gems/1.8/gems/ledger_web-1.4.2/lib/ledger_web.rb
> | /var/lib/gems/1.8/gems/ledger_web-1.4.2/bin/ledger_web
> | /var/lib/gems/1.8/gems/ledger_web-1.3
> | /var/lib/gems/1.8/gems/ledger_web-1.3/ledger_web.gemspec
> | /var/lib/gems/1.8/gems/ledger_web-1.3/lib/ledger_web
> | /var/lib/gems/1.8/gems/ledger_web-1.3/lib/ledger_web.rb
> | /var/lib/gems/1.8/gems/ledger_web-1.3/bin/ledger_web
> | /var/lib/gems/1.8/gems/ledger_web-1.4.3
> | /var/lib/gems/1.8/gems/ledger_web-1.4.3/ledger_web.gemspec
> | /var/lib/gems/1.8/gems/ledger_web-1.4.3/lib/ledger_web
> | /var/lib/gems/1.8/gems/ledger_web-1.4.3/lib/ledger_web.rb
> | /var/lib/gems/1.8/gems/ledger_web-1.4.3/bin/ledger_web
> `----
>
> and, as me,
>
> ,----
> | $ ledger_web
> | bash: ledger_web: command not found
> `----
>
> On the off chance I really did find it above but not in my path (/var‽),
>
> ,----
> | $ /var/lib/gems/1.8/bin/ledger_web
> | /home/myname/.ledger_web/config.rb:4:in `from_file': compile error 
> (SyntaxError)
> | /home/myname/.ledger_web/config.rb:2: syntax error, unexpected ':', 
> expecting kEND
> |    config.set :localhost:9090,
> |                          ^
> |       from (eval):3:in `eval'
> |       from 
> /var/lib/gems/1.8/gems/ledger_web-1.4.3/lib/ledger_web/config.rb:66:in 
> `from_file'
> |       from (eval):3:in `open_without_potential_path_argument'
> |       from (eval):3:in `open'
> |       from 
> /var/lib/gems/1.8/gems/ledger_web-1.4.3/lib/ledger_web/config.rb:65:in 
> `from_file'
> |       from 
> /var/lib/gems/1.8/gems/ledger_web-1.4.3/lib/ledger_web/config.rb:102:in 
> `instance'
> |       from 
> /var/lib/gems/1.8/gems/ledger_web-1.4.3/lib/ledger_web/config.rb:22:in 
> `initialize'
> |       from 
> /var/lib/gems/1.8/gems/ledger_web-1.4.3/lib/ledger_web/config.rb:72:in `new'
> |       from 
> /var/lib/gems/1.8/gems/ledger_web-1.4.3/lib/ledger_web/config.rb:72:in 
> `instance'
> |       from /var/lib/gems/1.8/gems/ledger_web-1.4.3/lib/ledger_web/app.rb:9
> |       from /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in 
> `gem_original_require'
> |       from /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `require'
> |       from /var/lib/gems/1.8/gems/ledger_web-1.4.3/lib/ledger_web.rb:10
> |       from /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in 
> `gem_original_require'
> |       from /usr/lib/ruby/1.8/rubygems/custom_require.rb:31:in `require'
> |       from /var/lib/gems/1.8/gems/ledger_web-1.4.3/bin/ledger_web:7
> |       from /var/lib/gems/1.8/bin/ledger_web:19:in `load'
> |       from /var/lib/gems/1.8/bin/ledger_web:19
> `----
>
> which probably means I misconfigured the system:
>
> ,----[ config.rb ]
> | LedgerWeb::Config.new do |config|
> |    config.set :localhost:9090,
> | "postgres://myname:mypassword@localhost/ledger"
> | end
> `----
>
> Tips?  That's probably easy to fix.
>
>> With regards to your postgres problem, it looks like your linux
>> distribution installed a (very sane) default of requiring passwords
>> for all accounts. PostgreSQL accounts are separate from system
>> accounts. To set a password on your database account, run the
>> following ($ and postgres=# are prompts):
>>
>> $ sudo su -u postgres psql
>
> That gave me errors, and I'm not on a sudo system, so I tried
>
> ,----
> | $ su -u postgres psql
> | su: invalid option -- 'u'
> | Usage: su [options] [LOGIN]
> |
> | Options:
> |   -c, --command COMMAND         pass COMMAND to the invoked shell
> |   -h, --help                    display this help message and exit
> |   -, -l, --login                make the shell a login shell
> |   -m, -p,
> |   --preserve-environment        do not reset environment variables, and
> |                                 keep the same shell
> |   -s, --shell SHELL             use SHELL instead of the default in passwd
> `----
>
> So I tried
>
> ,----
> | $ su postgres psql
> | Password:
> | /usr/bin/psql: line 18: use: command not found
> | /usr/bin/psql: line 20: use: command not found
> | /usr/bin/psql: line 22: use: command not found
> | /usr/bin/psql: line 23: use: command not found
> | /usr/bin/psql: psql: line 25: syntax error near unexpected token `$version,'
> | /usr/bin/psql: psql: line 25: `my ($version, $cluster, $db, $port,
> | $host);'
> `----
>
>> postgres=# alter role your_user_name with password 'your password';
>> postgres=# commit;
>> postgres=# \q
>
> Thinking a _little_ bit, I tried (as me)
>
> ,----
> | $ psql ledger
> | psql (9.1.3)
> | Type "help" for help.
> |
> | ledger=> alter role myname with password 'mypassword';
> | ALTER ROLE
> | ledger=> commit;
> | WARNING:  there is no transaction in progress
> | COMMIT
> | ledger=> \q
> `----
>
> and it seemed mostly happy.
>
>> To change the database URL that ledger_web uses, put the following
>> into ~/.ledger_web/config.rb:
>>
>> ,--
>> | LedgerWeb::Config.new do |config|
>> |   config.set :database_url,
>> "postgres://username:password@hostname/databasename"
>> | end
>> `--
>>
>> Replace the username, password, hostname, and databasename with the
>> appropriate values.
>
> See above.
>
>> I hope this helps you get up and running! Again, I'm sorry about the
>> missed gemspec option.
>
> I think I'm getting closer!  Perhaps just the config.rb file plus
> perhaps putting the executable in something other than /var, unless
> that's where it belongs.
>
> More tips?  I hope this helps others, too.
>
> Bill
> --
> Bill Harris
> Facilitated Systems
> http://makingsense.facilitatedsystems.com/

Reply via email to