Hurray! Now I’m an Outreachy program intern in Debian-Med Team!
My internship started with two problems: I’ve got a cold in Genehack-2 and had unexpected troubles with my main task - testing. First problem was quite easy to solve - by staying home.
Second problem… Well, it came out of nothing and was is totally was a problem because of my stubbornness.
When I need to write something which should run on different OS or be sandboxed, I prefer to rely on Vagrant. It runs a virtual machine for me and usually all goes fine. Not this time!
The problem came out suddenly with installation problems when I had to install cme. During bonding stage I didn’t run cme and all seemed to be fine. Ok, then I moved to unstable version of Debian in sources.list, and it didn’t solve nothing! But I spent too much time on trying to tweak debian-jessie box for my needs :(
Moving to VM box with unstable Debian and some additional setup in Vagrant configuration solved all problems. I should do it earlier!
Here are my Vagrant configuration file and bash script with some setup:
# -*- mode: ruby -*- | |
# vi: set ft=ruby : | |
# All Vagrant configuration is done below. The "2" in Vagrant.configure | |
# configures the configuration version (we support older styles for | |
# backwards compatibility). Please don't change it unless you know what | |
# you're doing. | |
Vagrant.configure(2) do |config| | |
# The most common configuration options are documented and commented below. | |
# For a complete reference, please see the online documentation at | |
# https://docs.vagrantup.com. | |
# Every Vagrant development environment requires a box. You can search for | |
# boxes at https://atlas.hashicorp.com/search. | |
config.vm.box = "ideegeo/debian-sid" | |
# Disable automatic box update checking. If you disable this, then | |
# boxes will only be checked for updates when the user runs | |
# `vagrant box outdated`. This is not recommended. | |
# config.vm.box_check_update = false | |
# Create a forwarded port mapping which allows access to a specific port | |
# within the machine from a port on the host machine. In the example below, | |
# accessing "localhost:8080" will access port 80 on the guest machine. | |
# config.vm.network "forwarded_port", guest: 80, host: 8080 | |
# Create a private network, which allows host-only access to the machine | |
# using a specific IP. | |
# config.vm.network "private_network", ip: "192.168.33.10" | |
# Create a public network, which generally matched to bridged network. | |
# Bridged networks make the machine appear as another physical device on | |
# your network. | |
# config.vm.network "public_network" | |
# Share an additional folder to the guest VM. The first argument is | |
# the path on the host to the actual folder. The second argument is | |
# the path on the guest to mount the folder. And the optional third | |
# argument is a set of non-required options. | |
config.vm.synced_folder "src", "/data", create: true, :owner=> 'vagrant', :group=>'vagrant' | |
# Provider-specific configuration so you can fine-tune various | |
# backing providers for Vagrant. These expose provider-specific options. | |
# Example for VirtualBox: | |
# | |
# config.vm.provider "virtualbox" do |vb| | |
# # Display the VirtualBox GUI when booting the machine | |
# vb.gui = true | |
# | |
# # Customize the amount of memory on the VM: | |
# vb.memory = "1024" | |
# end | |
# | |
# View the documentation for the provider you are using for more | |
# information on available options. | |
# Define a Vagrant Push strategy for pushing to Atlas. Other push strategies | |
# such as FTP and Heroku are also available. See the documentation at | |
# https://docs.vagrantup.com/v2/push/atlas.html for more information. | |
# config.push.define "atlas" do |push| | |
# push.app = "YOUR_ATLAS_USERNAME/YOUR_APPLICATION_NAME" | |
# end | |
# Enable provisioning with a shell script. Additional provisioners such as | |
# Puppet, Chef, Ansible, Salt, and Docker are also available. Please see the | |
# documentation for more information about their specific syntax and use. | |
config.vm.provision :shell, path: "bootstrap.sh" | |
# set auto_update to false, if you do NOT want to check the correct | |
# additions version when booting this machine | |
config.vbguest.auto_update = true | |
# do NOT download the iso file from a webserver | |
config.vbguest.no_remote = false | |
#this should allow ssh forwarding for git | |
#incomplete setup! | |
config.ssh.forward_agent = true | |
end |
#!/usr/bin/env bash | |
#### 1. set sources.list | |
SF=/etc/apt/sources.list | |
#remove sources.list and rewrite it | |
if [ -f $SF ]; | |
then | |
rm $SF | |
fi | |
# add Debian main repos to sources.list: | |
echo "deb http://ftp.ru.debian.org/debian/ sid main" >> $SF | |
echo "deb-src http://ftp.ru.debian.org/debian/ sid main" >> $SF | |
#### 2. install packages: | |
apt-get update | |
apt-get install -y autoconf automake autotools-dev | |
apt-get install -y debhelper dh-make fakeroot file | |
apt-get install -y gnupg lintian patch patchutils pbuilder | |
apt-get install -y devscripts cdbs svn-buildpackage git-buildpackage | |
apt-get install -y perl python quilt xutils-dev | |
apt-get install -y cme libconfig-model-dpkg-perl libconfig-model-itself-perl | |
apt-get install -y build-essential autopkgtests | |
apt-get install -y ubuntu-dev-tools debootstrap |
I’ll update them if some details come out - hope this configuration files help somebody. I haven’t fixed the Strange-Behaviour-With-SSH-Forwarding yet, probably I’ll fix it next week.
And remember, my invisible reader, stubbornness is your worst enemy!