Skip to main content

Make build Env. for Golang and zmq in Chroot


https://github.com/doohee323/buildGoInChroot

When you need to build Golang app. in different ubuntu version, you can use chroot. I made it for the usecase. It makes chroot environment and a builds debian file. And I made a lucid with vagrant, and installed below 3 ubuntu version debians in it. Since ZMQ library is needed for this app, only lucid debian can run in lucid VM.

Required

    1. install chroot
        apt-get install dchroot
        apt-get install debootstrap

    2. edit chroot configuration
        vi /etc/schroot/schroot.conf

        [precise]
        description=Ubuntu precise
        location=~/chroot/precise
        priority=3
        users=hello
        group=hello
        root-groups=root

        [lucid]
        description=Ubuntu lucid
        location=~/chroot/lucid
        priority=3
        users=hello
        group=hello
        root-groups=root

        [trusty]
        description=Ubuntu trusty
        location=~/chroot/trusty
        priority=3
        users=hello
        group=hello
        root-groups=root

How to run

    $ bash chroot.sh lucid 1.0
        - 1st arg: ubuntu version precise / lucid / trusty ...
        - 2nd arg: want to build version
    $ bash chroot.sh precise 1.0
    $ bash chroot.sh trusty 1.0

Verify in lucid

    - install vagrant 4.3
    https://www.virtualbox.org/wiki/Download_Old_Builds_4_3
    - add lucid in vagrant
    vagrant box add lucid64 http://files.vagrantup.com/lucid64.box
    - run vm
    vagrant up
    vagrant@hello:/vagrant$ hello server

    - open another terminal and run hello with client argument.
    vagrant ssh
    vagrant@hello:/vagrant$ hello client
    => it works!

    - but When you install hello_precise.deb in lucid, you'll get this error! 
    dpkg -i hello_precise.deb
    vagrant@hello:/vagrant$ hello server
    => hello: /lib/libc.so.6: version `GLIBC_2.14' not found (required by hello)

Comments

Popular posts from this blog

Amazon RDS Blue/Green Deployments

In order to avoid some errors I experienced when proceeding as described in the official documentation, I describe what I did in order. 1) Modify parameters of source_database * error: Blue Green Deployments requires cluster parameter group has binlog enabled. RDS Parameter groups: source-params-group binlog_format => MIXED mysql> show global variables like 'binlog_format'; 2) Insert a row after rebooting the source database, to avoid this error. * error: Correct the replication errors and then switch over. Read Replica Replication Error - IOError: 1236, reason: Got fatal error 1236 from master when reading data from binary log: 'Could not find first log file name in binary log index file' => To Fix: You need to change the data in the source database. INSERT INTO dummy_table ( `favorite_id` , `favorite_order` , `user_id` , `board_id` ) VALUES ('100001', '1', '11111', '11111'); 3) Modify the param...

Fluentd for mysql in AWS

(0) preparation ulimit -n If your console shows 1024, it is insufficient. Please add following lines to your /etc/security/limits.conf file and reboot your machine. root soft nofile 65536 root hard nofile 65536 (1) install Fluentd // “Ubuntu 12.04 LTS / Precise” curl -L http://toolbelt.treasuredata.com/sh/install-ubuntu-precise.sh | sh /etc/init.d/td-agent start/stop/restart/status // test curl -X POST -d 'json={"json":"message"}' http://localhost:8888/debug.test /etc/init.d/td-agent stop chown: changing ownership of `/var/run/td-agent/td-agent.pid': Operation not permitted chown: changing ownership of `/var/run/td-agent': Operation not permitted  * Stopping td-agent td-agent                                                                                   ...

Install CoreOs on linode without VM

Install CoreOs on linode without VM 1. Add a Linode 2. Create a new Disk   CoreOS 3. Rescue > Reboot into Rescue Mode 4. Remote Access   Launch Lish Console 5. make an install script cat <<'EOF1' > install.sh # add needed package sudo apt-get update sudo apt-get install -y curl wget whois sudo apt-get install -y ca-certificates #sudo apt-get install gawk -y # get discovery url discoveryUrl=`curl https://discovery.etcd.io/new` # write cloud-config.yml cat <<EOF2 > cloud-config.yml #cloud-config users:   - name: core     groups:       - sudo       - docker coreos:   etcd:     name: node01     discovery: $discoveryUrl hostname: node01 EOF2 # get the coreos installation script #wget https://raw.github.com/coreos/init/master/bin/coreos-install wget https://raw.githubusercontent.com/coreos/init/master/bin/coreos-install # run installation chmod 75...