Skip to content. | Skip to navigation

Personal tools

Navigation

You are here: Home / Wiki / EmulabClientBuild

EmulabClientBuild

Step-by-step instructions to build a Ubuntu 14.04 emulab client from scratch

Ubuntu14Build

Step-by-step instructions to create a Ubuntu 14.04 emulab client.

Emulab Client Setup : Ubuntu 14.04

Warning:
Instructions presented here are Ubuntu 14.04, Utah emulab.net site, emulab-dev source and mbr V3 specific. The info here supersedes one the ClientSideStuff and Clientsideinstall pages.

Load minimal OS


How to get a minimal Ubuntu system

Note: There is documentation on installing a minimal system from https://help.ubuntu.com/community/Installation/LowMemorySystems. However after the 12.04 LTS release the "alternate CD" installation was dropped. The currently suggested way of installing a 'small' Ubuntu is the mini.iso see:https://help.ubuntu.com/community/Installation/MinimalCD .

  • Get mini.iso from 64-bit PC (amd64,x86_64) mini.iso
  • boot node into admin-mfs
  • Install the new mbr version 3 on the system disk
  • Whatever is your favorite way to install a iso do it, step-by-step instructions follow.
    • I could have done PXE boot method but instead I burned a CD and booted from that.
  • Install the OS into partition 1.
Installing minimal system from mini.iso
Note: this was done using a pc3000 and using a KVM spider to gain access to VGA monitor

From grub menu choose: 
  advanced-> expert command line install

 Choose Language
  use defaults
Configure the keyboard
  use defaults 
Detect network hardware
  use defaults 
Configure the network
  use defaults
Choose a mirror of the Ubuntu archive
  use defaults -- no proxy setup
Download installer components
  don't add anything extra
Setup users and passwords
  Enable shadow passwords <Yes>
  Allow login as root? <Yes>
  set root password "N**%*S**"
  Create a normal user account <No>
Configure the Clock
  Set the clock using NTP? <Yes>
  NTP server to use: ntp1.emulab.net
  Denver timezone <Yes>  
Detect Disks
Partition disks
  Manual
    Make sure partition #1 is 17.2 GB and the B(oot) flag is set
      Use as: Ext3
      Format the partition
      Mount point: /
      Bootable flag: on 
    Make sure partition #3 is 3.2 GB
      Use as: swap
    Write changes to disk <Yes> 
Install the base system
  Kernel to install: linux-generic
  Drivers to include in the initrd: generic   
Configure the package manager
  Use restricted software? <Yes>
  Use software from the "universe" <Yes>
  Use software from the "multiverse" <No>
  Use backported software <No> 
  Services to use: None - deselect 'security updates'
Select and install software
    Configuring discover "No automatic updates"
Install the GRUB boot loader
  Install the GRUB boot loader to the master boot record? <Yes>
   
Finish the installation
  use defaults

Boot off the HD  

Login as root and run the command
   grub-install --force /dev/sda1
So the reloading state can find the boot record. We don't use the MBR booting
 
Use fdisk (or the like) and check the filesystem type for partition 1
If it does list it as LINUX (it might be FREEBSD) change it to type 83.
This needs to be set correct for imagezip to run.
To get a list of packages installed on a apt based system run the command 'dpkg --get-selections'

Note:

dpkg --get-selections The list of packages installed after the above install is here  packages installed

Install necessary utilities for remote access to the system

  • apt-get install ssh

Give Boss ssh access

  • login in as root
  • cd /root
  • ssh-keygen
  • cd .ssh
  • append pub key from boss to /root/.ssh/authorized_keys. Use scp to get the key onto the system.

Can now ssh as root from bas and do the rest from a remote window.

Set console to redirect to serial port

Some documentation Serial Console

To get a login prompt on the serial port

Create a file called /etc/init/ttyS0.conf containing the following:
# ttyS0 - getty
#
# This service maintains a getty on ttyS0 from the point the system is
# started until it is shut down again.
start on stopped rc or RUNLEVEL=[2345]
stop on runlevel [!2345]
respawn
exec /sbin/getty -L 115200 ttyS0 vt102

Start getty running on the serial console

  • start ttyS0

Redirect console messages to the serial port

edit the file /etc/default/grub
diff grub.original grub
7c7
< GRUB_HIDDEN_TIMEOUT=0
---
> #GRUB_HIDDEN_TIMEOUT=0
9c9
< GRUB_TIMEOUT=10
---
> GRUB_TIMEOUT=4
11,12c11,12
< GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
< GRUB_CMDLINE_LINUX=""
---
> GRUB_CMDLINE_LINUX_DEFAULT=""
> GRUB_CMDLINE_LINUX="console=ttyS0,115200n8"
20a21,22
> GRUB_TERMINAL=serial
> GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1"

Regenerate Grub.conf

  • update-grub

Install necessary packages to build emulab-client

  • apt-get install git autoconf make gcc g++ flex bison python byacc libtool libboost-dev
  • apt-get install libssl-dev libpcap-dev
  • apt-get install libboost-dev libmysqlclient-dev

Make and install pubsub

Install emulab client-side code

Get emulab sources

  • git clone git://git-public.flux.utah.edu/emulab-devel.git
  • cd emulab-devel
  • git submodule init
  • git submodule update

Configure against a standard flux defs file

  • cd ..
  • mkdir obj
  • cd obj
  • ../emulab-devel/configure --with-TBDEFS=../emulab-devel/defs-utahclient

Build and install the client

    • make client
    • make client-install

Make and install the ping-of-death

  • cd ../emulab-devel/ipod/linux_mod
  • make
  • make install
  • depmod -a `uname -r` (this takes a long time)

Install these packages so the system will boot (and not hang) in an emulab-client mode.

  • apt-get install perl nfs-common nfs-client openssl bc
Reboot node from the Hard Drive.
Watch the boot message and see if it looks like the emulab process started ok. Check for /usr/local/libexec/pubsubd, /usr/local/etc/emulab/evproxy, and ???

Removing unwanted packages

  • apt-get remove --purge apparmor apt-xapian-index discover discover-data geoip-database gir1.2-glib-2.0 krb5-locales laptop-detect libarchive-extract-perl libclass-accessor-perl libdiscover2 libfribidi0 libgirepository-1.0-1 liblog-message-simple-perl libmodule-pluggable-perl libmysqlcppconn7 libmysqlcppconn-dev libpam-systemd libparse-debianchangelog-perl libpod-latex-perl libterm-ui-perl libx11-6 libx11-data libxau6 libxext6 libxmuu1 mtr-tiny os-prober python3-gi python-apt xterm
  • remove the client source and obj build directors and anything else you added to the system
Don't let Ubuntu rename the network interfaces:
  • apt-get remove --purge biosdevname
  • update-initramfs -c -k `uname -r`

 

Miscellaneous system files updates

 

  • Copy standard /etc/ssh/keys from another client
    • Copied over ssh_host_dsa_key ssh_host_key.pub  ssh_host_rsa_key.pub  ssh_host_dsa_key.pub  ssh_host_dsa_key.pub

    • Removed ssh_host_ed25519_key* ssh_host_ecdsa_key*
    • edit /etc/ssh/sshd_config
      • remove the ecdsa and ed25519 keys for protocol verson2
    • edit the file /etc/default/rcS
      • and change VERBOSE option to yes
    • edit the file /etc/dhcp/dhclient.conf
      • and change "send host-name = gethostname();" > send host-name = "<hostname>";
    • remove the file /etc/hostname
    • vigr /etc/group to remove all users from group root except user 0, remove groups above 1000, The same with vigr
  • The page  Problems in clientside install source that should be looked at. It is included here, all the notes should be down by hand for now.

Make an emulab image for the first time

  • Install grub on the first partition
  • grub-install --force /dev/sda1 (expect to see warning messages, it should say "Installation finished. No error reported.")

Note: Every time just before taking a snapshot do the following

  • reset the root password so that you know what it is if you need to come up in recovery mode
  • remove the file /etc/hostname
  • vigr /etc/group to remove all users from group root except user 0, remove groups above 1000, The same with vigr
  • run updatedb

In a browser go to https://www.emulab.net/newimageid_ez.php3

Make sure the image is parition 1 and the MBR version is 3.

Before submitting make sure the node is not in admin mode. If the BIOS is set to boot from the HD catch it at post-time change it to PXE boot.

Installing those packages that everyone expects

apt-get install build-essential cvs debhelper e2fslibs gconf2-common gconf-service gconf-service-backend gdb emacs24 gnupg-curl intltool-debian iproute iputils-arping jove kexec-tools lftp lvm2 lzma makedumpfile memtest86+ ntp open-iscsi open-iscsi-utils openvpn os-prober python-apt python-dbus python-dbus-dev python-gdbm python-gnupginterface python-support smartmontools ssl-cert subversion tcl8.5 tcsh ksh valgrind vlan xterm zlib1g xauth zsh plymouth-disabler

 

Note: Reinstall ipod  if the kernel has been re-installed.

Snapshot the image back into the image-descriptor. For example navigate to The Image Descriptor and use the 'Snapshot Node Disk into Image'.

 

Making a global Image for the testbed

  • Follow the instructions for Making the image for the first time
  • Name the image with extension "-STD"
  • Check the  "Global" checkbox
  • "Release" the image to the Testbed by running the command
    • /usr/testbed/sbin/imagerelease

Table of image sizes and package lists

Stageimage.ndz sizepackage list
.iso load 352MB min_ios_packages.txt
client installed 385MB client_install_packages.txt
after unwanted packages remove 381MB minclient_packages.txt
after standard testbed packages 575MB emulab_packages.txt

Document generated by Confluence on Sep 30, 2014 11:37

RemovingUnwantedPackages

Ubuntu Removing unwanted packages


From: "macondo"

you are right, 'apt-get remove' does not do the job throughly, the
solution to your problem, IMHO, can be solved this way, which is what
i do in order to remove everything pertaining to the package in
question:

apt-get install deborphan debfoster

#apt-get remove --purge package
#apt-get clean

the later will clean the /var

#debfoster

will show files and libraries still left after the apt-get remove
--purge, if you don't recognize a library, keep it, later on,
deborphan will give you a list of 'orphaned' libraries that are
hanging with no use, and are safe to nuke.

if you make a mistake with debfoster, type 'u' and will ask you again
if you want to keep it. When you are thru with it, invoke deborphan.

#deborphan

will give a list of libraries that are hanging just taking space, to
get rid of them:

#deborphan | xargs apt-get -y remove purge

when thru with that:

#apt-get clean

sttyS0.conf

Plain Text icon sttyS0.conf.txt — Plain Text, 1 KB

File contents

# ttyS0 - getty
#
# This service maintains a getty on ttyS0 from the point the system is
# started until it is shut down again.
start on stopped rc or RUNLEVEL=[12345]
stop on runlevel [!12345]
respawn
exec /sbin/getty -L 115200 ttyS0 vt102

min_ios_packages.txt

Plain Text icon min_ios_packages.txt — Plain Text, 5 KB (5527 bytes)

File contents

accountsservice
adduser
apparmor
apt
apt-transport-https
apt-utils
apt-xapian-index
aptitude
aptitude-common
base-files
base-passwd
bash
bash-completion
bind9-host
biosdevname
bsdmainutils
bsdutils
busybox-initramfs
busybox-static
bzip2
ca-certificates
command-not-found
command-not-found-data
console-setup
coreutils
cpio
crda
cron
dash
dbus
debconf
debconf-i18n
debianutils
dh-python
diffutils
discover
discover-data
dmidecode
dmsetup
dnsutils
dosfstools
dpkg
e2fslibs:amd64
e2fsprogs
ed
eject
file
findutils
friendly-recovery
ftp
fuse
gcc-4.8-base:amd64
gcc-4.9-base:amd64
geoip-database
gettext-base
gir1.2-glib-2.0
gnupg
gpgv
grep
groff-base
grub-common
grub-gfxpayload-lists
grub-pc
grub-pc-bin
grub2-common
gzip
hdparm
hostname
ifupdown
info
init-system-helpers
initramfs-tools
initramfs-tools-bin
initscripts
insserv
-info
ation-report
iproute2
iptables
iputils-ping
iputils-tracepath
irqbalance
isc-dhcp-client
isc-dhcp-common
iso-codes
kbd
keyboard-configuration
klibc-utils
kmod
krb5-locales
language-pack-en
language-pack-en-base
language-selector-common
laptop-detect
less
libaccountsservice0:amd64
libacl1:amd64
libapparmor-perl
libapparmor1:amd64
libapt-inst1.5:amd64
libapt-pkg4.12:amd64
libarchive-extract-perl
libasn1-8-heimdal:amd64
libasprintf0c2:amd64
libattr1:amd64
libaudit-common
libaudit1:amd64
libbind9-90
libblkid1:amd64
libboost-iostreams1.54.0:amd64
libbsd0:amd64
libbz2-1.0:amd64
libc-bin
libc6:amd64
libcap-ng0
libcap2:amd64
libcap2-bin
libcgmanager0:amd64
libclass-accessor-perl
libcomerr2:amd64
libcurl3-gnutls:amd64
libcwidget3
libdb5.3:amd64
libdbus-1-3:amd64
libdbus-glib-1-2:amd64
libdebconfclient0:amd64
libdevmapper1.02.1:amd64
libdiscover2
libdns100
libdrm2:amd64
libedit2:amd64
libelf1:amd64
libept1.4.12:amd64
libestr0
libexpat1:amd64
libffi6:amd64
libfreetype6:amd64
libfribidi0:amd64
libfuse2:amd64
libgcc1:amd64
libgck-1-0:amd64
libgcr-3-common
libgcr-base-3-1:amd64
libgcrypt11:amd64
libgdbm3:amd64
libgeoip1:amd64
libgirepository-1.0-1
libglib2.0-0:amd64
libglib2.0-data
libgnutls-openssl27:amd64
libgnutls26:amd64
libgpg-error0:amd64
libgssapi-krb5-2:amd64
libgssapi3-heimdal:amd64
libhcrypto4-heimdal:amd64
libheimbase1-heimdal:amd64
libheimntlm0-heimdal:amd64
libhx509-5-heimdal:amd64
libidn11:amd64
libio-string-perl
libisc95
libisccc90
libisccfg90
libjson-c2:amd64
libjson0:amd64
libk5crypto3:amd64
libkeyutils1:amd64
libklibc
libkmod2:amd64
libkrb5-26-heimdal:amd64
libkrb5-3:amd64
libkrb5support0:amd64
libldap-2.4-2:amd64
liblocale-gettext-perl
liblockfile-bin
liblockfile1:amd64
liblog-message-simple-perl
liblwres90
liblzma5:amd64
libmagic1:amd64
libmodule-pluggable-perl
libmount1:amd64
libmpdec2:amd64
libncurses5:amd64
libncursesw5:amd64
libnewt0.52:amd64
libnfnetlink0:amd64
libnih-dbus1:amd64
libnih1:amd64
libnl-3-200:amd64
libnl-genl-3-200:amd64
libnuma1:amd64
libp11-kit0:amd64
libpam-cap:amd64
libpam-modules:amd64
libpam-modules-bin
libpam-runtime
libpam-systemd:amd64
libpam0g:amd64
libparse-debianchangelog-perl
libparted0debian1:amd64
libpcap0.8:amd64
libpci3:amd64
libpcre3:amd64
libpipeline1:amd64
libplymouth2:amd64
libpng12-0:amd64
libpod-latex-perl
libpolkit-gobject-1-0:amd64
libpopt0:amd64
libprocps3:amd64
libpython-stdlib:amd64
libpython2.7-minimal:amd64
libpython2.7-stdlib:amd64
libpython3-stdlib:amd64
libpython3.4-minimal:amd64
libpython3.4-stdlib:amd64
libreadline6:amd64
libroken18-heimdal:amd64
librtmp0:amd64
libsasl2-2:amd64
libsasl2-modules:amd64
libsasl2-modules-db:amd64
libselinux1:amd64
libsemanage-common
libsemanage1:amd64
libsepol1:amd64
libsigc++-2.0-0c2a:amd64
libslang2:amd64
libsqlite3-0:amd64
libss2:amd64
libssl1.0.0:amd64
libstdc++6:amd64
libsub-name-perl
libsystemd-daemon0:amd64
libsystemd-login0:amd64
libtasn1-6:amd64
libterm-ui-perl
libtext-charwidth-perl
libtext-iconv-perl
libtext-soundex-perl
libtext-wrapi18n-perl
libtimedate-perl
libtinfo5:amd64
libudev1:amd64
libusb-0.1-4:amd64
libusb-1.0-0:amd64
libustr-1.0-1:amd64
libuuid1:amd64
libwind0-heimdal:amd64
libx11-6:amd64
libx11-data
libxapian22
libxau6:amd64
libxcb1:amd64
libxdmcp6:amd64
libxext6:amd64
libxml2:amd64
libxmuu1:amd64
libxtables10
linux-firmware
linux-generic
linux-headers-3.13.0-33
linux-headers-3.13.0-33-generic
linux-headers-generic
linux-image-3.13.0-33-generic
linux-image-extra-3.13.0-33-generic
linux-image-generic
locales
lockfile-progs
login
logrotate
lsb-base
lsb-release
lshw
lsof
ltrace
makedev
man-db
manpages
mawk
mime-support
mlocate
module-init-tools
mount
mountall
mtr-tiny
multiarch-support
nano
ncurses-base
ncurses-bin
net-tools
netbase
netcat-openbsd
ntfs-3g
ntpdate
openssh-client
openssl
os-prober
parted
passwd
pciutils
perl
perl-base
perl-modules
plymouth
plymouth-theme-ubuntu-text
popularity-contest
powermgmt-base
ppp
pppconfig
pppoeconf
procps
psmisc
python
python-apt
python-apt-common
python-chardet
python-debian
python-minimal
python-six
python-xapian
python2.7
python2.7-minimal
python3
python3-apt
python3-commandnotfound
python3-dbus
python3-distupgrade
python3-gdbm:amd64
python3-gi
python3-minimal
python3-update-manager
python3.4
python3.4-minimal
readline-common
resolvconf
rsync
rsyslog
sed
sensible-utils
sgml-base
shared-mime-info
strace
sudo
systemd-services
systemd-shim
sysv-rc
sysvinit-utils
tar
tasksel
tasksel-data
tcpdump
telnet
time
tzdata
ubuntu-keyring
ubuntu-minimal
ubuntu-release-upgrader-core
ubuntu-standard
ucf
udev
ufw
update-manager-core
upstart
ureadahead
usbutils
util-linux
uuid-runtime
vim-common
vim-tiny
wget
whiptail
wireless-regdb
xauth
xkb-data
xml-core
xz-utils
zlib1g:amd64

min_client_packages

Plain Text icon minclient_packages.txt — Plain Text, 10 KB (10767 bytes)

File contents

accountsservice					install
adduser						install
apt						install
apt-transport-https				install
apt-utils					install
aptitude					install
aptitude-common					install
autoconf					install
automake					install
autotools-dev					install
base-files					install
base-passwd					install
bash						install
bash-completion					install
bc						install
bind9-host					install
binutils					install
biosdevname					install
bison						install
bsdmainutils					install
bsdutils					install
busybox-initramfs				install
busybox-static					install
byacc						install
bzip2						install
ca-certificates					install
command-not-found				install
command-not-found-data				install
console-setup					install
coreutils					install
cpio						install
cpp						install
cpp-4.8						install
crda						install
cron						install
dash						install
dbus						install
debconf						install
debconf-i18n					install
debfoster					install
debianutils					install
deborphan					install
dh-python					install
dialog						install
diffutils					install
dmidecode					install
dmsetup						install
dnsutils					install
dosfstools					install
dpkg						install
e2fslibs:amd64					install
e2fsprogs					install
ed						install
eject						install
file						install
findutils					install
flex						install
friendly-recovery				install
ftp						install
fuse						install
g++						install
g++-4.8						install
gcc						install
gcc-4.8						install
gcc-4.8-base:amd64				install
gcc-4.9-base:amd64				install
gettext-base					install
git						install
git-man						install
gnupg						install
gpgv						install
grep						install
groff-base					install
grub-common					install
grub-gfxpayload-lists				install
grub-pc						install
grub-pc-bin					install
grub2-common					install
gzip						install
hdparm						install
hostname					install
ifupdown					install
info						install
init-system-helpers				install
initramfs-tools					install
initramfs-tools-bin				install
initscripts					install
insserv						install
install-info					install
iproute2					install
iptables					install
iputils-ping					install
iputils-tracepath				install
irqbalance					install
isc-dhcp-client					install
isc-dhcp-common					install
iso-codes					install
kbd						install
keyboard-configuration				install
klibc-utils					install
kmod						install
language-pack-en				install
language-pack-en-base				install
language-selector-common			install
less						install
libaccountsservice0:amd64			install
libacl1:amd64					install
libapparmor1:amd64				install
libapt-inst1.5:amd64				install
libapt-pkg4.12:amd64				install
libasan0:amd64					install
libasn1-8-heimdal:amd64				install
libasprintf0c2:amd64				install
libatomic1:amd64				install
libattr1:amd64					install
libaudit-common					install
libaudit1:amd64					install
libbind9-90					install
libbison-dev:amd64				install
libblkid1:amd64					install
libboost-dev					install
libboost-iostreams1.54.0:amd64			install
libboost1.54-dev				install
libbsd0:amd64					install
libbz2-1.0:amd64				install
libc-bin					install
libc-dev-bin					install
libc6:amd64					install
libc6-dev:amd64					install
libcap-ng0					install
libcap2:amd64					install
libcap2-bin					install
libcgmanager0:amd64				install
libck-connector0:amd64				install
libcloog-isl4:amd64				install
libcomerr2:amd64				install
libcurl3-gnutls:amd64				install
libcwidget3					install
libdb5.3:amd64					install
libdbus-1-3:amd64				install
libdbus-glib-1-2:amd64				install
libdebconfclient0:amd64				install
libdevmapper1.02.1:amd64			install
libdns100					install
libdrm2:amd64					install
libedit2:amd64					install
libelf1:amd64					install
libept1.4.12:amd64				install
liberror-perl					install
libestr0					install
libevent-2.0-5:amd64				install
libexpat1:amd64					install
libffi6:amd64					install
libfl-dev:amd64					install
libfreetype6:amd64				install
libfuse2:amd64					install
libgc1c2:amd64					install
libgcc-4.8-dev:amd64				install
libgcc1:amd64					install
libgck-1-0:amd64				install
libgcr-3-common					install
libgcr-base-3-1:amd64				install
libgcrypt11:amd64				install
libgdbm3:amd64					install
libgeoip1:amd64					install
libglib2.0-0:amd64				install
libglib2.0-data					install
libgmp10:amd64					install
libgnutls-openssl27:amd64			install
libgnutls26:amd64				install
libgomp1:amd64					install
libgpg-error0:amd64				install
libgssapi-krb5-2:amd64				install
libgssapi3-heimdal:amd64			install
libgssglue1:amd64				install
libhcrypto4-heimdal:amd64			install
libheimbase1-heimdal:amd64			install
libheimntlm0-heimdal:amd64			install
libhx509-5-heimdal:amd64			install
libidn11:amd64					install
libisc95					install
libisccc90					install
libisccfg90					install
libisl10:amd64					install
libitm1:amd64					install
libjson-c2:amd64				install
libjson0:amd64					install
libk5crypto3:amd64				install
libkeyutils1:amd64				install
libklibc					install
libkmod2:amd64					install
libkrb5-26-heimdal:amd64			install
libkrb5-3:amd64					install
libkrb5support0:amd64				install
libldap-2.4-2:amd64				install
liblocale-gettext-perl				install
liblockfile-bin					install
liblockfile1:amd64				install
libltdl-dev:amd64				install
libltdl7:amd64					install
liblwres90					install
liblzma5:amd64					install
libmagic1:amd64					install
libmount1:amd64					install
libmpc3:amd64					install
libmpdec2:amd64					install
libmpfr4:amd64					install
libmysqlclient-dev				install
libmysqlclient18:amd64				install
libncurses5:amd64				install
libncursesw5:amd64				install
libnewt0.52:amd64				install
libnfnetlink0:amd64				install
libnfsidmap2:amd64				install
libnih-dbus1:amd64				install
libnih1:amd64					install
libnl-3-200:amd64				install
libnl-genl-3-200:amd64				install
libnuma1:amd64					install
libp11-kit0:amd64				install
libpam-cap:amd64				install
libpam-modules:amd64				install
libpam-modules-bin				install
libpam-runtime					install
libpam0g:amd64					install
libparted0debian1:amd64				install
libpcap-dev					install
libpcap0.8:amd64				install
libpcap0.8-dev					install
libpci3:amd64					install
libpcre3:amd64					install
libpipeline1:amd64				install
libplymouth2:amd64				install
libpng12-0:amd64				install
libpolkit-gobject-1-0:amd64			install
libpopt0:amd64					install
libprocps3:amd64				install
libpython-stdlib:amd64				install
libpython2.7-minimal:amd64			install
libpython2.7-stdlib:amd64			install
libpython3-stdlib:amd64				install
libpython3.4-minimal:amd64			install
libpython3.4-stdlib:amd64			install
libquadmath0:amd64				install
libreadline6:amd64				install
libroken18-heimdal:amd64			install
librtmp0:amd64					install
libsasl2-2:amd64				install
libsasl2-modules:amd64				install
libsasl2-modules-db:amd64			install
libselinux1:amd64				install
libsemanage-common				install
libsemanage1:amd64				install
libsepol1:amd64					install
libsigc++-2.0-0c2a:amd64			install
libsigsegv2:amd64				install
libslang2:amd64					install
libsqlite3-0:amd64				install
libss2:amd64					install
libssl-dev:amd64				install
libssl-doc					install
libssl1.0.0:amd64				install
libstdc++-4.8-dev:amd64				install
libstdc++6:amd64				install
libsystemd-daemon0:amd64			install
libsystemd-login0:amd64				install
libtasn1-6:amd64				install
libtext-charwidth-perl				install
libtext-iconv-perl				install
libtext-soundex-perl				install
libtext-wrapi18n-perl				install
libtinfo5:amd64					install
libtirpc1:amd64					install
libtool						install
libtsan0:amd64					install
libudev1:amd64					install
libusb-0.1-4:amd64				install
libusb-1.0-0:amd64				install
libustr-1.0-1:amd64				install
libuuid1:amd64					install
libwind0-heimdal:amd64				install
libwrap0:amd64					install
libxapian22					install
libxml2:amd64					install
libxtables10					install
linux-firmware					install
linux-generic					install
linux-headers-3.13.0-33				install
linux-headers-3.13.0-33-generic			install
linux-headers-generic				install
linux-image-3.13.0-33-generic			install
linux-image-extra-3.13.0-33-generic		install
linux-image-generic				install
linux-libc-dev:amd64				install
locales						install
lockfile-progs					install
login						install
logrotate					install
lsb-base					install
lsb-release					install
lshw						install
lsof						install
ltrace						install
m4						install
make						install
makedev						install
man-db						install
manpages					install
manpages-dev					install
mawk						install
mime-support					install
mlocate						install
module-init-tools				install
mount						install
mountall					install
multiarch-support				install
mysql-common					install
nano						install
ncurses-base					install
ncurses-bin					install
ncurses-term					install
net-tools					install
netbase						install
netcat-openbsd					install
nfs-common					install
ntfs-3g						install
ntpdate						install
openssh-client					install
openssh-server					install
openssh-sftp-server				install
openssl						install
parted						install
passwd						install
patch						install
pciutils					install
perl						install
perl-base					install
perl-modules					install
plymouth					install
plymouth-theme-ubuntu-text			install
popularity-contest				install
powermgmt-base					install
ppp						install
pppconfig					install
pppoeconf					install
procps						install
psmisc						install
python						install
python-apt-common				install
python-chardet					install
python-minimal					install
python-requests					install
python-six					install
python-urllib3					install
python2.7					install
python2.7-minimal				install
python3						install
python3-apt					install
python3-commandnotfound				install
python3-dbus					install
python3-distupgrade				install
python3-gdbm:amd64				install
python3-minimal					install
python3-update-manager				install
python3.4					install
python3.4-minimal				install
readline-common					install
resolvconf					install
rpcbind						install
rsync						install
rsyslog						install
sed						install
sensible-utils					install
sgml-base					install
shared-mime-info				install
ssh						install
ssh-import-id					install
strace						install
sudo						install
systemd-services				install
systemd-shim					install
sysv-rc						install
sysvinit-utils					install
tar						install
tasksel						install
tasksel-data					install
tcpd						install
tcpdump						install
telnet						install
time						install
tzdata						install
ubuntu-keyring					install
ubuntu-minimal					install
ubuntu-release-upgrader-core			install
ubuntu-standard					install
ucf						install
udev						install
ufw						install
update-manager-core				install
upstart						install
ureadahead					install
usbutils					install
util-linux					install
uuid-runtime					install
vim-common					install
vim-tiny					install
wget						install
whiptail					install
wireless-regdb					install
xkb-data					install
xml-core					install
xz-utils					install
zlib1g:amd64					install
zlib1g-dev:amd64				install

ubuntu14_04_packages

Plain Text icon Ubuntu14_04_packeges.txt — Plain Text, 9 KB (9565 bytes)

File contents

Packages from Ubuntu 14.04 minimal
install plus the packages needed                                      Packages from UBUNTU12-64-STD
to build emulab-client                  Packages added                not carried over installed
=================================================================================================
accountsservice                         build-essential               apparmor
adduser                                 cvs                           apparmor-utils
apt                                     debhelper                     at
apt-transport-https                     e2fslibs                      bsd-mailx
apt-utils                               ethtool		              defoma
aptitude                                gconf2-common                 dh-apparmor
aptitude-common                         gconf-service                 dpkg-dev
autoconf                                gconf-service-backend         emacs
automake                                gdb                           emacs23
autotools-dev                           emacs24                       emacs23-bin-common
base-files                              gnupg-curl                    emacs23-common
base-passwd                             intltool-debian               emacsen-common
bash                                    iproute                       exuberant-ctags
bash-completion                         iputils-arping                fontconfig
bc                                      jove                          fontconfig-config
bind9-host                              kexec-tools                   geoip-database
binutils                                lftp                          gettext
biosdevname                             lvm2                          hicolor-icon-theme
bison                                   lzma                          html2text
bsdmainutils                            makedumpfile                  installation-report
bsdutils                                memtest86+                    kernel-package
busybox-initramfs                       ntp                           kernel-wedge
busybox-static                          open-iscsi                    laptop-detect
byacc                                   open-iscsi-utils              m17n-contrib
bzip2                                   openvpn                       m17n-db
ca-certificates                         os-prober                     mtr-tiny
command-not-found                       python-apt                    po-debconf
command-not-found-data                  python-dbus                   postfix
console-setup                           python-dbus-dev               python-central
coreutils                               python-gdbm                   ttf-dejavu-core
cpio                                    python-gnupginterface         vim
cpp                                     python-support                vim-gtk
cpp-4.8                                 smartmontools                 vim-gui-common
crda                                    ssl-cert                      vim-runtime
cron                                    subversion                    w3m
dash                                    tcl8.5                        watershed
dbus                                    tcsh                          wireless-crda
debconf                                 traceroute	              x-ttcidfont-conf
debconf-i18n                            valgrind                      x11-common
debfoster                               vlan                          x11-utils
debianutils                             xterm                         xauth
deborphan                               zlig1g                        xbitmaps
dh-python                                                             xfonts-base
dialog                                                                xfonts-encodings
diffutils                                                             xfonts-utils
dmidecode                                                             xterm
dmsetup                                                               zlib1g-dev
dnsutils                                                              zsh
dosfstools
dpkg
e2fslibs:amd64
e2fsprogs
ed
eject
file
findutils
flex
friendly-recovery
ftp
fuse
g++
g++-4.8
gcc
gcc-4.8
gcc-4.8-base:amd64
gcc-4.9-base:amd64
gettext-base
git
git-man
gnupg
gpgv
grep
groff-base
grub-common
grub-gfxpayload-lists
grub-pc
grub-pc-bin
grub2-common
gzip
hdparm
hostname
ifupdown
info
init-system-helpers
initramfs-tools
initramfs-tools-bin
initscripts
insserv
install-info
iproute2
iptables
iputils-ping
iputils-tracepath
irqbalance
isc-dhcp-client
isc-dhcp-common
iso-codes
kbd
keyboard-configuration
klibc-utils
kmod
language-pack-en
language-pack-en-base
language-selector-common
less
libaccountsservice0:amd6
libacl1:amd64
libapparmor1:amd64
libapt-inst1.5:amd64
libapt-pkg4.12:amd64
libasan0:amd64
libasn1-8-heimdal:amd64
libasprintf0c2:amd64
libatomic1:amd64
libattr1:amd64
libaudit-common
libaudit1:amd64
libbind9-90
libbison-dev:amd64
libblkid1:amd64
libboost-dev
libboost-iostreams1.54.0
libboost1.54-dev
libbsd0:amd64
libbz2-1.0:amd64
libc-bin
libc-dev-bin
libc6:amd64
libc6-dev:amd64
libcap-ng0
libcap2:amd64
libcap2-bin
libcgmanager0:amd64
libck-connector0:amd64
libcloog-isl4:amd64
libcomerr2:amd64
libcurl3-gnutls:amd64
libcwidget3
libdb5.3:amd64
libdbus-1-3:amd64
libdbus-glib-1-2:amd64
libdebconfclient0:amd64
libdevmapper1.02.1:amd64
libdns100
libdrm2:amd64
libedit2:amd64
libelf1:amd64
libept1.4.12:amd64
liberror-perl
libestr0
libevent-2.0-5:amd64
libexpat1:amd64
libffi6:amd64
libfl-dev:amd64
libfreetype6:amd64
libfuse2:amd64
libgc1c2:amd64
libgcc-4.8-dev:amd64
libgcc1:amd64
libgck-1-0:amd64
libgcr-3-common
libgcr-base-3-1:amd64
libgcrypt11:amd64
libgdbm3:amd64
libgeoip1:amd64
libglib2.0-0:amd64
libglib2.0-data
libgmp10:amd64
libgnutls-openssl27:amd6
libgnutls26:amd64
libgomp1:amd64
libgpg-error0:amd64
libgssapi-krb5-2:amd64
libgssapi3-heimdal:amd64
libgssglue1:amd64
libhcrypto4-heimdal:amd6
libheimbase1-heimdal:amd
libheimntlm0-heimdal:amd
libhx509-5-heimdal:amd64
libidn11:amd64
libisc95
libisccc90
libisccfg90
libisl10:amd64
libitm1:amd64
libjson-c2:amd64
libjson0:amd64
libk5crypto3:amd64
libkeyutils1:amd64
libklibc
libkmod2:amd64
libkrb5-26-heimdal:amd64
libkrb5-3:amd64
libkrb5support0:amd64
libldap-2.4-2:amd64
liblocale-gettext-perl
liblockfile-bin
liblockfile1:amd64
libltdl-dev:amd64
libltdl7:amd64
liblwres90
liblzma5:amd64
libmagic1:amd64
libmount1:amd64
libmpc3:amd64
libmpdec2:amd64
libmpfr4:amd64
libmysqlclient-dev
libmysqlclient18:amd64
libncurses5:amd64
libncursesw5:amd64
libnewt0.52:amd64
libnfnetlink0:amd64
libnfsidmap2:amd64
libnih-dbus1:amd64
libnih1:amd64
libnl-3-200:amd64
libnl-genl-3-200:amd64
libnuma1:amd64
libp11-kit0:amd64
libpam-cap:amd64
libpam-modules:amd64
libpam-modules-bin
libpam-runtime
libpam0g:amd64
libparted0debian1:amd64
libpcap-dev
libpcap0.8:amd64
libpcap0.8-dev
libpci3:amd64
libpcre3:amd64
libpipeline1:amd64
libplymouth2:amd64
libpng12-0:amd64
libpolkit-gobject-1-0:am
libpopt0:amd64
libprocps3:amd64
libpython-stdlib:amd64
libpython2.7-minimal:amd
libpython2.7-stdlib:amd6
libpython3-stdlib:amd64
libpython3.4-minimal:amd
libpython3.4-stdlib:amd6
libquadmath0:amd64
libreadline6:amd64
libroken18-heimdal:amd64
librtmp0:amd64
libsasl2-2:amd64
libsasl2-modules:amd64
libsasl2-modules-db:amd6
libselinux1:amd64
libsemanage-common
libsemanage1:amd64
libsepol1:amd64
libsigc++-2.0-0c2a:amd64
libsigsegv2:amd64
libslang2:amd64
libsqlite3-0:amd64
libss2:amd64
libssl-dev:amd64
libssl-doc
libssl1.0.0:amd64
libstdc++-4.8-dev:amd64
libstdc++6:amd64
libsystemd-daemon0:amd64
libsystemd-login0:amd64
libtasn1-6:amd64
libtext-charwidth-perl
libtext-iconv-perl
libtext-soundex-perl
libtext-wrapi18n-perl
libtinfo5:amd64
libtirpc1:amd64
libtool
libtsan0:amd64
libudev1:amd64
libusb-0.1-4:amd64
libusb-1.0-0:amd64
libustr-1.0-1:amd64
libuuid1:amd64
libwind0-heimdal:amd64
libwrap0:amd64
libxapian22
libxml2:amd64
libxtables10
linux-firmware
linux-generic
linux-headers-3.13.0-33
linux-headers-3.13.0-33-
linux-headers-generic
linux-image-3.13.0-33-ge
linux-image-extra-3.13.0
linux-image-generic
linux-libc-dev:amd64
locales
lockfile-progs
login
logrotate
lsb-base
lsb-release
lshw
lsof
ltrace
m4
make
makedev
man-db
manpages
manpages-dev
mawk
mime-support
mlocate
module-init-tools
mount
mountall
multiarch-support
mysql-common
nano
ncurses-base
ncurses-bin
ncurses-term
net-tools
netbase
netcat-openbsd
nfs-common
ntfs-3g
ntpdate
openssh-client
openssh-server
openssh-sftp-server
openssl
parted
passwd
patch
pciutils
perl
perl-base
perl-modules
plymouth
plymouth-theme-ubuntu-te
popularity-contest
powermgmt-base
ppp
pppconfig
pppoeconf
procps
psmisc
python
python-apt-common
python-chardet
python-minimal
python-requests
python-six
python-urllib3
python2.7
python2.7-minimal
python3
python3-apt
python3-commandnotfound
python3-dbus
python3-distupgrade
python3-gdbm:amd64
python3-minimal
python3-update-manager
python3.4
python3.4-minimal
readline-common
resolvconf
rpcbind
rsync
rsyslog
sed
sensible-utils
sgml-base
shared-mime-info
ssh
ssh-import-id
strace
sudo
systemd-services
systemd-shim
sysv-rc
sysvinit-utils
tar
tasksel
tasksel-data
tcpd
tcpdump
telnet
time
tzdata
ubuntu-keyring
ubuntu-minimal
ubuntu-release-upgrader-core
ubuntu-standard
ucf
udev
ufw
update-manager-core
upstart
ureadahead
usbutils
util-linux
uuid-runtime
vim-common
vim-tiny
wget
whiptail
wireless-regdb
xkb-data
xml-core
xz-utils
zlib1g:amd64
zlib1g-dev:amd64

Issues that could be fixed by changing the emulabclient source code

Plain Text icon Problems+need+to+be+checked+on.txt — Plain Text, 1 KB (1261 bytes)

File contents

Problems need to be checked on
Stop renaming of network interfaces

apt-get remove --purge biosdevname
update-initramfs -c -k `uname -r`
Why is sudors not handled in the client source.
%root group needs to be add and we like no passwords. 

  diff etc/sudors etc14/sudors
***************
! Defaults env_reset
! Defaults mail_badpass
---
! #Defaults env_reset
! #Defaults mail_badpass

*** 19,26 ****
 root ALL=(ALL:ALL) ALL
 
 # Members of the admin group may gain root privileges
! %admin ALL=(ALL) NOPASSWD: ALL
! %root ALL=(ALL) NOPASSWD: ALL
 
 # Allow members of group sudo to execute any command
 %sudo ALL=(ALL:ALL) ALL
--- 20,26 ----
 root ALL=(ALL:ALL) ALL
 
 # Members of the admin group may gain root privileges
! %admin ALL=(ALL) ALL
 
 # Allow members of group sudo to execute any command
 %sudo ALL=(ALL:ALL) ALL
user/group conflicts, two choices 
1. change the source emulab-client installed passwd and groups file
2. change the uid/gid of the few file that conflict. 

Did the second: 
 
chown statd /var/lib/nfs /var/lib/nfs/sm.bak /var/lib/nfs/sm
chgrp crontab /var/spool/cron/crontabs /usr/bin/crontab
chgrp syslog /var/log
chgrp fuse /etc/fuse.conf 
chgrp mlocate /usr/bin/mlocate /var/lib/mlocate/mlocate.db
chgrp ssh /usr/bin/ssh-agent