Installing Tools

In GNU/Linux, you can download and install a software by one command (which may be difficult to do in Windows). This is achieved by the package manager. Different GNU/Linux distribution has different package manager. In Debian, the package manager is called apt.

You will download and install some tools needed for the PAs from the network mirrors. Before using the network mirrors, you should check whether the container can access the Internet.

Checking network state

By the default network setting of the container will share the same network state with your host. That is, if your host is able to access the Internet, so does the container. To test whether the container is able to access the Internet, you can try to ping a host outside the university LAN:

ping -c 4

You should receive reply packets successfully:

PING ( 56(84) bytes of data.
64 bytes from icmp_seq=1 ttl=51 time=5.81 ms
64 bytes from icmp_seq=2 ttl=51 time=6.11 ms
64 bytes from icmp_seq=3 ttl=51 time=6.88 ms
64 bytes from icmp_seq=4 ttl=51 time=4.92 ms

--- ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3000ms
rtt min/avg/max/mdev = 4.925/5.932/6.882/0.706 ms

If you get an "unreachable" message, please check whether you can access in the host system.

Updating APT package information

Now you can tell apt to retrieve software information from the sources:

apt-get update

However, you will receive an error message:

E: Could not open lock file /var/lib/apt/lists/lock - open (13: Permission denied)
E: Unable to lock directory /var/lib/apt/lists/

This is because apt-get requires superuser privilege to run.

Why some operations require superuser privilege?

In a real GNU/Linux, shutting down the system also requires superuser privilege. Can you provide a scene where bad thing will happen if the shutdown operation does not require superuser privilege?

To run apt-get with superuser privilege, use sudo. If you find an operation requires superuser permission, append sodu before that operation. For example,

sudo apt-get update

Enter your password you set previously in the Dockerfile. Now apt-get should run successfully. Since it requires Internet accessing, it may cost some time to finish.

Installing tools for PAs

The following tools are necessary for PAs:

apt-get install build-essential    # build-essential packages, include binary utilities, gcc, make, and so on
apt-get install gdb                # GNU debugger
apt-get install git                # reversion control system
apt-get install libreadline-dev    # a library to use compile the project later
apt-get install libsdl2-dev        # a library to use compile the project later
apt-get install qemu-system-x86    # QEMU

The usage of these tools is explained later.

results matching ""

    No results matching ""