Monday, November 29, 2010

Fedora 13 setup

yum update
reboot
yum install httpd
yum install createrepo rpm-devel rpmdevtools expat-devel zlib-devel
reboot

rpm -Uvh http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-stable.noarch.rpm http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-stable.noarch.rpm

mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r)-nouveau.img
dracut /boot/initramfs-$(uname -r).img $(uname -r)

vi /etc/grub.conf
Add to end of Kernel line:
rdblacklist=nouveau nomodeset nouveau.modeset=0

Make sure kernel mod is allowed to load.
setsebool -P allow_execstack on

yum install kmod-nvidia xorg-x11-drv-nvidia-libs.x86_64
reboot

nvidia-settings
reboot

Install Firefox
rpm -Uvh http://rpms.famillecollet.com/remi-release-13.rpm
yum --enablerepo=remi list firefox
yum --enablerepo=remi install firefox


Download Adobe 64-bit flash player from adobe home page.
Untar downloaded file.
Install libflashPlayer.so in ~tmurray/.mozilla/plugins directory.

Install skype
yum -y install libXv.i686 libXScrnSaver.i686 qt.i686 qt-x11.i686 pulseaudio-libs.i686 pulseaudio-libs-glib2.i686 alsa-plugins-pulseaudio.i686

wget http://download.skype.com/linux/skype-2.1.0.81-fc10.i586.rpm

rpm -ivh skype-2.1.0.81-fc10.i586.rpm


Install Virtualbox

http://www.if-not-true-then-false.com/2010/install-virtualbox-with-yum-on-fedora-centos-red-hat-rhel/

cd /etc/yum.repos.d/
wget http://download.virtualbox.org/virtualbox/rpm/fedora/virtualbox.repo
yum install gcc kernel-devel kernel-headers

vi /root/.bashrc
KERN_DIR=/usr/src/kernels/`uname -r`
export KERN_DIR

yum install VirtualBox-3.2

yum install thunderbird
yum install thunderbird-lightning
 yum install mysql-workbench

Download/install latest jre and jdk java rpms

Tuesday, November 23, 2010

Create Local Fedora 13 Repository

The following outlines the necessary steps to create a local Fedora 13 repository.  I used the following guide http://www.howtoforge.com/automatic-and-up-to-date-fedora-9-installations-with-kickstart-and-novi, which generated a Fedora 9 repository.

In order to serve the local yum repository, http needs to be running and installed.

# yum install httpd
# chkconfig --levels 235 httpd on
# /etc/init.d/httpd start


Next we install the tool createrepo:


# yum install createrepo rpm-devel rpmdevtools expat-devel zlib-devel

The default document root for Apache on Fedora is /var/www/html.
Create directories in the apache root to store the fedora base, updates and patched repo's:


# mkdir -p /var/www/html/fedora/base/13/x86_64
# mkdir -p /var/www/html/fedora/updates/13/x86_64
# mkdir -p /var/www/html/fedora/prepatched/13/x86_64

Assuming you have downloaded the fedora13 .iso image, mount it and copy the dvd contents to the Fedora base directory.

# mount -r -t iso9660 -o loop Fedora-13-x86_64-DVD.iso /media/
# cd /media/
# cp -vfr * /var/www/html/fedora/base/13/x86_64

Get the Fedora 13 updates and store in the updates directory under the web server root.

#  rsync -avrt mirrors.servercentral.net::fedora/updates/13/x86_64/ --exclude=debug/ /var/www/html/fedora/updates/13/x86_64/



Download the Novi source code and compile.  http://downloads.exmachinatech.net/novi/2.1.1/novi-2.1.1-1.fc13.src.rpm

Install the source rpm

# rpm -i novi-2.1.1-1.fc13.src.rpm


This will install the source .spec file in the ~/rpmbuild/SPECS directory.

# rpmbuild --bb ~/rpmbuild/SPECS/novi.spec

# rpm -i ~/rpmbuild/RPMS/x86_64/novi-2.1.1-1.fc13.x86_64.rpm


Copy some files from the base directory to the pre-patched directory.

# cd /var/www/html/fedora/base/13/x86_64
# cp GPL ../../13-prepatched/x86_64/
# cp -fr images/ ../../13-prepatched/x86_64/
# cp media.repo ../../13-prepatched/x86_64/
# cp -fr repodata/ ../../13-prepatched/x86_64/
# cp RPM* ../../13-prepatched/x86_64/
# cp TRANS.TBL ../../13-prepatched/x86_64/
# mkdir ../../13-prepatched/x86_64/Packages

Let's apply updates to base into the pre-patched directory.

# novi -a hardlink -t /var/www/html/fedora/prepatched/13/x86_64/Packages /var/www/html/fedora/base/13/x86_64/Packages /var/www/html/fedora/updates/13/x86_64


Create meta data on the pre-patched directory

# cd /var/www/html/fedora/prepatched/13/x86_64/
# createrepo -g repodata/Fedora-13-comps.xml ${PWD}

# crontab -e

23 4 */2 * * rsync -avrt mirrors.servercentral.net::fedora/updates/13/x86_64/ --exclude=debug/ /var/www/html/fedora/updates/13/x86_64 && /usr/bin/novi -a hardlink -t /var/www/html/fedora/prepatched/13/x86_64/Packages /var/www/html/fedora/base/13/x86_64/Packages /var/www/html/fedora/updates/13/x86_64 && cd /var/www/html/fedora/base/13-prepatched/x86_64 && /usr/bin/createrepo -g repodata/Fedora-13-comps.xml ${PWD}

Thursday, November 18, 2010

Create Local YUM Repository

The following outlines steps taken to create a local repository to distribute our own binary RPM's.

I used this http://ramblings.narrabilis.com/wp/creating-a-yum-repository-repo-and-creating-a-yum-group-to-install-kickstart as an example.

# mkdir -p /var/www/html/psydexrepo
# mkdir -p /var/www/html/psydexrepo/os/x86_64


Create groups file (comps.xml)

# vi /var/www/html/psydexrepo/comps.xml

Add the following to the comps.xml file:

<code>
 <!--  <meta> -->
<!-- Meta information will go here eventually -->
<!--  </meta> -->
  <group>
    <id>PsydexSoftware</id>
    <name>pxSoftware</name>
    <default>true</default>
    <description>Default RPMS from Psydex Repo</description>
    <uservisible>true</uservisible>
    <packagelist>
      <packagereq type="default">pxNodeManager-1.0-1</packagereq>
<!--
      <packagereq type="optional">pxNodeManager-1.0-1</packagereq>
-->
    </packagelist>
  </group>
</comps>
</code>

# cd /var/www/html
# createrepo -g comps.xml psydexrepo


Now, if we want to install this group on a machine, we create a .repo file in /etc/yum.repos.d like this:
 

[PsydexRepo]
name=Psydex Repository
baseurl=http://localhost/psydexrepo
gpgcheck=0


# yum groupinstall pxSoftware

Disable SELinux on Fedora 13

To disable SELinux on Fedora 13,

edit /etc/selinux/config.  

Change SELINUX=enforcing to SELINUX=disabled

Building RPM Packages for Java from jar files

I would like to use the rpm packages software in order to distribute and install Java applications on Linux systems.  There are many documents outlining in detail how to generate rpm files.  However, most of the documents I came across, require the source code and make files to generate the binary rpms.  With Java, I am not using the  make and configure utilities to generate the final .jar product. 

The following instructions outline the steps necessary to create a binary RPM file, which can be used to install a Java .jar file on a Linux system.  My build system is using Fedora 13.

First step is to install the RPM Development Tools.  As the root user, issue the command:

# yum install rpmdevtools

Create a user account which will be used to generate the rpm's.
# useradd rpmmanager

Login as the rpmmanager, and issue the command to setup the rpm build tree.
# rpmdev-setuptree

This will create a rpmbuild directory in the rpmmanager's users home directory.  Create a tmp directory in the rpmbuild directory.


# mkdir ~rpmmanager/rpmbuild/tmp

Edit the ~rpmmanager/.rpmmacros file with path information.  My .rpmmacros file contains the following info:

%_topdir      %(echo $HOME)/rpmbuild
%_tmppath      %(echo $HOME)/rpmbuild/tmp




"rpmbuild" needs a ".spec" file to build a ".rpm" file. Create such a spec file in your project directory.

vi ~rpmmanager/rpmbuild/SPECS/pxNodeManager.spec


Example of my spec file.
Summary: Psydex Node Manager
%define version 1.0
License: Psydex
Group: Applications/System
Name: pxNodeManager
Prefix: /usr/local/bin
Provides: pxNodeManager.jar
Release: 1
URL: http://www.psydex.com
Version: %{version}
BuildRoot: %{builddir}/%{name}-root
%description
Psydex Node Manager provides status to the Psydex Service Manager via JMS.

%prep
%build
%install
pwd
rm -rf $RPM_BUILD_ROOT
mkdir -p $RPM_BUILD_ROOT/usr/local/bin/psydexNodeManager
cd $RPM_BUILD_ROOT/usr/local/bin/psydexNodeManager
cp ~rpmmanager/builds/pxService/dist/pxNodeManager.jar .
%clean
%files
%defattr(-,root,root)
/usr/local/bin/psydexNodeManager/pxNodeManager.jar


The above spec file copies the pxNodeManager.jar file from the location I use to build the .jar.  ("cp ~rpmmanager/builds/pxService/dist/pxNodeManager.jar . ").  One can easily add additional files to the binary rpm, by adding them under the %files section of the spec file.


To create the binary rpm, run the rpmbuild command.
rpmbuild -bb ~rpmmanager/rpmbuild/SPECS/pxNodeManager.spec

The rpmbuild command will generate the binary rpm in the rpmbuild/RPMS/platform_name_here directory.  In my case the directory is rpmbuild/RPMS/x86_64

To install the rpm binary simply issue the command:
# rpm -i binary_rpm_filename_here

Wednesday, November 17, 2010

Fedora 13 / VirtualBox Guest Additions Install

After installing Fedora 13, the following steps are necessary in order to get the VirtualBox Guest Additions Installed.

  1. yum install kernel (updates the current kernel).
  2. yum install kernel-devel kernel-headers dkms gcc gcc-c++
  3. reboot
  4. cd /media/VBOXADD*
  5. sh VBoxLinuxAdditions-amd64.run
  6. reboot