Difference between revisions of "COMP 3000 Lab 5 2012"

From Soma-notes
Jump to navigation Jump to search
 
(15 intermediate revisions by 2 users not shown)
Line 3: Line 3:
(Note that there exist other netcat packages, such as netcat-openbsd.  Please use netcat-traditional for this lab!)
(Note that there exist other netcat packages, such as netcat-openbsd.  Please use netcat-traditional for this lab!)


You will submit a file <tt>netcat-comp3000_1.10-39comp3000_amd64.deb</tt> or <tt>netcat-comp3000_1.10-39comp3000_i386.deb</tt>, depending on whether you are running a 64 or 32-bit version of Ubuntu 12.04.  The answers to Part A should appear in a file /usr/share/doc/netcat-comp3000/PART-A when the package is installed, with each answer appearing on one line, and with the very first answer appearing on the very first line of the file.  This file MUST be a UNIX next file (delimited by LF)!
You will submit a file <tt>netcat-comp3000_1.10-39comp3000_amd64.deb</tt> or <tt>netcat-comp3000_1.10-39comp3000_i386.deb</tt>, depending on whether you are running a 64 or 32-bit version of Ubuntu 12.04.  The answers to Part A should appear in a file /usr/share/doc/netcat-comp3000/PART-A when the package is installed, with each answer appearing on one line, and with the very first answer appearing on the very first line of the file.  This file MUST be a UNIX text file (delimited by LF)!


If you do not manage to finish Part B, just submit this answers file for partial credit.
If you do not manage to finish Part B, just submit this answers file for partial credit.
'''NOTE:''' The password for the COMP 3004 Ubuntu VM's admin account has been changed to ''nimda!''
This lab is due Wednesday, Nov. 7, by 11:55 PM via cuLearn.  '''(extended)'''


==Part A==
==Part A==
Line 11: Line 15:
Note the answers for this part go in a file PART-A, with each answer on a line by itself, starting with the first line.  There should be '''no''' line numbers; just the commands that are asked for.  Expect these answers to be graded automatically!
Note the answers for this part go in a file PART-A, with each answer on a line by itself, starting with the first line.  There should be '''no''' line numbers; just the commands that are asked for.  Expect these answers to be graded automatically!


# Install the <tt>dpkg-dev</tt> package.  Give the exact apt-get command you used to install it.
# Install the <tt>netcat-traditional</tt> package.  Give the exact apt-get command you used to install it.
# Install the <tt>netcat-traditional</tt> package.  Give the exact apt-get command you used to install it.
# Download the source for <tt>netcat-traditional</tt>.  Give the exact apt-get command you used to download the source.
# Give the target of the symbolic link /etc/alternatives/nc.
# Give the command to make netcat (nc) listen on port 4000 for incoming connections and execute /usr/bin/bc on every connection.  (Note it will be difficult to do this if you use the netcat-openbsd package.)
# Give the command to make netcat (nc) listen on port 4000 for incoming connections and execute /usr/bin/bc on every connection.  (Note it will be difficult to do this if you use the netcat-openbsd package.)
# Give the command needed to have netcat connect to the server you created in the previous question.  Connect from the same machine, i.e., use "localhost" as the host.
# Give the command needed to have netcat connect to the server you created in the previous question.  Connect from the same machine, i.e., use "localhost" as the host.  You can terminate a connection by typing Ctrl-D.
# Give the command line needed to extract the contents of the <tt>netcat-traditional</tt> package you installed into the directory CONTENTS, using the <tt>dpkg-deb</tt> command.
# Give the command line needed to extract the control files of the <tt>netcat-traditional</tt> package you installed into the directory CONTROL, using the <tt>dpkg-deb</tt> command.
# Install the <tt>dpkg-dev</tt> package.  Give the exact apt-get command you used to install it.
# Install the <tt>fakeroot</tt> package.  Give the exact apt-get command you used to install it.
# Install the <tt>quilt</tt> package.  Give the exact apt-get command you used to install it.
# Download the unpacked source for <tt>netcat-traditional</tt>.  Give the exact apt-get command you used to download the source.
# Give the command line needed to build the source package you downloaded, using dpkg-buildpackage and fakeroot, only building the binary packages.


==Part B==
==Part B==


Create a new netcat-traditional binary package (using the source package) with the following attributes:


Outline for lab
* [2] Make the name of the package netcat-comp3000 instead of netcat-traditional by editing debian/control and other files as necessary.  Be sure to make yourself the maintainer and uploader, using your Carleton email address.  Note your package should not be creating or touching any files normally created by netcat-traditional, except those that are generic netcat files (and that are controlled by the Debian alternatives infrastructure).  In other words, you should be able to install netcat-comp3000 and netcat-traditional without any errors regarding file conflicts.
* install netcat deb, binary package, run it, examine contents
* [2] The version should be set to 1.10-39comp3000 by editing the debian/changelog.  Urgency should be low, version should be unstable.  Only change is "* COMP 3000 Assignment".  The timestamp should be when you make the change, and the maintainer should be you, giving your Carleton email address.  (Note: emacs has a changelog mode!)
* examine source package, modify, build binary package
* [1] The file PART-A should be installed in /usr/share/doc/netcat-comp3000 along with the other standard doc files for netcat-traditional.
* look at default configuration, work with debconf
* [2] Make the binary installed nc.comp3000, not nc.traditional (start by editing the debian/rules file).  Make sure it is installed as an alternative for nc (binary and man page).
* make netcat-based server that is started at boot time: server should print seconds since boot and student name?
* [2] Make <tt>nc.comp3000 -h</tt> return the normal help message, appended with the line "Version for COMP 3000.  Prepared by Jane Smith."  Substitute your name for Jane Smith.
* [2] Have the package install an upstart script that spawns bc on port 4000.  Use the getty startup scripts (tty?.conf) as a model.  You should need four lines of actual statements to make it work, perhaps less.  Note that bc should always be running, even after someone has connected and exited.
* [2] BONUS: Add a file /etc/default/nc.comp3000 that allows you to change the program that is spawned and the port being listened to by the instance started by upstart.  The installed version of this file should default to the same command and port as before.

Latest revision as of 21:10, 5 November 2012

In this lab you will be creating a new package for ubuntu called netcat-comp3000, based on the netcat-traditional package. We will be grading the .deb file you create using scripts, so be sure to follow the directions below carefully!

(Note that there exist other netcat packages, such as netcat-openbsd. Please use netcat-traditional for this lab!)

You will submit a file netcat-comp3000_1.10-39comp3000_amd64.deb or netcat-comp3000_1.10-39comp3000_i386.deb, depending on whether you are running a 64 or 32-bit version of Ubuntu 12.04. The answers to Part A should appear in a file /usr/share/doc/netcat-comp3000/PART-A when the package is installed, with each answer appearing on one line, and with the very first answer appearing on the very first line of the file. This file MUST be a UNIX text file (delimited by LF)!

If you do not manage to finish Part B, just submit this answers file for partial credit.

NOTE: The password for the COMP 3004 Ubuntu VM's admin account has been changed to nimda!

This lab is due Wednesday, Nov. 7, by 11:55 PM via cuLearn. (extended)

Part A

Note the answers for this part go in a file PART-A, with each answer on a line by itself, starting with the first line. There should be no line numbers; just the commands that are asked for. Expect these answers to be graded automatically!

  1. Install the netcat-traditional package. Give the exact apt-get command you used to install it.
  2. Give the target of the symbolic link /etc/alternatives/nc.
  3. Give the command to make netcat (nc) listen on port 4000 for incoming connections and execute /usr/bin/bc on every connection. (Note it will be difficult to do this if you use the netcat-openbsd package.)
  4. Give the command needed to have netcat connect to the server you created in the previous question. Connect from the same machine, i.e., use "localhost" as the host. You can terminate a connection by typing Ctrl-D.
  5. Give the command line needed to extract the contents of the netcat-traditional package you installed into the directory CONTENTS, using the dpkg-deb command.
  6. Give the command line needed to extract the control files of the netcat-traditional package you installed into the directory CONTROL, using the dpkg-deb command.
  7. Install the dpkg-dev package. Give the exact apt-get command you used to install it.
  8. Install the fakeroot package. Give the exact apt-get command you used to install it.
  9. Install the quilt package. Give the exact apt-get command you used to install it.
  10. Download the unpacked source for netcat-traditional. Give the exact apt-get command you used to download the source.
  11. Give the command line needed to build the source package you downloaded, using dpkg-buildpackage and fakeroot, only building the binary packages.

Part B

Create a new netcat-traditional binary package (using the source package) with the following attributes:

  • [2] Make the name of the package netcat-comp3000 instead of netcat-traditional by editing debian/control and other files as necessary. Be sure to make yourself the maintainer and uploader, using your Carleton email address. Note your package should not be creating or touching any files normally created by netcat-traditional, except those that are generic netcat files (and that are controlled by the Debian alternatives infrastructure). In other words, you should be able to install netcat-comp3000 and netcat-traditional without any errors regarding file conflicts.
  • [2] The version should be set to 1.10-39comp3000 by editing the debian/changelog. Urgency should be low, version should be unstable. Only change is "* COMP 3000 Assignment". The timestamp should be when you make the change, and the maintainer should be you, giving your Carleton email address. (Note: emacs has a changelog mode!)
  • [1] The file PART-A should be installed in /usr/share/doc/netcat-comp3000 along with the other standard doc files for netcat-traditional.
  • [2] Make the binary installed nc.comp3000, not nc.traditional (start by editing the debian/rules file). Make sure it is installed as an alternative for nc (binary and man page).
  • [2] Make nc.comp3000 -h return the normal help message, appended with the line "Version for COMP 3000. Prepared by Jane Smith." Substitute your name for Jane Smith.
  • [2] Have the package install an upstart script that spawns bc on port 4000. Use the getty startup scripts (tty?.conf) as a model. You should need four lines of actual statements to make it work, perhaps less. Note that bc should always be running, even after someone has connected and exited.
  • [2] BONUS: Add a file /etc/default/nc.comp3000 that allows you to change the program that is spawned and the port being listened to by the instance started by upstart. The installed version of this file should default to the same command and port as before.