AXP 1.6 Developer Guide
AXP User Defined Linux Environment

Table Of Contents

AXP User Defined Linux Environment

Setting up AXPUDL without RPM support

Troubleshooting AXPUDL without RPM Support

Additional References

Setting up AXPUDL with RPM support

Fedora Core 10 Files


AXP User Defined Linux Environment


If you choose to use an AXP User Defined Linux environment (AXPUDL), not the default AXPOS, you choose your own linux distribution.

For information on the alternative AXP Reference OS(AXPOS), refer to the "Cisco AXP Reference Operating System" section on page 123.

The following linux distributions have been tested on Cisco AXP:

SUSE 11

Debian 3.0

Ubuntu 8.0.4 (server version)

Fedora core 10

Fedora core 4

Two examples of setting up the AXPUDL are shown below.

When packaging your application to run in the AXPUDL, package your application using the packaging tool specifying the argument: user-defined-linux=y. In AXPUDL, make sure that the init process is available—refer to the "Setting Up the init Process" section on page 15.

This chapter consists of the following sections:

Setting up AXPUDL without RPM support

Setting up AXPUDL with RPM support

Setting up AXPUDL without RPM support

To setup a Debian-based AXPUDL follow the steps below.

The packaging directory used to hold the AXPUDL environment is typically in a staging area on another machine.


Step 1 Download the Debian 3.0 iso files from www.debian.org

Step 2 Install debian under a vmware instance

Step 3 Login to debian under vmware instance and cd to root /

Step 4 Tar the entire installation using tar zcvf /debian.tar.gz /

Step 5 Copy the tar file to the packaging directory in a staging area on another machine

Step 6 Untar the contents of debian.tar.gz into the packaging directory

Example

In this example the tar file is unpacked into the packaging directory /debian_udl

mv /debian.tar.gz /debian_udl
cd /debian_udl
tar zxf /debian.tar.gz
rm -f /debian.tar.gz

Show the contents of the packaging directory

/debian_udl > ls
bin   etc   lib         media  opt   sbin  sys  usr
boot  home  lost+found  mnt    root  srv   tmp  var

Step 7 Issue the packaging command

Example

pkg_build.sh --project-dir '/debian-proj' --auth-bundle '/xyz_src/auth_bundle' 
--private-key '/xyz_src/private.key' --name 'Debian' --version '1.0.0' --description 
`Debian UDL' --source-dir '/debian_udl' --disk-limit '10000M' --memory-limit '256M' 
--cpu-limit '500' --memory-wildcard --disk-wildcard --cpu-wildcard --user-defined-linux 

If there are no errors, go to step 10

Step 8 After running the packaging command, if there are errors relating to softlinks that do not link to actual files, refer to the "Troubleshooting AXPUDL without RPM Support" section

Step 9 After running the packaging command, if there are errors relating to files that have no read/write permissions, do the following:

take a note of the files that have no read/write permissions and also record the files (original) permissions

add a chmod command in the postinstall.sh script to change the permissions of these files back to their original permissions

change the permissions of these files using chmod 777

retry the packaging command. (You can refer to the example in step 7 above.)

Step 10 Install the package


Troubleshooting AXPUDL without RPM Support

Errors may appear during the "Setting up AXPUDL without RPM support" section that are due to soft links that do not link to actual files. To fix this problem:


Step 1 For each of the soft links that are causing an error, if the link not to an actual file and the link is not required:

remove the soft link

or

change the soft link to a relative link

Step 2 Retry the packaging command. (Refer to the example in step 7 above.)


Some files under /proc and /dev do not need to be installed with the AXPUDL. For example: /proc, /dev, /usr/share/doc, /usr/share/doc-base, /usr/share/locale/* You can remove these files and the directory under /proc and /dev. In addition, the man pages directory and many doc pages under /usr/share directory can be removed to save space. After installation, files suchas /proc are recreated from the kernel.

Additional References

Installing: "Installing and Upgrading Software" section on page 237.

Packaging: "Installing and Upgrading Software" section on page 237.

Setting up AXPUDL with RPM support

To setup an AXPUDL based on Fedora Core 10 perform the following steps:


Step 1 Download the Fedora core 10 iso files from http://www.redhat.com

Step 2 In the development linux machine, create a staging directory such as /opt/fedora10

Step 3 Build a list of RPMs—refer to Table 1 below

To determine the order of the RPMs you can do one of the following:

Look at a standard Fedora Core 10 installation: use the rpm -qa -last command in the RPM to list the RPMs installed in reverse order

OR

Install the RPMs in the chroot environment

During installation, if an error is seen for an RPM, the error is often caused by the RPM being dependent on another RPM that has not yet been installed

Step 4 After identifying the order of RPMs to be installed, copy the RPMs into the third_party_rpms_repository

Step 5 Create a text file rpm_priority.dat with the order of the RPMs to be installed. Refer to the "RPM Installation Sequence" section on page 216.

Step 6 Issue the packaging command

Example

pkg_build.sh --project-dir '/fc10-proj' --auth-bundle '/xyz_src/auth_bundle' --private-key 
'/xyz_src/private.key' --name 'FC10' --version '1.0.0' --description `Fedora Core 10 UDL' 
--source-dir '/FC10' --disk-limit '10000M' --memory-limit '256M' --cpu-limit '500' 
--memory-wildcard --disk-wildcard --cpu-wildcard --user-defined-linux

Step 7 Install the package


Fedora Core 10 Files

Access to /tmp Directory Files

Required Fedora Core 10 Files

Access to /tmp Directory Files


Note /tmp directory files cannot accessed. For example, entries in the file restore_config_file_list.txt cannot specify /tmp directory files as either the source and destination file.


Required Fedora Core 10 Files

Table 1 shows a sample set of Fedora Core 10 RPM files required for an application on AXPUDL to run and for the user to be able to login to the guest OS shell. For each of the Fedora Core 10 RPM files an equivalent CentOS 5.2 RPM file is shown, if an equivalent file exists. Where a Fedora Core 10 RPM file is listed without an equivalent CentOS 5.2 RPM file, the Fedora Core 10 RPM file is used for Java and the RPM database.

Table 99 List of RPM Files Required in AXPUDL

Serial No (of CentOS 5.2 RPM)
CentOS 5.2 RPM
Fedora Core 10 RPM

1

basesystem-8.0-5.1.1.noarch.rpm

basesystem-10.0-1.noarch.rpm

2

filesystem-2.4.0-1.i386.rpm

filesystem-2.4.19-1.fc10.i386.rpm

3

glibc-2.5-24.i386.rpm

glibc-2.9-2.i386.rpm

4

libgcc-4.1.2-42.i386.rpm

libgcc-4.3.2-7.i386.rpm

5

mktemp-1.5-23.2.2.i386.rpm

-

6

ncurses-5.5-24.20060715.i386.rpm

ncurses-5.6-20.20080927.fc10.i386.rpm

 

ncurses-libs-5.6-20.20080927.fc10.i386.rpm

7

setup-2.5.58-1.noarch.rpm

setup-2.7.4-1.fc10.noarch.rpm

8

libtermcap-2.0.8-46.1.i386.rpm

-

9

bash-3.2-21.i386.rpm

bash-3.2-29.fc10.i386.rpm

10

audit-libs-1.6.5-9.i386.rpm

audit-libs-1.7.8-6.fc10.i386.rpm

11

libselinux-1.33.4-5.i386.rpm

libselinux-2.0.73-1.fc10.i386.rpm

12

libsepol-1.15.2-1.i386.rpm

libsepol-2.0.33-1.fc10.i386.rpm

13

shadow-utils-4.0.17-13.i386.rpm

shadow-utils-4.1.2-8.fc10.i386.rpm

14

zlib-1.2.3-3.i386.rpm

zlib-1.2.3-18.fc9.i386.rpm

15

info-4.8-14.i386.rpm

info-4.12-4.fc10.i386.rpm

16

findutils-4.2.27-4.1.i386.rpm

findutils-4.4.0-1.fc10.i386.rpm

17

pcre-6.6-2.7.i386.rpm

pcre-7.8-1.fc10.i386.rpm

18

grep-2.5.1-54.2.i386.rpm

grep-2.5.1a-61.fc10.i386.rpm

19

libacl-2.2.39-3.i386.rpm

libacl-2.2.47-3.fc10.i386.rpm

20

libattr-2.4.32-1.1.i386.rpm

libattr-2.4.43-1.fc10.i386.rpm

21

coreutils-5.97-14.i386.rpm

coreutils-6.12-17.fc10.i386.rpm

22

chkconfig-1.3.30.1-2.i386.rpm

chkconfig-1.3.38-1.i386.rpm

 

popt-1.13-4.fc10.i386.rpm

23

initscripts-8.45.19.EL-1.1.i386.rpm

initscripts-8.86-1.i386.rpm

24

util-linux-2.13-0.47.i386.rpm

util-linux-ng-2.14.1-3.fc10.i386.rpm

25

beecrypt-4.1.2-10.1.1.i386.rpm

-

26

bind-libs-9.3.4-6.P1.i386.rpm

bind-libs-9.5.1-0.8.b2.fc10.i386.rpm

27

bind-utils-9.3.4-6.P1.i386.rpm

bind-utils-9.5.1-0.8.b2.fc10.i386.rpm

28

bzip2-libs-1.0.3-3.i386.rpm

bzip2-libs-1.0.5-3.fc10.i386.rpm

29

curl-7.15.5-2.i386.rpm

curl-7.18.2-7.fc10.i386.rpm

30

device-mapper-1.02.24-1.i386.rpm

device-mapper-1.02.27-6.fc10.i386.rpm

31

e2fsprogs-libs-1.39-15.i386.rpm

-

32

elfutils-libelf-0.125-3.i386.rpm

elfutils-0.137-3.fc10.i386.rpm

33

gawk-3.1.5-14.i386.rpm

gawk-3.1.5-18.fc10.i386.rpm

34

gzip-1.3.5-10.i386.rpm

gzip-1.3.12-7.fc10.i386.rpm

35

iputils-20020927-43.i386.rpm

iputils-20071127-6.fc10.i386.rpm

36

keyutils-libs-1.2-1.i386.rpm

-

37

krb5-libs-1.6.1-25.i386.rpm

krb5-libs-1.6.3-16.fc10.i386.rpm

38

less-394-5.i386.rpm

less-424-1.fc10.i386.rpm

39

libidn-0.6.5-1.1.i386.rpm

libidn-0.6.14-8.i386.rpm

40

libstdc++-4.1.2-42.i386.rpm

libstdc++-4.3.2-7.i386.rpm

41

net-tools-1.60-78.i386.rpm

net-tools-1.60-91.fc10.i386.rpm

42

openssl-0.9.8b-10.i386.rpm

openssl-0.9.8g-11.fc10.i386.rpm

43

popt-1.10.2-48.i386.rpm

-

44

procps-3.2.7-9.i386.rpm

procps-3.2.7-21.fc10.i386.rpm

45

readline-5.1-1.1.i386.rpm

readline-5.2-13.fc9.i386.rpm

46

sed-4.1.5-5.i386.rpm

sed-4.1.5-10.fc9.i386.rpm

47

sqlite-3.3.6-2.i386.rpm

sqlite-3.5.9-2.fc10.i386.rpm

48

strace-4.5.16-1.1.i386.rpm

strace-4.5.18-1.fc10.i386.rpm

49

sysklogd-1.4.1-44.i386.rpm

sysklogd-1.5-3.fc10.i386.rpm

 

upstart-0.3.9-19.fc10.i386.rpm

50

SysVinit-2.86-14.i386.rpm

sysvinit-tools-2.86-24.i386.rpm

51

tar-1.15.1-23.0.1.i386.rpm

tar-1.20-3.fc10.i386.rpm

52

vim-minimal-7.0.109-3.3.i386.rpm

vim-minimal-7.2.025-2.fc10.i386.rpm

53

which-2.16-7.i386.rpm

which-2.19-3.fc9.i386.rpm

54

rpm-libs-4.4.2-48.i386.rpm

rpm-libs-4.6.0-0.rc1.7.i386.rpm

55

rpm-4.4.2-48.i386.rpm

rpm-4.6.0-0.rc1.7.i386.rpm

56

cracklib-2.8.9-3.3.i386.rpm

cracklib-2.8.12-2.i386.rpm

57

cracklib-dicts-2.8.9-3.3.i386.rpm

cracklib-dicts-2.8.12-2.i386.rpm

58

pam-0.99.6.2-3.27.i386.rpm

pam-1.0.2-2.fc10.i386.rpm

59

sudo-1.6.8p12-12.i386.rpm

sudo-1.6.9p17-2.fc10.i386.rpm

60

glib2-2.12.3-2.i386.rpm

glib2-2.18.2-3.fc10.i386.rpm

61

libcap-1.10-26.i386.rpm

libcap-2.10-2.fc10.i386.rpm

62

libuser-0.54.7-2.el5.5.i386.rpm

libuser-0.56.9-1.i386.rpm

63

passwd-0.73-1.i386.rpm

passwd-0.75-2.fc9.i386.rpm

 

-

tzdata-java-2008h-1.fc10.noarch.rpm

 

-

java-1.6.0-openjdk-1.6.0.0-2b12.fc10.i386.rpm

 

-

java-1.5.0-gcj-1.5.0.0-22.fc10.i386.rpm

 

-

java_cup-0.10k-1.i386.rpm

 

-

java-1.6.0-openjdk-plugin-1.6.0.0-2b12.fc10.i386.rpm

 

-

compat-db45-4.5.20-5.fc10.i386.rpm

 

-

file-libs-4.26-3.fc10.i386.rpm

 

-

lua-5.1.4-1.fc10.i386.rpm

 

-

elfutils-libelf-0.137-3.fc10.i386.rpm

 

-

nss-3.12.2.0-3.fc10.i386.rpm

 

-

nspr-4.7.2-2.fc10.i386.rpm