syntax.us Let the syntax do the talking
Blog Contact Posts Questions Tags Hire Me

When I deploy a Rails-app on Heroku, they run it in a Linux environment.

The Heroku Linux environment contains most of the Linux libraries I need.

On rare occasions, I need to enhance the Linux libraries in my Heroku Linux environments.

Since Heroku does not offer a Linux environment which has Sqlite3 installed, I can use Sqlite3 as an example of how to enhance Heroku Linux environments.

So, here is the question.

Question:
On Heroku, how do I install the sqlite3 gem?

To me, Heroku offers three general ways to interact with its Linux environments.

First, is a CLI called the Heroku Toolbelt:

http://www.google.com/search?q=Heroku+Toolbelt

Second, is an API:

https://devcenter.heroku.com/categories/platform-api

Third, is the Heroku Ruby Buildpack for Cedar:

https://github.com/heroku/heroku-buildpack-ruby

I call it 'buildpack' and that is is the main topic of this post.

If I want to install the sqlite3 gem on my Linux laptop, I need to first install Sqlite3 which is easy to do if I have the root password.

Since I do not have root access on Heroku Linux, how can I install Sqlite3 on Heroku Linux?

The answer is I use buildpack to do it.

First, I login to my github.com account and visit this page:

https://github.com/heroku/heroku-buildpack-ruby

Then, I press the fork-button at the top-right.

Next, I clone my fork of the repo to my Linux laptop.

If I don't have a Linux laptop handy I use a copy of Linux running in a VirtualBox or on a provider like Amazon or DigitalOcean.

From my clone of my forked repo, I load this file in my editor:

lib/language_pack/ruby.rb

You can refer to the original file here:

https://github.com/heroku/heroku-buildpack-ruby/blob/master/lib/language_pack/ruby.rb

Next I search for the string:

Running

As I write this post, that string is on line 516, but that will change as Heroku enhances the file in the future months/years.

Anyway, I add a few lines of code to the file:



Before:
          puts "Running: #{bundle_command}"
          instrument "ruby.bundle_install" do
            bundle_time = Benchmark.realtime do
              bundler_output << pipe("#{bundle_command} --no-clean", 
                out: "2>&1", env: env_vars, user_env: true)
            end
          end

After: puts "Running: #{bundle_command}" instrument "ruby.bundle_install" do bundle_time = Benchmark.realtime do # Bikle hbs = "#{pwd}/heroku_buildpack_scripts" # If #{hbs}/dothis.bash exists, then run it. if File.exists?("#{hbs}/dothis.bash") cmd1 = "export GEM_PATH=#{ENV["GEM_PATH"]};" cmd2 = "export GEM_HOME=#{ENV["GEM_HOME"]};" cmd3 = "/bin/bash #{hbs}/dothis.bash" cmds = "#{cmd1} #{cmd2} #{cmd3} " bundler_output << pipe("cmds") end # Bikle bundler_output << pipe("#{bundle_command} --no-clean", out: "2>&1", env: env_vars, user_env: true) end
My intent behind this syntax is to defer the installation of Sqlite3 until after Heroku has seen my Rails-app.

The way it should work is that all installation activity should be driven by a script named dothis.bash and that script should live in my Rails repo, not my buildpack repo.

In my Rails repo the location of the script is here:

Rails.root/heroku_buildpack_scripts/dothis.bash

When I first studied this question of using buildpack to add the sqlite3 gem to Heroku I found two other buildpack repos via google:

https://github.com/yotsumoto/heroku-buildpack-ruby-with-sqlite3

https://github.com/c4mprod/heroku-buildpack-ruby-sqlite

Their approach is different than mine.

They make significant changes to the buildpack.

My approach is to make the absolute minimum change to the buildpack.

My change is really just one line of code:
bundler_output << pipe("cmds")
This is good because it will make it easy for me to keep my buildpack merged with the original Heroku buildpack in the future months/years when they enhance it.

After I enhance my buildpack and git push it to github, I can test it with a new-empty Rails-app.

Some shell commands I can use to do that test are listed below:
cd /tmp/
rails new hero_app10 -d postgresql
cd hero_app10
sed -i '1a ruby "2.1.5"' Gemfile
bundle install
git init
git add .
git commit -am hello
heroku apps:create hero-app10 --stack cedar --buildpack https://github.com/danbikle/heroku-buildpack-ruby
The Rails-app, hero_app10, should deploy the same as if I used the original buildpack.

This should happen because my if-then logic will look for this file in hero_app10:

Rails.root/heroku_buildpack_scripts/dothis.bash

But hero_app10 is a new empty Rails-app.

So, dothis.bash does not exist yet.

So, the buildpack script does not try to run it.

If dothis.bash does exist, the buildpack script should try to run it and I can test this by placing one shell command in the script:
echo $0 says hello world.
That should work okay and then I can enhance dothis.bash so it does two tasks.

First, it installs Sqlite3.

Second, it installs the sqlite3 gem.

The syntax for that is displayed below:
#!/bin/bash

# hbs/dothis.bash

# I use this script to help me enhance the ability of 
# heroku-buildpack

# heroku-buildpack is software used by heroku to help me deploy applications.

rails_root=`pwd`

echo rails_root is
echo $rails_root
cd ${rails_root}/myvendor/

# I should install sqlite3 software locally under Rails.root

mkdir -p ${rails_root}/myvendor/sqlite3
tar zxf  ${rails_root}/myvendor/sqlite-autoconf-3080702.tar.gz 
cd sqlite-autoconf-3080702/
./configure --prefix=${rails_root}/myvendor/sqlite3
make
make install

# I should be able to gem install sqlite3 now
gem install sqlite3 -- --with-sqlite3-dir=${rails_root}/myvendor/sqlite3
gem list    sqlite3

exit
I should note two bits of information about the above script.

First, it assumes that the uninstalled sqlite3 software resides here:
${rails_root}/myvendor/sqlite-autoconf-3080702.tar.gz
I should say that I put it there by hand and then committed it to the Rails-repo. The file itself I got from this URL:

http://www.sqlite.org/download.html

Second, I need to eventually add gem 'sqlite3' to the Gemfile. But I should do that after the buildpack can get dothis.bash to run error-free.

Anyway it worked well for me.

So, after I got dothis.bash to run and after I added gem 'sqlite3' to the Gemfile, I captured a screendump of installing sqlite3 gem on Heroku.

The shell commands are listed below:
cd /tmp/
rails new hero_app11 -d postgresql
cd hero_app11
by hand add  ${rails_root}/myvendor/sqlite-autoconf-3080702.tar.gz
by hand add heroku_buildpack_scripts/dothis.bash
head Gemfile
sed -i '1a ruby "2.1.5"' Gemfile
head Gemfile
git init
git add .
git commit -am hello
heroku apps:create hero-app11 --stack cedar --buildpack https://github.com/danbikle/heroku-buildpack-ruby
git push heroku master
head Gemfile
sed -i '2a gem "sqlite3"' Gemfile
head Gemfile
bundle install
git commit -am hello
git push heroku master
heroku run 'gem list sqlite3'
Here is the actual screendump:
dan@hp /tmp $ 
dan@hp /tmp $ which ruby
/home/dan/.rbenv/shims/ruby
dan@hp /tmp $ ruby -v
ruby 2.1.5p273 (2014-11-13 revision 48405) [x86_64-linux]
dan@hp /tmp $ which rails
/home/dan/.rbenv/shims/rails
dan@hp /tmp $ rails -v
Rails 4.1.8
dan@hp /tmp $ 
dan@hp /tmp $ rails new hero_app11 -d postgresql
      create  
      create  README.rdoc
      create  Rakefile
      create  config.ru
      create  .gitignore
      create  Gemfile
      create  app
      create  app/assets/javascripts/application.js
      create  app/assets/stylesheets/application.css
      create  app/controllers/application_controller.rb
      create  app/helpers/application_helper.rb
      create  app/views/layouts/application.html.erb
      create  app/assets/images/.keep
      create  app/mailers/.keep
      create  app/models/.keep
      create  app/controllers/concerns/.keep
      create  app/models/concerns/.keep
      create  bin
      create  bin/bundle
      create  bin/rails
      create  bin/rake
      create  config
      create  config/routes.rb
      create  config/application.rb
      create  config/environment.rb
      create  config/secrets.yml
      create  config/environments
      create  config/environments/development.rb
      create  config/environments/production.rb
      create  config/environments/test.rb
      create  config/initializers
      create  config/initializers/assets.rb
      create  config/initializers/backtrace_silencers.rb
      create  config/initializers/cookies_serializer.rb
      create  config/initializers/filter_parameter_logging.rb
      create  config/initializers/inflections.rb
      create  config/initializers/mime_types.rb
      create  config/initializers/session_store.rb
      create  config/initializers/wrap_parameters.rb
      create  config/locales
      create  config/locales/en.yml
      create  config/boot.rb
      create  config/database.yml
      create  db
      create  db/seeds.rb
      create  lib
      create  lib/tasks
      create  lib/tasks/.keep
      create  lib/assets
      create  lib/assets/.keep
      create  log
      create  log/.keep
      create  public
      create  public/404.html
      create  public/422.html
      create  public/500.html
      create  public/favicon.ico
      create  public/robots.txt
      create  test/fixtures
      create  test/fixtures/.keep
      create  test/controllers
      create  test/controllers/.keep
      create  test/mailers
      create  test/mailers/.keep
      create  test/models
      create  test/models/.keep
      create  test/helpers
      create  test/helpers/.keep
      create  test/integration
      create  test/integration/.keep
      create  test/test_helper.rb
      create  tmp/cache
      create  tmp/cache/assets
      create  vendor/assets/javascripts
      create  vendor/assets/javascripts/.keep
      create  vendor/assets/stylesheets
      create  vendor/assets/stylesheets/.keep
         run  bundle install
Fetching gem metadata from https://rubygems.org/...........
Resolving dependencies...
Using rake 10.4.2
Using i18n 0.6.11
Using json 1.8.1
Using minitest 5.4.3
Using thread_safe 0.3.4
Using tzinfo 1.2.2
Using activesupport 4.1.8
Using builder 3.2.2
Using erubis 2.7.0
Using actionview 4.1.8
Using rack 1.5.2
Using rack-test 0.6.2
Using actionpack 4.1.8
Using mime-types 2.4.3
Using mail 2.6.3
Using actionmailer 4.1.8
Using activemodel 4.1.8
Using arel 5.0.1.20140414130214
Using activerecord 4.1.8
Using bundler 1.7.7
Using coffee-script-source 1.8.0
Using execjs 2.2.2
Using coffee-script 2.3.0
Using thor 0.19.1
Using railties 4.1.8
Using coffee-rails 4.0.1
Using hike 1.2.3
Using multi_json 1.10.1
Using jbuilder 2.2.5
Using jquery-rails 3.1.2
Using pg 0.17.1
Using tilt 1.4.1
Using sprockets 2.12.3
Using sprockets-rails 2.2.2
Using rails 4.1.8
Using rdoc 4.1.2
Using sass 3.2.19
Using sass-rails 4.0.5
Using sdoc 0.4.1
Using spring 1.2.0
Using turbolinks 2.5.2
Using uglifier 2.5.3
Your bundle is complete!
Use `bundle show [gemname]` to see where a bundled gem is installed.
         run  bundle exec spring binstub --all
* bin/rake: spring inserted
* bin/rails: spring inserted
dan@hp /tmp $ 
dan@hp /tmp $ cd hero_app11
dan@hp /tmp/hero_app11 $ 
dan@hp /tmp/hero_app11 $ rsync -av /tmp/appsqlite/myvendor .
sending incremental file list
myvendor/
myvendor/sqlite-autoconf-3080702.tar.gz

sent 1,999,609 bytes  received 39 bytes  3,999,296.00 bytes/sec
total size is 1,998,965  speedup is 1.00
dan@hp /tmp/hero_app11 $ rsync -av /tmp/appsqlite/heroku_buildpack_scripts .
sending incremental file list
heroku_buildpack_scripts/
heroku_buildpack_scripts/dothis.bash

sent 1,127 bytes  received 39 bytes  2,332.00 bytes/sec
total size is 968  speedup is 0.83
dan@hp /tmp/hero_app11 $ 
dan@hp /tmp/hero_app11 $ 
dan@hp /tmp/hero_app11 $ cat heroku_buildpack_scripts/dothis.bash 
#!/bin/bash

# hbs/dothis.bash

# I use this script to help me enhance the ability of 
# heroku-buildpack

# heroku-buildpack is software used by heroku to help me deploy applications.

rails_root=`pwd`

echo rails_root is
echo $rails_root
cd ${rails_root}/myvendor/

# I should install sqlite3 software locally under Rails.root

mkdir -p ${rails_root}/myvendor/sqlite3
tar zxf  ${rails_root}/myvendor/sqlite-autoconf-3080702.tar.gz 
cd sqlite-autoconf-3080702/
./configure --prefix=${rails_root}/myvendor/sqlite3
make
make install

# I should be able to gem install sqlite3 now
gem install sqlite3 -- --with-sqlite3-dir=${rails_root}/myvendor/sqlite3
gem list    sqlite3

exit
dan@hp /tmp/hero_app11 $ 
dan@hp /tmp/hero_app11 $ 
dan@hp /tmp/hero_app11 $ head Gemfile
source 'https://rubygems.org'


# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '4.1.8'
# Use postgresql as the database for Active Record
gem 'pg'
# Use SCSS for stylesheets
gem 'sass-rails', '~> 4.0.3'
# Use Uglifier as compressor for JavaScript assets
dan@hp /tmp/hero_app11 $ 
dan@hp /tmp/hero_app11 $ 
dan@hp /tmp/hero_app11 $ 
dan@hp /tmp/hero_app11 $ sed -i '1a ruby "2.1.5"' Gemfile
dan@hp /tmp/hero_app11 $ 
dan@hp /tmp/hero_app11 $ 
dan@hp /tmp/hero_app11 $ head Gemfile
source 'https://rubygems.org'
ruby "2.1.5"


# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '4.1.8'
# Use postgresql as the database for Active Record
gem 'pg'
# Use SCSS for stylesheets
gem 'sass-rails', '~> 4.0.3'
dan@hp /tmp/hero_app11 $ 
dan@hp /tmp/hero_app11 $ 
dan@hp /tmp/hero_app11 $ bundle install
Using rake 10.4.2
Using i18n 0.6.11
Using json 1.8.1
Using minitest 5.4.3
Using thread_safe 0.3.4
Using tzinfo 1.2.2
Using activesupport 4.1.8
Using builder 3.2.2
Using erubis 2.7.0
Using actionview 4.1.8
Using rack 1.5.2
Using rack-test 0.6.2
Using actionpack 4.1.8
Using mime-types 2.4.3
Using mail 2.6.3
Using actionmailer 4.1.8
Using activemodel 4.1.8
Using arel 5.0.1.20140414130214
Using activerecord 4.1.8
Using coffee-script-source 1.8.0
Using execjs 2.2.2
Using coffee-script 2.3.0
Using thor 0.19.1
Using railties 4.1.8
Using coffee-rails 4.0.1
Using hike 1.2.3
Using multi_json 1.10.1
Using jbuilder 2.2.5
Using jquery-rails 3.1.2
Using pg 0.17.1
Using bundler 1.7.7
Using tilt 1.4.1
Using sprockets 2.12.3
Using sprockets-rails 2.2.2
Using rails 4.1.8
Using rdoc 4.1.2
Using sass 3.2.19
Using sass-rails 4.0.5
Using sdoc 0.4.1
Using spring 1.2.0
Using turbolinks 2.5.2
Using uglifier 2.5.3
Your bundle is complete!
Use `bundle show [gemname]` to see where a bundled gem is installed.
dan@hp /tmp/hero_app11 $ 
dan@hp /tmp/hero_app11 $ 
dan@hp /tmp/hero_app11 $ git init
Initialized empty Git repository in /tmp/hero_app11/.git/
dan@hp /tmp/hero_app11 $ git add .
dan@hp /tmp/hero_app11 $ git commit -am hello
[master (root-commit) f83aab8] hello
 58 files changed, 992 insertions(+)
 create mode 100644 .gitignore
 create mode 100644 Gemfile
 create mode 100644 Gemfile.lock
 create mode 100644 README.rdoc
 create mode 100644 Rakefile
 create mode 100644 app/assets/images/.keep
 create mode 100644 app/assets/javascripts/application.js
 create mode 100644 app/assets/stylesheets/application.css
 create mode 100644 app/controllers/application_controller.rb
 create mode 100644 app/controllers/concerns/.keep
 create mode 100644 app/helpers/application_helper.rb
 create mode 100644 app/mailers/.keep
 create mode 100644 app/models/.keep
 create mode 100644 app/models/concerns/.keep
 create mode 100644 app/views/layouts/application.html.erb
 create mode 100755 bin/bundle
 create mode 100755 bin/rails
 create mode 100755 bin/rake
 create mode 100755 bin/spring
 create mode 100644 config.ru
 create mode 100644 config/application.rb
 create mode 100644 config/boot.rb
 create mode 100644 config/database.yml
 create mode 100644 config/environment.rb
 create mode 100644 config/environments/development.rb
 create mode 100644 config/environments/production.rb
 create mode 100644 config/environments/test.rb
 create mode 100644 config/initializers/assets.rb
 create mode 100644 config/initializers/backtrace_silencers.rb
 create mode 100644 config/initializers/cookies_serializer.rb
 create mode 100644 config/initializers/filter_parameter_logging.rb
 create mode 100644 config/initializers/inflections.rb
 create mode 100644 config/initializers/mime_types.rb
 create mode 100644 config/initializers/session_store.rb
 create mode 100644 config/initializers/wrap_parameters.rb
 create mode 100644 config/locales/en.yml
 create mode 100644 config/routes.rb
 create mode 100644 config/secrets.yml
 create mode 100644 db/seeds.rb
 create mode 100644 heroku_buildpack_scripts/dothis.bash
 create mode 100644 lib/assets/.keep
 create mode 100644 lib/tasks/.keep
 create mode 100644 log/.keep
 create mode 100644 myvendor/sqlite-autoconf-3080702.tar.gz
 create mode 100644 public/404.html
 create mode 100644 public/422.html
 create mode 100644 public/500.html
 create mode 100644 public/favicon.ico
 create mode 100644 public/robots.txt
 create mode 100644 test/controllers/.keep
 create mode 100644 test/fixtures/.keep
 create mode 100644 test/helpers/.keep
 create mode 100644 test/integration/.keep
 create mode 100644 test/mailers/.keep
 create mode 100644 test/models/.keep
 create mode 100644 test/test_helper.rb
 create mode 100644 vendor/assets/javascripts/.keep
 create mode 100644 vendor/assets/stylesheets/.keep
dan@hp /tmp/hero_app11 $ 
dan@hp /tmp/hero_app11 $ 
dan@hp /tmp/hero_app11 $ 
dan@hp /tmp/hero_app11 $ heroku apps:create hero_app11 --stack cedar 
  --buildpack https://github.com/danbikle/heroku-buildpack-ruby
 !    Name must start with a letter and can only contain lowercase letters, 
  numbers, and dashes.
dan@hp /tmp/hero_app11 $ 
dan@hp /tmp/hero_app11 $ heroku apps:create hero-app11 --stack cedar 
  --buildpack https://github.com/danbikle/heroku-buildpack-ruby
Creating hero-app11... done, stack is cedar
BUILDPACK_URL=https://github.com/danbikle/heroku-buildpack-ruby
https://hero-app11.herokuapp.com/ | https://git.heroku.com/hero-app11.git
Git remote heroku added
dan@hp /tmp/hero_app11 $ 
dan@hp /tmp/hero_app11 $ git push heroku master
Counting objects: 67, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (55/55), done.
Writing objects: 100% (67/67), 1.92 MiB | 567.00 KiB/s, done.
Total 67 (delta 2), reused 0 (delta 0)
remote: Compressing source files... done.        
remote: Building source:        
remote: 
remote: -----> Fetching custom git buildpack... done        
remote: -----> Ruby app detected        
remote: -----> Compiling Ruby/Rails        
remote: -----> Using Ruby version: ruby-2.1.5        
remote: -----> Installing dependencies using 1.6.3        
remote:        Running: bundle install --without development:test 
  --path vendor/bundle --binstubs vendor/bundle/bin -j4 --deployment        
remote:        rails_root is        
remote:        /tmp/build_170dbec7e2b8035ed226a4f49dff6d7f        
remote:        checking for a BSD-compatible install... /usr/bin/install -c
remote:        checking whether build environment is sane... yes        
remote:        checking for a thread-safe mkdir -p... /bin/mkdir -p        
remote:        checking for gawk... no        
remote:        checking for mawk... mawk        
remote:        checking whether make sets $(MAKE)... yes        
remote:        checking for style of include used by make... GNU        
remote:        checking for gcc... gcc        
remote:        checking whether the C compiler works... yes        
remote:        checking for C compiler default output file name... a.out        
remote:        checking for suffix of executables...        
remote:        checking whether we are cross compiling... no        
remote:        checking for suffix of object files... o        
remote:        checking whether we are using the GNU C compiler... yes        
remote:        checking whether gcc accepts -g... yes        
remote:        checking for gcc option to accept ISO C89... none needed        
remote:        checking dependency style of gcc... gcc3        
remote:        checking for special C compiler options needed for large files...

remote:        checking for _FILE_OFFSET_BITS value needed for large files... no
remote:        checking for gcc... (cached) gcc        
remote:        checking whether we are using the GNU C compiler... (cached) yes
remote:        checking whether gcc accepts -g... (cached) yes        
remote:        checking for gcc option to accept ISO C89... (cached) none needed
remote:        checking dependency style of gcc... (cached) gcc3        
remote:        checking for ranlib... ranlib        
remote:        checking build system type... x86_64-unknown-linux-gnu        
remote:        checking host system type... x86_64-unknown-linux-gnu        
remote:        checking how to print strings... printf        
remote:        checking for a sed that does not truncate output... /bin/sed
remote:        checking for grep that handles long lines and -e... /bin/grep
remote:        checking for egrep... /bin/grep -E        
remote:        checking for fgrep... /bin/grep -F        
remote:        checking for ld used by gcc... /usr/bin/ld        
remote:        checking if the linker (/usr/bin/ld) is GNU ld... yes        
remote:        checking for BSD- or MS-compatible name lister (nm)... 
remote:        checking the name lister (/usr/bin/nm -B) interface... 
remote:        checking whether ln -s works... yes        
remote:        checking the maximum length of command line arguments... 
remote:        checking whether the shell understands some XSI constructs... 
remote:        checking whether the shell understands "+="... yes        
remote:        checking how to convert x86_64-unknown-linux-gnu file names to 
remote:        checking how to convert x86_64-unknown-linux-gnu file names to 
remote:        checking for /usr/bin/ld option to reload object files... 
remote:        checking for objdump... objdump        
remote:        checking how to recognize dependent libraries... pass_all        
remote:        checking for dlltool... no        
remote:        checking how to associate runtime and link libraries... 
remote:        checking for ar... ar        
remote:        checking for archiver @FILE support... @        
remote:        checking for strip... strip        
remote:        checking for ranlib... (cached) ranlib        
remote:        checking command to parse /usr/bin/nm -B output from gcc object...
remote:        checking for sysroot... no        
remote:        checking for mt... mt        
remote:        checking if mt is a manifest tool... no        
remote:        checking how to run the C preprocessor... gcc -E        
remote:        checking for ANSI C header files... yes        
remote:        checking for sys/types.h... yes        
remote:        checking for sys/stat.h... yes        
remote:        checking for stdlib.h... yes        
remote:        checking for string.h... yes        
remote:        checking for memory.h... yes        
remote:        checking for strings.h... yes        
remote:        checking for inttypes.h... yes        
remote:        checking for stdint.h... yes        
remote:        checking for unistd.h... yes        
remote:        checking for dlfcn.h... yes        
remote:        checking for objdir... .libs        
remote:        checking if gcc supports -fno-rtti -fno-exceptions... no        
remote:        checking for gcc option to produce PIC... -fPIC -DPIC        
remote:        checking if gcc PIC flag -fPIC -DPIC works... yes        
remote:        checking if gcc static flag -static works... yes        
remote:        checking if gcc supports -c -o file.o... yes        
remote:        checking if gcc supports -c -o file.o... (cached) yes        
remote:        checking whether the gcc linker (/usr/bin/ld -m elf_x86_64)
remote:        checking whether -lc should be explicitly linked in... no        
remote:        checking dynamic linker characteristics... GNU/Linux ld.so        
remote:        checking how to hardcode library paths into programs... 
remote:        checking whether stripping libraries is possible... yes        
remote:        checking if libtool supports shared libraries... yes        
remote:        checking whether to build shared libraries... yes        
remote:        checking whether to build static libraries... yes        
remote:        checking for fdatasync... yes        
remote:        checking for usleep... yes        
remote:        checking for fullfsync... no        
remote:        checking for localtime_r... yes        
remote:        checking for gmtime_r... yes        
remote:        checking whether strerror_r is declared... yes        
remote:        checking for strerror_r... yes        
remote:        checking whether strerror_r returns char *... no        
remote:        checking for library containing tgetent... -lcurses        
remote:        checking for library containing readline... -lreadline        
remote:        checking for readline... yes        
remote:        checking for library containing pthread_create... -lpthread        
remote:        checking for library containing dlopen... -ldl        
remote:        checking for whether to support dynamic extensions... yes        
remote:        checking for posix_fallocate... yes        
remote:        configure: creating ./config.status        
remote:        config.status: creating Makefile        
remote:        config.status: creating sqlite3.pc        
remote:        config.status: executing depfiles commands        
remote:        config.status: executing libtool commands        
remote:        /bin/bash ./libtool --tag=CC   --mode=compile gcc -DPACKAGE_NAME

remote:        libtool: compile:  gcc -DPACKAGE_NAME=\"sqlite\" 

remote:        libtool: compile:  gcc -DPACKAGE_NAME=\"sqlite\" 

remote:        mv -f .deps/sqlite3.Tpo .deps/sqlite3.Plo        
remote:        /bin/bash ./libtool --tag=CC   --mode=link gcc -D_REENTRANT=1

remote:        libtool: link: gcc -shared  -fPIC -DPIC  .libs/sqlite3.o  

remote:        libtool: link: (cd ".libs" && rm -f "libsqlite3.so.0" && ln -s 

remote:        libtool: link: (cd ".libs" && rm -f "libsqlite3.so" && ln -s 

remote:        libtool: link: ar cru .libs/libsqlite3.a  sqlite3.o        
remote:        libtool: link: ranlib .libs/libsqlite3.a        
remote:        libtool: link: 

remote:        gcc -DPACKAGE_NAME=\"sqlite\" -DPACKAGE_TARNAME=\"sqlite\"

remote:        mv -f .deps/shell.Tpo .deps/shell.Po        
remote:        /bin/bash ./libtool --tag=CC   --mode=link gcc -D_REENTRANT=1

remote:        libtool: link: gcc -D_REENTRANT=1 -DSQLITE_THREADSAFE=1 

remote:        make[1]: Entering directory `/tmp/build_170dbec7e2b8035ed226

remote:        /bin/mkdir -p 
'/tmp/build_170dbec7e2b8035ed226a4f49dff6d7f/myvendor/sqlite3/lib'        
remote:        /bin/bash ./libtool   --mode=install /usr/bin/install -c   
libsqlite3.la 
'/tmp/build_170dbec7e2b8035ed226a4f49dff6d7f/myvendor/sqlite3/lib'        
remote:        libtool: install: /usr/bin/install -c .libs/libsqlite3.so.0.8.6 
remote:        libtool: install: (cd /tmp/build_170dbec7e2b8035ed226a4f49dff6d7
remote:        libtool: install: (cd /tmp/build_170dbec7e2b8035ed226a4f49dff6d7f
remote:        libtool: install: /usr/bin/install -c .libs/libsqlite3.lai 
remote:        libtool: install: /usr/bin/install -c .libs/libsqlite3.a 
remote:        libtool: install: chmod 644 /tmp/build_170dbec7e2b8035ed226
remote:        libtool: install: ranlib /tmp/build_170dbec7e2b8035ed226a4f4
remote:        libtool: finish: PATH="vendor/bundle/bin:vendor/bundle/ruby/
remote:        ------------------------------------------------------------
remote:        Libraries have been installed in:        
remote:        /tmp/build_170dbec7e2b8035ed226a4f49dff6d7f/myvendor/sqlite3/lib
remote:        If you ever happen to want to link against installed libraries
remote:        in a given directory, LIBDIR, you must either use libtool, and
remote:        specify the full pathname of the library, or use the `-LLIBDIR'
remote:        flag during linking and do at least one of the following:        
remote:        - add LIBDIR to the `LD_LIBRARY_PATH' environment variable        
remote:        during execution        
remote:        - add LIBDIR to the `LD_RUN_PATH' environment variable        
remote:        during linking        
remote:        - use the `-Wl,-rpath -Wl,LIBDIR' linker flag        
remote:        - have your system administrator add LIBDIR to `/etc/ld.so.conf'
remote:        See any operating system documentation about shared libraries for
remote:        more information, such as the ld(1) and ld.so(8) manual pages.
remote:        ---------------------------------------------------------------
remote:        /bin/mkdir -p '/tmp/build_170dbec7e2b8035ed226a4f49dff6d7f/myve
remote:        /bin/bash ./libtool   --mode=install /usr/bin/install -c sqlite
remote:        libtool: install: /usr/bin/install -c .libs/sqlite3 /tmp/build_
remote:        /bin/mkdir -p '/tmp/build_170dbec7e2b8035ed226a4f49dff6d7f/myve
remote:        /usr/bin/install -c -m 644 sqlite3.h sqlite3ext.h '/tmp/build_1
remote:        /bin/mkdir -p '/tmp/build_170dbec7e2b8035ed226a4f49dff6d7f/myve
remote:        /usr/bin/install -c -m 644 sqlite3.1 '/tmp/build_170dbec7e2b803
remote:        /bin/mkdir -p '/tmp/build_170dbec7e2b8035ed226a4f49dff6d7f/myve
remote:        /usr/bin/install -c -m 644 sqlite3.pc '/tmp/build_170dbec7e2b80
remote:        make[1]: Leaving directory `/tmp/build_170dbec7e2b8035ed226a4f4
remote:        Building native extensions with: '--with-sqlite3-dir=/tmp/build
remote:        This could take a while...        
remote:        Successfully installed sqlite3-1.3.10        
remote:        Parsing documentation for sqlite3-1.3.10        
remote:        Installing ri documentation for sqlite3-1.3.10        
remote:        Done installing documentation for sqlite3 after 1 seconds        
remote:        1 gem installed        
remote:        sqlite3 (1.3.10)        
remote:        Fetching gem metadata from https://rubygems.org/..........        
remote:        Using json 1.8.1        
remote:        Installing i18n 0.6.11        
remote:        Installing minitest 5.4.3        
remote:        Installing rake 10.4.2        
remote:        Installing thread_safe 0.3.4        
remote:        Installing builder 3.2.2        
remote:        Installing rack 1.5.2        
remote:        Installing erubis 2.7.0        
remote:        Installing mime-types 2.4.3        
remote:        Installing arel 5.0.1.20140414130214        
remote:        Installing coffee-script-source 1.8.0        
remote:        Installing execjs 2.2.2        
remote:        Installing hike 1.2.3        
remote:        Installing thor 0.19.1        
remote:        Installing multi_json 1.10.1        
remote:        Using bundler 1.6.3        
remote:        Installing tilt 1.4.1        
remote:        Installing sass 3.2.19        
remote:        Installing tzinfo 1.2.2        
remote:        Installing rdoc 4.1.2        
remote:        Installing rack-test 0.6.2        
remote:        Installing mail 2.6.3        
remote:        Installing coffee-script 2.3.0        
remote:        Installing uglifier 2.5.3        
remote:        Installing sprockets 2.12.3        
remote:        Installing activesupport 4.1.8        
remote:        Installing sdoc 0.4.1        
remote:        Installing actionview 4.1.8        
remote:        Installing activemodel 4.1.8        
remote:        Installing jbuilder 2.2.5        
remote:        Installing actionpack 4.1.8        
remote:        Installing actionmailer 4.1.8        
remote:        Installing activerecord 4.1.8        
remote:        Installing sprockets-rails 2.2.2        
remote:        Installing railties 4.1.8        
remote:        Installing jquery-rails 3.1.2        
remote:        Installing coffee-rails 4.0.1        
remote:        Installing sass-rails 4.0.5        
remote:        Installing rails 4.1.8        
remote:        Installing turbolinks 2.5.2        
remote:        Installing pg 0.17.1        
remote:        Your bundle is complete!        
remote:        Gems in the groups development and test were not installed.        
remote:        It was installed into ./vendor/bundle        
remote:        Post-install message from rdoc:        
remote:        Depending on your version of ruby, you may need to install 
remote:        <= 1.8.6 : unsupported        
remote:        = 1.8.7 : gem install rdoc-data; rdoc-data --install        
remote:        = 1.9.1 : gem install rdoc-data; rdoc-data --install        
remote:        >= 1.9.2 : nothing to do! Yay!        
remote:        Bundle completed (99.24s)        
remote:        Cleaning up the bundler cache.        
remote:        Removing sqlite3 (1.3.10)        
remote: -----> Preparing app for Rails asset pipeline        
remote:        Running: rake assets:precompile        
remote:        I, [2014-12-05T21:23:48.494863 #2832]  INFO -- : Writing /tmp/
remote:        I, [2014-12-05T21:23:48.513896 #2832]  INFO -- : Writing /tmp/
remote:        Asset precompilation completed (6.69s)        
remote:        Cleaning assets        
remote:        Running: rake assets:clean        
remote: 
remote: ###### WARNING:        
remote:        Include 'rails_12factor' gem to enable all platform features    
remote: 
remote: ###### WARNING:        
remote:        No Procfile detected, using the default web server (webrick)    
remote:        https://devcenter.heroku.com/articles/ruby-default-web-server
remote: 
remote: -----> Discovering process types        
remote:        Procfile declares types -> (none)        
remote:        Default types for Ruby  -> console, rake, web, worker        
remote: 
remote: -----> Compressing... done, 32.9MB        
remote: -----> Launching... done, v7        
remote:        https://hero-app11.herokuapp.com/ deployed to Heroku        
remote: 
remote: Verifying deploy... done.        
To https://git.heroku.com/hero-app11.git
 * [new branch]      master -> master
dan@hp /tmp/hero_app11 $ 
dan@hp /tmp/hero_app11 $ 
dan@hp /tmp/hero_app11 $ 
dan@hp /tmp/hero_app11 $ head Gemfile
source 'https://rubygems.org'
ruby "2.1.5"


# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '4.1.8'
# Use postgresql as the database for Active Record
gem 'pg'
# Use SCSS for stylesheets
gem 'sass-rails', '~> 4.0.3'
dan@hp /tmp/hero_app11 $ sed -i '2a gem "sqlite3"' Gemfile
dan@hp /tmp/hero_app11 $ 
dan@hp /tmp/hero_app11 $ 
dan@hp /tmp/hero_app11 $ head Gemfile
source 'https://rubygems.org'
ruby "2.1.5"
gem "sqlite3"


# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '4.1.8'
# Use postgresql as the database for Active Record
gem 'pg'
# Use SCSS for stylesheets
dan@hp /tmp/hero_app11 $ 
dan@hp /tmp/hero_app11 $ 
dan@hp /tmp/hero_app11 $ 
dan@hp /tmp/hero_app11 $ bundle install
Resolving dependencies...
Using rake 10.4.2
Using i18n 0.6.11
Using json 1.8.1
Using minitest 5.4.3
Using thread_safe 0.3.4
Using tzinfo 1.2.2
Using activesupport 4.1.8
Using builder 3.2.2
Using erubis 2.7.0
Using actionview 4.1.8
Using rack 1.5.2
Using rack-test 0.6.2
Using actionpack 4.1.8
Using mime-types 2.4.3
Using mail 2.6.3
Using actionmailer 4.1.8
Using activemodel 4.1.8
Using arel 5.0.1.20140414130214
Using activerecord 4.1.8
Using bundler 1.7.7
Using coffee-script-source 1.8.0
Using execjs 2.2.2
Using coffee-script 2.3.0
Using thor 0.19.1
Using railties 4.1.8
Using coffee-rails 4.0.1
Using hike 1.2.3
Using multi_json 1.10.1
Using jbuilder 2.2.5
Using jquery-rails 3.1.2
Using pg 0.17.1
Using tilt 1.4.1
Using sprockets 2.12.3
Using sprockets-rails 2.2.2
Using rails 4.1.8
Using rdoc 4.1.2
Using sass 3.2.19
Using sass-rails 4.0.5
Using sdoc 0.4.1
Using spring 1.2.0
Using sqlite3 1.3.10
Using turbolinks 2.5.2
Using uglifier 2.5.3
Your bundle is complete!
Use `bundle show [gemname]` to see where a bundled gem is installed.
dan@hp /tmp/hero_app11 $ 
dan@hp /tmp/hero_app11 $ 
dan@hp /tmp/hero_app11 $ 
dan@hp /tmp/hero_app11 $ git commit -am hello
[master 2e43116] hello
 2 files changed, 3 insertions(+)
dan@hp /tmp/hero_app11 $ 
dan@hp /tmp/hero_app11 $ git status
On branch master
nothing to commit, working directory clean
dan@hp /tmp/hero_app11 $ 
dan@hp /tmp/hero_app11 $ 
dan@hp /tmp/hero_app11 $ git push heroku master
Counting objects: 7, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (4/4), done.
Writing objects: 100% (4/4), 399 bytes | 0 bytes/s, done.
Total 4 (delta 3), reused 0 (delta 0)
remote: Compressing source files... done.        
remote: Building source:        
remote: 
remote: -----> Fetching custom git buildpack... done        
remote: -----> Ruby app detected        
remote: -----> Compiling Ruby/Rails        
remote: -----> Using Ruby version: ruby-2.1.5        
remote: -----> Installing dependencies using 1.6.3        
remote:        Running: bundle install --without development:test 
  --path vendor/bundle --binstubs vendor/bundle/bin -j4 --deployment        
remote:        rails_root is        
remote:        /tmp/build_e9b63ed26b3baaf5f79cc3a767cc5d66        
remote:        checking for a BSD-compatible install... /usr/bin/install -c
remote:        checking whether build environment is sane... yes        
remote:        checking for a thread-safe mkdir -p... /bin/mkdir -p        
remote:        checking for gawk... no        
remote:        checking for mawk... mawk        
remote:        checking whether make sets $(MAKE)... yes        
remote:        checking for style of include used by make... GNU        
remote:        checking for gcc... gcc        
remote:        checking whether the C compiler works... yes        
remote:        checking for C compiler default output file name... a.out        
remote:        checking for suffix of executables...        
remote:        checking whether we are cross compiling... no        
remote:        checking for suffix of object files... o        
remote:        checking whether we are using the GNU C compiler... yes        
remote:        checking whether gcc accepts -g... yes        
remote:        checking for gcc option to accept ISO C89... none needed        
remote:        checking dependency style of gcc... gcc3        
remote:        checking for special C compiler options needed for large files...
remote:        checking for _FILE_OFFSET_BITS value needed for large files... 
noremote:        checking for gcc... (cached) gcc        
remote:        checking whether we are using the GNU C compiler... (cached) yes 
remote:        checking whether gcc accepts -g... (cached) yes        
remote:        checking for gcc option to accept ISO C89... 
(cached) none neededremote:        checking dependency style of 
gcc... (cached) gcc3        
remote:        checking for ranlib... ranlib        
remote:        checking build system type... x86_64-unknown-linux-gnu        
remote:        checking host system type... x86_64-unknown-linux-gnu        
remote:        checking how to print strings... printf        
remote:        checking for a sed that does not truncate output... /bin/sed
remote:        checking for grep that handles long lines and -e... /bin/grep
remote:        checking for egrep... /bin/grep -E        
remote:        checking for fgrep... /bin/grep -F        
remote:        checking for ld used by gcc... /usr/bin/ld        
remote:        checking if the linker (/usr/bin/ld) is GNU ld... yes        
remote:        checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm
remote:        checking the name lister (/usr/bin/nm -B) interface... BSD nm 
remote:        checking whether ln -s works... yes        
remote:        checking the maximum length of command line arguments... 1572864
remote:        checking whether the shell understands some XSI constructs... yes
remote:        checking whether the shell understands "+="... yes        
remote:        checking how to convert x86_64-unknown-linux-gnu file names to 
remote:        checking how to convert x86_64-unknown-linux-gnu file names to 
toolchain format... func_convert_file_noop        
remote:        checking for /usr/bin/ld option to reload object files... -r
        
remote:        checking for objdump... objdump        
remote:        checking how to recognize dependent libraries... pass_all        
remote:        checking for dlltool... no        
remote:        checking how to associate runtime and link libraries... 
printf %s\n        
remote:        checking for ar... ar        
remote:        checking for archiver @FILE support... @        
remote:        checking for strip... strip        
remote:        checking for ranlib... (cached) ranlib        
remote:        checking command to parse /usr/bin/nm -B output from 
gcc object... ok        
remote:        checking for sysroot... no        
remote:        checking for mt... mt        
remote:        checking if mt is a manifest tool... no        
remote:        checking how to run the C preprocessor... gcc -E        
remote:        checking for ANSI C header files... yes        
remote:        checking for sys/types.h... yes        
remote:        checking for sys/stat.h... yes        
remote:        checking for stdlib.h... yes        
remote:        checking for string.h... yes        
remote:        checking for memory.h... yes        
remote:        checking for strings.h... yes        
remote:        checking for inttypes.h... yes        
remote:        checking for stdint.h... yes        
remote:        checking for unistd.h... yes        
remote:        checking for dlfcn.h... yes        
remote:        checking for objdir... .libs        
remote:        checking if gcc supports -fno-rtti -fno-exceptions... no        
remote:        checking for gcc option to produce PIC... -fPIC -DPIC        
remote:        checking if gcc PIC flag -fPIC -DPIC works... yes        
remote:        checking if gcc static flag -static works... yes        
remote:        checking if gcc supports -c -o file.o... yes        
remote:        checking if gcc supports -c -o file.o... (cached) yes        
remote:        checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) 
supports shared libraries... yes        
remote:        checking whether -lc should be explicitly linked in... no        
remote:        checking dynamic linker characteristics... GNU/Linux ld.so        
remote:        checking how to hardcode library paths into programs... 
immediate        
remote:        checking whether stripping libraries is possible... yes        
remote:        checking if libtool supports shared libraries... yes        
remote:        checking whether to build shared libraries... yes        
remote:        checking whether to build static libraries... yes        
remote:        checking for fdatasync... yes        
remote:        checking for usleep... yes        
remote:        checking for fullfsync... no        
remote:        checking for localtime_r... yes        
remote:        checking for gmtime_r... yes        
remote:        checking whether strerror_r is declared... yes        
remote:        checking for strerror_r... yes        
remote:        checking whether strerror_r returns char *... no        
remote:        checking for library containing tgetent... -lcurses        
remote:        checking for library containing readline... -lreadline        
remote:        checking for readline... yes        
remote:        checking for library containing pthread_create... -lpthread        
remote:        checking for library containing dlopen... -ldl        
remote:        checking for whether to support dynamic extensions... yes        
remote:        checking for posix_fallocate... yes        
remote:        configure: creating ./config.status        
remote:        config.status: creating Makefile        
remote:        config.status: creating sqlite3.pc        
remote:        config.status: executing depfiles commands        
remote:        config.status: executing libtool commands        
remote:        /bin/bash ./libtool --tag=CC   --mode=compile gcc 
-DPACKAGE_NAME=\"sqlite\"

remote:        libtool: compile:  gcc -DPACKAGE_NAME=\"sqlite\"

remote:        libtool: compile:  gcc -DPACKAGE_NAME=\"sqlite\"

remote:        mv -f .deps/sqlite3.Tpo .deps/sqlite3.Plo        
remote:        /bin/bash ./libtool --tag=CC   --mode=link 
gcc -D_REENTRANT=1 -DSQLITE_THREADSAFE=1  -DSQLITE_ENABLE_FTS3
remote:        libtool: link: gcc -shared  -fPIC -DPIC  .libs/sqlite3.o
   -ldl -lpthread  -O2   -Wl,-soname -Wl,libsqlite3.so.0 -o
remote:        libtool: link: (cd ".libs" && rm -f "libsqlite3.so.0"
remote:        libtool: link: (cd ".libs" && rm -f "libsqlite3.so" 
remote:        libtool: link: ar cru .libs/libsqlite3.a  sqlite3.o        
remote:        libtool: link: ranlib .libs/libsqlite3.a        

remote:        gcc -DPACKAGE_NAME=\"sqlite\" -DPACKAGE_TARNAME=\"sqlite\"
remote:        mv -f .deps/shell.Tpo .deps/shell.Po        
remote:        /bin/bash ./libtool --tag=CC   --mode=link gcc
remote:        libtool: link: gcc -D_REENTRANT=1 -DSQLITE_THREADSAFE=1
remote:        make[1]: Entering directory 
`/tmp/build_e9b63ed26b3baaf5f79cc3a767cc5d66/myvendor/sqlite-autoconf-3080702' 
       
remote:        
/bin/mkdir -p '/tmp/build_e9b63ed26b3baaf5f79cc3a767cc5d66/myvendor/sqlite3/lib'
        
remote:        /bin/bash ./libtool   --mode=install /usr/bin/install -c   
libsqlite3.la '/tmp/build_e9b63ed26b3baaf5f79cc3a767cc5d66/myvendor/sqlite3/lib'
        
remote:        libtool: install: /usr/bin/install -c .libs/libsqlite3.so.0.8.6 
/tmp/build_e9b63ed26b3baaf5f79cc3a767cc5d66/myvendor/sqlite3/lib/libsqlite3.so.0.
8.6        
remote:        libtool: install: 
(cd /tmp/build_e9b63ed26b3baaf5f79cc3a767cc5d66/myvendor/sqlite3/lib && 
{ ln -s -f libsqlite3.so.0.8.6 libsqlite3.so.0 
|| { rm -f libsqlite3.so.0 && ln -s libsqlite3.so.0.8.6 libsqlite3.so.0; }; })

        
remote:        libtool: install: 
(cd /tmp/build_e9b63ed26b3baaf5f79cc3a767cc5d66/myvendor/sqlite3/lib 
&& { ln -s -f libsqlite3.so.0.8.6 libsqlite3.so || { rm -f libsqlite3.so 
&& ln -s libsqlite3.so.0.8.6 libsqlite3.so; }; })        

remote:        libtool: install: /usr/bin/install -c .libs/libsqlite3.lai 
/tmp/build_e9b63ed26b3baaf5f79cc3a767cc5d66/myvendor/sqlite3/lib/libsqlite3.la
        
remote:        libtool: install: /usr/bin/install -c .libs/libsqlite3.a 
/tmp/build_e9b63ed26b3baaf5f79cc3a767cc5d66/myvendor/sqlite3/lib/libsqlite3.a
        
remote:        libtool: install: chmod 644 
/tmp/build_e9b63ed26b3baaf5f79cc3a767cc5d66/myvendor/sqlite3/lib/libsqlite3.a
        
remote:        libtool: install: ranlib 
/tmp/build_e9b63ed26b3baaf5f79cc3a767cc5d66/myvendor/sqlite3/lib/libsqlite3.a
        
remote:        
libtool: finish: PATH="vendor/bundle/bin:vendor/bundle/ruby/2.1.0/bin
:vendor/ruby-2.1.5/bin:/app/bin:/app/vendor/bundle/bin
:/app/vendor/bundle/ruby/1.9.1/bin:vendor/bundle/ruby/1.9.1/bin
:/usr/local/bin:/usr/bin:/bin:bin:/tmp/codon/vendor/bin:bin
:/usr/local/bin:/usr/bin:/bin:/sbin" 
ldconfig -n 
/tmp/build_e9b63ed26b3baaf5f79cc3a767cc5d66/myvendor/sqlite3/lib  
      
remote:        
----------------------------------------------------------------------        
remote:        Libraries have been installed in:        
remote:        /tmp/build_e9b63ed26b3baaf5f79cc3a767cc5d66/myvendor/sqlite3/lib
        
remote:        If you ever happen to want to link against installed libraries
        
remote:        in a given directory, LIBDIR, you must either use libtool, and
        
remote:        specify the full pathname of the library, or use the `-LLIBDIR'
        
remote:        flag during linking and do at least one of the following:        
remote:        - add LIBDIR to the `LD_LIBRARY_PATH' environment variable        
remote:        during execution        
remote:        - add LIBDIR to the `LD_RUN_PATH' environment variable        
remote:        during linking        
remote:        - use the `-Wl,-rpath -Wl,LIBDIR' linker flag        
remote:        - have your system administrator add LIBDIR to `/etc/ld.so.conf
'        
remote:        See any operating system documentation about shared libraries for
        
remote:        more information, such as the ld(1) and ld.so(8) manual pages.
        
remote:       
 ----------------------------------------------------------------------        
remote:        
/bin/mkdir -p '/tmp/build_e9b63ed26b3baaf5f79cc3a767cc5d66/myvendor/sqlite3/bin'
        
remote:        /bin/bash ./libtool   --mode=install /usr/bin/install -c sqlite3 
'/tmp/build_e9b63ed26b3baaf5f79cc3a767cc5d66/myvendor/sqlite3/bin'        
remote:        libtool: install: /usr/bin/install -c .libs/sqlite3 
/tmp/build_e9b63ed26b3baaf5f79cc3a767cc5d66/myvendor/sqlite3/bin/sqlite3        
remote:        /bin/mkdir -p 
'/tmp/build_e9b63ed26b3baaf5f79cc3a767cc5d66/myvendor/sqlite3/include'        
remote:        /usr/bin/install -c -m 644 sqlite3.h sqlite3ext.h 
'/tmp/build_e9b63ed26b3baaf5f79cc3a767cc5d66/myvendor/sqlite3/include'        
remote:        /bin/mkdir -p
 '/tmp/build_e9b63ed26b3baaf5f79cc3a767cc5d66/myvendor/sqlite3/share/man/man1'
        
remote:        /usr/bin/install -c -m 644 sqlite3.1
 '/tmp/build_e9b63ed26b3baaf5f79cc3a767cc5d66/myvendor/sqlite3/share/man/man1'
        
remote:        /bin/mkdir -p 
'/tmp/build_e9b63ed26b3baaf5f79cc3a767cc5d66/myvendor/sqlite3/lib/pkgconfig'
        
remote:        /usr/bin/install -c -m 644 sqlite3.pc 
'/tmp/build_e9b63ed26b3baaf5f79cc3a767cc5d66/myvendor/sqlite3/lib/pkgconfig'
        
remote:        
make[1]: Leaving directory
 `/tmp/build_e9b63ed26b3baaf5f79cc3a767cc5d66/myvendor/sqlite-autoconf-3080702'
        
remote:        Building native extensions with: 
'--with-sqlite3-dir=
/tmp/build_e9b63ed26b3baaf5f79cc3a767cc5d66/myvendor/sqlite3'        
remote:        This could take a while...        
remote:        Successfully installed sqlite3-1.3.10        
remote:        Parsing documentation for sqlite3-1.3.10        
remote:        Done installing documentation for sqlite3 after 0 seconds        
remote:        1 gem installed        
remote:        sqlite3 (1.3.10)        
remote:        Using rake 10.4.2        
remote:        Using i18n 0.6.11        
remote:        Using minitest 5.4.3        
remote:        Using thread_safe 0.3.4        
remote:        Using json 1.8.1        
remote:        Using builder 3.2.2        
remote:        Using erubis 2.7.0        
remote:        Using rack 1.5.2        
remote:        Using arel 5.0.1.20140414130214        
remote:        Using coffee-script-source 1.8.0        
remote:        Using execjs 2.2.2        
remote:        Using mime-types 2.4.3        
remote:        Using hike 1.2.3        
remote:        Using thor 0.19.1        
remote:        Using multi_json 1.10.1        
remote:        Using bundler 1.6.3        
remote:        Using pg 0.17.1        
remote:        Using sqlite3 1.3.10        
remote:        Using tzinfo 1.2.2        
remote:        Using sass 3.2.19        
remote:        Using tilt 1.4.1        
remote:        Using rdoc 4.1.2        
remote:        Using mail 2.6.3        
remote:        Using rack-test 0.6.2        
remote:        Using coffee-script 2.3.0        
remote:        Using uglifier 2.5.3        
remote:        Using activesupport 4.1.8        
remote:        Using sprockets 2.12.3        
remote:        Using sdoc 0.4.1        
remote:        Using actionview 4.1.8        
remote:        Using jbuilder 2.2.5        
remote:        Using actionpack 4.1.8        
remote:        Using activemodel 4.1.8        
remote:        Using actionmailer 4.1.8        
remote:        Using railties 4.1.8        
remote:        Using sprockets-rails 2.2.2        
remote:        Using coffee-rails 4.0.1        
remote:        Using activerecord 4.1.8        
remote:        Using sass-rails 4.0.5        
remote:        Using jquery-rails 3.1.2        
remote:        Using rails 4.1.8        
remote:        Using turbolinks 2.5.2        
remote:        Your bundle is complete!        
remote:        Gems in the groups development and test were not installed.        
remote:        It was installed into ./vendor/bundle        
remote:        Bundle completed (85.38s)        
remote:        Cleaning up the bundler cache.        
remote: -----> Preparing app for Rails asset pipeline        
remote:        Running: rake assets:precompile        
remote:        Asset precompilation completed (1.72s)        
remote:        Cleaning assets        
remote:        Running: rake assets:clean        
remote:         
remote: ###### WARNING:        
remote:        Include 'rails_12factor' gem to enable all platform features
        
remote:        See https://devcenter.heroku.com/articles/rails-integration-gems
 for more information.        
remote: 
remote: ###### WARNING:        
remote:        No Procfile detected, using the default web server (webrick)
        
remote:        https://devcenter.heroku.com/articles/ruby-default-web-server
        
remote: 
remote: -----> Discovering process types        
remote:        Procfile declares types -> (none)        
remote:        Default types for Ruby  -> console, rake, web, worker        
remote: 
remote: -----> Compressing... done, 33.0MB        
remote: -----> Launching... done, v8        
remote:        https://hero-app11.herokuapp.com/ deployed to Heroku        
remote: 
remote: Verifying deploy... done.        
To https://git.heroku.com/hero-app11.git
   f83aab8..2e43116  master -> master
dan@hp /tmp/hero_app11 $ 
dan@hp /tmp/hero_app11 $ 
dan@hp /tmp/hero_app11 $ 
dan@hp /tmp/hero_app11 $ heroku run 'gem list sqlite3'
Running `gem list sqlite3` attached to terminal... up, run.7248

*** LOCAL GEMS ***

sqlite3 (1.3.10)
dan@hp /tmp/hero_app11 $ 
dan@hp /tmp/hero_app11 $ 
dan@hp /tmp/hero_app11 $ 
So that is it. This post has two main points. First, I can use an enhanced clone of heroku-buildpack-ruby repo to make changes to my Heroku Linux environment.

Second, the complexity of that effort should reside in my Rails-app rather than my clone of the buildpack repo.

syntax.us Let the syntax do the talking
Blog Contact Posts Questions Tags Hire Me