# File lib/phusion_passenger/standalone/runtime_installer.rb, line 106
        def install!
                if @support_dir && @nginx_dir
                        show_welcome_screen
                end
                check_dependencies(false) || exit(1)
                puts
                if passenger_support_files_need_to_be_installed?
                        check_whether_we_can_write_to(@support_dir) || exit(1)
                end
                if nginx_needs_to_be_installed?
                        check_whether_we_can_write_to(@nginx_dir) || exit(1)
                end
                
                if passenger_support_files_need_to_be_installed? && should_download_binaries?
                        download_and_extract_passenger_binaries(@support_dir) do |progress, total|
                                show_progress(progress, total, 1, 1, "Extracting Passenger binaries...")
                        end
                        puts
                        puts
                end
                if nginx_needs_to_be_installed? && should_download_binaries?
                        download_and_extract_nginx_binaries(@nginx_dir) do |progress, total|
                                show_progress(progress, total, 1, 1, "Extracting Nginx binaries...")
                        end
                        puts
                        puts
                end
                
                if nginx_needs_to_be_installed?
                        nginx_source_dir = download_and_extract_nginx_sources do |progress, total|
                                show_progress(progress, total, 1, 7, "Extracting...")
                        end
                        if nginx_source_dir.nil?
                                puts
                                show_possible_solutions_for_download_and_extraction_problems
                                exit(1)
                        end
                end
                if passenger_support_files_need_to_be_installed?
                        install_passenger_support_files do |progress, total, phase, status_text|
                                if phase == 1
                                        show_progress(progress, total, 2, 7, status_text)
                                else
                                        show_progress(progress, total, 3..5, 7, status_text)
                                end
                        end
                end
                if nginx_needs_to_be_installed?
                        install_nginx_from_source(nginx_source_dir) do |progress, total, status_text|
                                show_progress(progress, total, 6..7, 7, status_text)
                        end
                end
                
                puts
                color_puts "<green><b>All done!</b></green>"
                puts
        end