{"id":246,"date":"2012-03-30T10:47:29","date_gmt":"2012-03-30T17:47:29","guid":{"rendered":"http:\/\/www.dreness.com\/blog\/?p=246"},"modified":"2019-12-07T17:15:55","modified_gmt":"2019-12-08T00:15:55","slug":"ubuntu-development-bootstrap","status":"publish","type":"post","link":"https:\/\/dreness.com\/blog\/archives\/246","title":{"rendered":"Ubuntu Development Bootstrap"},"content":{"rendered":"<p>Linux hackers surely already know this, but I&#8217;m only sorta a Linux hacker. This post documents a nice process for using apt to prepare an Ubuntu machine for development. In my case, I was trying to build a custom version of <a href=\"https:\/\/irssi.org\/\">irssi<\/a> that is patched to add SSL support to the irssi <a href=\"https:\/\/irssi.org\/documentation\/startup\/#c10\">proxy<\/a> module. Sure, I could have gone about this in the traditional manner, but given that irssi has a fair number of dependencies, it&#8217;s easier to let apt do the grunt work for me.<\/p>\n<p>First, get the toolchain set up.<\/p>\n<table id=\"post7569385\" width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"6\" align=\"center\">\n<tbody>\n<tr valign=\"top\">\n<td id=\"td_post_7569385\">\n<div id=\"post_message_7569385\">\n<div>\n<pre dir=\"ltr\">sudo apt-get install build-essential checkinstall<\/pre>\n<\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>The\u00a0<a href=\"https:\/\/packages.ubuntu.com\/lucid\/build-essential\">build-essential<\/a>\u00a0and &#8216;check install&#8217; targets are news to me. Build-essential, as the name suggests, includes some compilers and related tools that would be needed for building just about anything.<\/p>\n<p>&#8220;<a href=\"https:\/\/help.ubuntu.com\/community\/CheckInstall\">Checkinstall<\/a>\u00a0keeps track of all files installed by a &#8220;make install&#8221; or equivalent, creates a Slackware, RPM, or Debian package with those files, and adds it to the installed packages database, allowing for easy package removal or distribution.&#8221;<\/p>\n<p>Next, in preparation for building irssi itself, get all the dependencies for irssi. This works because irssi is already in the apt package database, so apt knows what the dependencies are.<\/p>\n<table id=\"post7569385\" width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"6\" align=\"center\">\n<tbody>\n<tr valign=\"top\">\n<td id=\"td_post_7569385\">\n<div id=\"post_message_7569385\">\n<div>\n<pre dir=\"ltr\">sudo apt-get build-dep irssi<\/pre>\n<\/div>\n<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>From there, download the irssi source, patch it, and proceed to build \/ run \/ install it (perhaps installing with checkinstall so you can easily remove it later!)<\/p>\n<p>p.s. this irssi proxy SSL patch <a href=\"https:\/\/pastebin.ca\/2133680\">isn&#8217;t working<\/a>. bummer.<\/p>\n<p>p.p.s <a href=\"https:\/\/www.stunnel.org\/\">stunnel<\/a> works though!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Linux hackers surely already know this, but I&#8217;m only sorta a Linux hacker. This post documents a nice process for using apt to prepare an Ubuntu machine for development. In my case, I was trying to build a custom version &hellip; <a href=\"https:\/\/dreness.com\/blog\/archives\/246\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[],"class_list":["post-246","post","type-post","status-publish","format-standard","hentry","category-development"],"_links":{"self":[{"href":"https:\/\/dreness.com\/blog\/wp-json\/wp\/v2\/posts\/246","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dreness.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dreness.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dreness.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/dreness.com\/blog\/wp-json\/wp\/v2\/comments?post=246"}],"version-history":[{"count":8,"href":"https:\/\/dreness.com\/blog\/wp-json\/wp\/v2\/posts\/246\/revisions"}],"predecessor-version":[{"id":1312,"href":"https:\/\/dreness.com\/blog\/wp-json\/wp\/v2\/posts\/246\/revisions\/1312"}],"wp:attachment":[{"href":"https:\/\/dreness.com\/blog\/wp-json\/wp\/v2\/media?parent=246"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dreness.com\/blog\/wp-json\/wp\/v2\/categories?post=246"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dreness.com\/blog\/wp-json\/wp\/v2\/tags?post=246"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}