Difference between revisions of "SME on CentOS 6"

From SME Server
Jump to navigationJump to search
Line 11: Line 11:
 
* VIrtual machine (Vmware, Parallels or Virtualbox)
 
* VIrtual machine (Vmware, Parallels or Virtualbox)
 
* Centos Minimal 64-bit architecture. 32-bit may follow later
 
* Centos Minimal 64-bit architecture. 32-bit may follow later
* <strike>Access to EPEL, RPMForge and ATrpms repositories</strike>
 
 
* [[Setting_up_RPM_Building_for_SME_Server|Setting up a RPM Building environment]]
 
* [[Setting_up_RPM_Building_for_SME_Server|Setting up a RPM Building environment]]
  
Line 87: Line 86:
  
  
==== Remove selinux-policy-targeted and authconfig ====
+
==== Remove selinux-policy-targeted ====
 
They conflict with some e-smith/smeserver packages
 
They conflict with some e-smith/smeserver packages
 
<syntaxhighlight lang="Bash">
 
<syntaxhighlight lang="Bash">
yum remove selinux-policy-targeted authconfig
+
yum remove selinux-policy-targeted
 
</syntaxhighlight>
 
</syntaxhighlight>
  
 +
==reboot==
 +
I think a reboot is in order here, to boot with selinux disabled.  That is what i did anyways....Greg
  
 
== Configure basic requirements ==
 
== Configure basic requirements ==
Line 109: Line 110:
 
mkdir /tmp/repo.bak
 
mkdir /tmp/repo.bak
 
mv /etc/yum.repos.d/*.repo /tmp/repo.bak/
 
mv /etc/yum.repos.d/*.repo /tmp/repo.bak/
wget -O /etc/yum.repos.d/sme9.repo http://bugs.contribs.org/attachment.cgi?id=3623
+
wget -O /etc/yum.repos.d/sme9.repo http://bugs.contribs.org/attachment.cgi?id=3650
 
</syntaxhighlight>
 
</syntaxhighlight>
  
Line 123: Line 124:
 
==== Clean yum cache ====
 
==== Clean yum cache ====
 
<syntaxhighlight lang="Bash">
 
<syntaxhighlight lang="Bash">
yum clean all
+
yum --enablerepo=* clean all
 
</syntaxhighlight>
 
</syntaxhighlight>
  
  
 
==== Install e-smith and smeserver packages ====
 
==== Install e-smith and smeserver packages ====
Now, you should be ready to install all the e-smith and smeserver packages (and their dependencies). This should pull about 400 packages
+
Now, you should be ready to install all the e-smith and smeserver packages (and their dependencies). This should pull about 501 packages to install, and 14 to update
<syntaxhighlight lang="Bash">
+
<pre>
yum install smeserver\* e-smith\* --enablerepo=smeos8,smeupdates8
+
yum --disablerepo=* --enablerepo=smeupdates9,smeupdates-testing9,smeos8,smeupdates8 install e-smith\* smeserver\* aspell aspell-en at audit-libs-python autoconf automake bc bind-libs bind-utils cronie cronie-anacron crontabs cyrus-sasl-md5 dhcp dosfstools ed eject elfutils elfutils-libs fetchmail ftp gettext glib gpm hesiod hmaccalc imake iptraf iptstate isdn4k-utils libXdmcp libgomp libselinux-python libsmbclient libsysfs libxml2-python lm_sensors lockdev lsof lvm2 m2crypto man mcstrans minicom mkbootdisk mlocate mod_ssl mtools mt-st mutt neon net-snmp net-snmp-utils openldap-servers patch pcmciautils postgresql-libs pyxf86config rpm-build rp-pppoe setserial strace sudo sysfsutils syslinux tcpdump telnet time tmpwatch traceroute unzip usbutils usermode vim-common vim-enhanced wget wodim xz zip zlib php-pear-Net-URL perl-Compress-Raw-Bzip2 perl-IO-Compress-Bzip2 rsync
</syntaxhighlight>
+
<pre>
 
 
It should install the following packages and their dependancies. See [[#SME_Server_specific.2Frequired_packages|here]] how to retrieve a list of the required packages from an installed SME8 server.
 
e-smith                      
 
e-smith-LPRng               
 
e-smith-apache               
 
e-smith-backup               
 
e-smith-devtools             
 
e-smith-dynamicdns-dyndns   
 
e-smith-dynamicdns-dyndns.org
 
e-smith-dynamicdns-tzo       
 
e-smith-dynamicdns-yi       
 
e-smith-flexbackup           
 
e-smith-horde               
 
e-smith-hosts               
 
e-smith-imp                 
 
e-smith-ingo                 
 
e-smith-ldap                 
 
e-smith-lib-compspec         
 
e-smith-mysql               
 
e-smith-ntp                 
 
e-smith-oidentd             
 
e-smith-openssh             
 
e-smith-php                  
 
e-smith-pptpd               
 
e-smith-proftpd             
 
e-smith-proxy               
 
e-smith-qmailanalog         
 
e-smith-quota               
 
e-smith-radiusd             
 
e-smith-turba               
 
e-smith-viewlogfiles         
 
smeserver-release
 
 
 
==== Move everything from rc7.d to rc4.d ====
 
All the links in rc4.d should then point to e-smith-service
 
<syntaxhighlight lang="Bash">
 
rm -f /etc/rc4.d/*
 
cp -a /etc/rc7.d/* /etc/rc4.d/
 
</syntaxhighlight>
 
 
 
==== Install a few missing packages ====
 
  
 
See the following bugs:
 
See the following bugs:
Line 180: Line 140:
 
*[[bugzilla:7297|Bug #7297: e-smith-hosts should require dhcp]]
 
*[[bugzilla:7297|Bug #7297: e-smith-hosts should require dhcp]]
  
 +
 +
==== Move everything from rc7.d to rc4.d ====
 +
All the links in rc4.d should then point to e-smith-service
 
<syntaxhighlight lang="Bash">
 
<syntaxhighlight lang="Bash">
yum install mod_ssl freeradius-ldap openldap-servers dhcp
+
rm -f /etc/rc4.d/*
 +
cp -a /etc/rc7.d/* /etc/rc4.d/
 
</syntaxhighlight>
 
</syntaxhighlight>
  

Revision as of 20:25, 8 February 2013

Information.png Tip:
Please only use a virtual machine to test this.Try to follow what others have done and repeat it. Make any notes yourself and post your findings.


Back to SME Server 9.0 Development

SME 9, based on CentOS 6

An overview of related SME9 development pages can be found here.


Prerequisites

User Feedback

Unstructured user feedback can be noted here: SME9DEV user feedback. Issues that require developers attention should be logged in our Bug Tracker. (See below)


Bugs

Bug Tracker SME 9 error list

Considerations

  • Primary and only goal for now is the transition of SME Server based on CentOS 5.8 to SME Server based on CentOS6.3
  • SysVinit is no longer the default with the release of RHEL6, beyond RHEL6 systemd will be used
  • perl has a new location of the filesystem. New: /usr/share/perl5/vendor_perl instead Old: /usr/lib/perl5/site_perl/
  • perl version 5.8.8 is the new default version on RHEL6. This requires a review of all the perl module rpms which are specific for perl 5.8.5

Installing CentOS 6 minimal

First a few notes on CentOS 6 minimal, which is a bare bones install with very little on board. You can download a copy from one of the CentOS mirrors here

  • As per above note, only use Virtual Machine for testing purposes. A good free VM package can be obtained here
  • You might want to note down as much as possible so you yourself and others can reproduce the actions
  • Don't use yum with the '-y' flag (install/upgrade without further user interaction) when using the yum install/upgrade commands. (beware copy/paste yum commands)
  • you might want to note down all packages listed by yum to be installed/upgraded AND their dependencies
  • Make regular snapshots of your Virtual Machine and describe them specifically. At least when you've reached an important milestone for yourself


Installing the ISO

  • Just install a minimal el6 installation (I just installed a few utilities like htop, screen, rsync, vim, openssh-clients mc etc…). You can use either the DVD, the minimal CD install, a net install with PXE, it's up to you
  • wellsi: I have used CentOS-6.3-x86_64-minimal.iso


Enable networking

Each boot you have to start the network etc etc. I decided it was better with the minimal install and touch as little as possible - if I could then get SME packages installed I could then use that to configure networking later.

To start the networking

./etc/sysconfig/network-scripts/ifup-eth eth0

or

dhclient eth0

or if you want to assign a specific IP address (e.g. 192.168.1.2).

ifconfig eth0 192.168.1.2
echo "nameserver 192.168.1.254" >> /etc/resolv.conf
route add default gw 192.168.1.254 eth0

To make your changes permanent you will need to edit the configuration file to make it active on boot. There is only the vi text editor, you can also install nano.

yum install nano
nano /etc/sysconfig/network-scripts/ifcfg-eth0

and set ONBOOT=”YES”

Enable SSH

SSH is present but is disabled at this stage. To enable ssh issue:

service sshd start


Disable SELinux

It will be easier to see what's going on (and turn off selinux at kernel level, just to be sure)

sed -i -e 's/rhgb quiet/selinux=0/g' /boot/grub/grub.conf
sed -i -e 's/SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config


Remove selinux-policy-targeted

They conflict with some e-smith/smeserver packages

yum remove selinux-policy-targeted

reboot

I think a reboot is in order here, to boot with selinux disabled. That is what i did anyways....Greg

Configure basic requirements

Configure SME9 repositories

See the following bugs tracking issues with repositories:

yum install wget
mkdir /tmp/repo.bak
mv /etc/yum.repos.d/*.repo /tmp/repo.bak/
wget -O /etc/yum.repos.d/sme9.repo http://bugs.contribs.org/attachment.cgi?id=3650

Import needed GPG Keys

rpm --import http://sme-mirror.firewall-services.com/releases/8/smeos/x86_64/RPM-GPG-KEY-SMEServer
rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt
rpm --import https://fedoraproject.org/static/217521F6.txt
rpm --import http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-5
rpm --import http://www.salstar.sk/pub/yum/keys/RPM-GPG-KEY-Fedora-Pre-Extras

Clean yum cache

yum --enablerepo=* clean all


Install e-smith and smeserver packages

Now, you should be ready to install all the e-smith and smeserver packages (and their dependencies). This should pull about 501 packages to install, and 14 to update

yum --disablerepo=* --enablerepo=smeupdates9,smeupdates-testing9,smeos8,smeupdates8 install e-smith\* smeserver\* aspell aspell-en at audit-libs-python autoconf automake bc bind-libs bind-utils cronie cronie-anacron crontabs cyrus-sasl-md5 dhcp dosfstools ed eject elfutils elfutils-libs fetchmail ftp gettext glib gpm hesiod hmaccalc imake iptraf iptstate isdn4k-utils libXdmcp libgomp libselinux-python libsmbclient libsysfs libxml2-python lm_sensors lockdev lsof lvm2 m2crypto man mcstrans minicom mkbootdisk mlocate mod_ssl mtools mt-st mutt neon net-snmp net-snmp-utils openldap-servers patch pcmciautils postgresql-libs pyxf86config rpm-build rp-pppoe setserial strace sudo sysfsutils syslinux tcpdump telnet time tmpwatch traceroute unzip usbutils usermode vim-common vim-enhanced wget wodim xz zip zlib php-pear-Net-URL perl-Compress-Raw-Bzip2 perl-IO-Compress-Bzip2 rsync

See the following bugs:
*Bug #7233: e-smith-ldap should require openldap-servers
*Bug #7252: e-smith-radiusd should require freeradius-ldap
*Bug #7234: e-smith-apache should require mod_ssl
*Bug #7297: e-smith-hosts should require dhcp


Move everything from rc7.d to rc4.d

All the links in rc4.d should then point to e-smith-service
rm -f /etc/rc4.d/*
cp -a /etc/rc7.d/* /etc/rc4.d/

Move some perl modules

We need to copy some perl modules to a new directory, because @INC has changed in EL6:
cp -a /usr/lib/perl5/site_perl/esmith/* /usr/share/perl5/vendor_perl/esmith

Create a service entry for rsyslog

We need to create a new service entry in the DB, because the standard syslog package is now rsyslog: * See Bug #7221: Change from syslog to rsyslog and Bug #7322: Change from syslog to rsyslog - Add link This step can be removed when e-smith-base-5.4.0-8 is available.
/sbin/e-smith/db configuration set rsyslog service status enabled
cp -a /etc/rc7.d/S05syslog /etc/rc4.d/S05rsyslog

Run post-upgrade

We can now try to post-upgrade
/sbin/e-smith/signal-event post-upgrade
/sbin/e-smith/signal-event reboot

The system boots but completly broken :-)

Ok, so the system should now boot, but is really not usable, after a quick look, at least the following doesn't work as expected: * The console on the first boot don't really work. It asks for the admin password (and BTW the password appears in cleartext) but it's all * No network interfaces are detected by the console menu (because kudzu is not installed, only available in SME repo, and require an older python which conflicts with the the one * from EL6) * slapd won't start * httpd won't start * squid won't start * manually running expand-template has no effect (and no error message is printed). But signal-event seems to work (files get expanded and services restarted) * as the network interface are not configured, all the services which requires the internel IP (or the external one) in their config (at least sshd squid and dnscache) won't start * qpsmtpd won't start (can't locate Qpsmtpd/TcpServer.pm in @INC) * There's probably a lot more which is not working * wellsi: Is there an easy way to get SSH access to it at this point?

SME Server specific/required packages

To get a list of all specific SME Server packages you can run:
rpm -qa | grep 'smeserver\|e-smith'| sed -e 's/-[0-9].*//' | sort > smeserver-packages.txt

SME Server specific/required perl packages

To get a list of the file names containing the string 'perl' on a running SME8 server.
rpm -qa | grep perl | sed -e 's/-[0-9].*//' | sort
or, as per suggestion on the lists (All files starting with the string 'perl')
rpm -qa --qf '%{NAME}\n' name=perl\* | sort
To export the list to a plain text file you could do:
rpm -qa | grep perl | sed -e 's/-[0-9].*//' | sort > perl-list.txt
perl-Digest-SHA Y perl Y perl-Archive-Tar Y perl-Authen-PAM ****** perl-Authen-SASL Y perl-BSD-Resource ****** perl-CGI-FormMagick ****** perl-CGI-Persistent ****** perl-Class-ParamParser ****** perl-Clone Y perl-Compress-Raw-Bzip2 Y perl-Compress-Raw-Zlib Y perl-Compress-Zlib Y perl-Convert-ASN1 Y perl-Convert-BinHex Y perl-Convert-TNEF ****** perl-Crypt-Cracklib ****** perl-Crypt-OpenSSL-Bignum Y perl-Crypt-OpenSSL-Random Y perl-Crypt-OpenSSL-RSA Y perl-DateManip Y perl-DBD-MySQL Y perl-DBI Y perl-Digest-HMAC Y perl-Digest-SHA1 Y perl-Email-Date-Format Y perl-Encode-Detect Y perl-Error Y perl-File-MMagic ****** perl-Geography-Countries ****** perl-HTML-Parser Y perl-HTML-Tabulate ****** perl-HTML-Tagset Y perl-I18N-AcceptLanguage ****** perl-IO-Compress-Base Y perl-IO-Compress-Bzip2 Y perl-IO-Compress-Zlib Y perl-IO-Socket-INET6 Y perl-IO-Socket-SSL Y perl-IO-stringy Y perl-IO-Zlib Y perl-IP-Country ****** perl-LDAP Y perl-libwww-perl Y perl-Locale-gettext ****** perl-Mail-DKIM Y perl-Mail-RFC822-Address ****** perl-Mail-SPF ****** perl-MailTools Y perl-MIME-Lite Y perl-MIME-tools Y perl-Net-DNS Y perl-Net-Ident ****** perl-Net-IP Y perl-Net-IPv4Addr ****** perl-Net-SMTP-SSL Y perl-Net-SSLeay Y perl-NetAddr-IP Y perl-Object-Persistence ****** perl-Package-Constants Y perl-Quota ****** perl-Razor-Agent ****** perl-RPM2 ****** perl-Socket6 Y perl-suidperl Y perl-Test-Inline ****** perl-Text-Iconv Y perl-Text-Template ****** perl-Time-TAI64 ****** perl-TimeDate Y perl-Unix-ConfigFile ****** perl-URI Y perl-version Y perl-WWW-Automate ****** perl-XML-NamespaceSupport Y perl-XML-Parser Y perl-XML-SAX Y I am now going to try and lob in the existing/missing el5 versions to see what happens. My guess is we will need to rebuild the required modules.

FormMagick

Next will be an attack on FormMagick - there is no package in the default install so need to figure that out. In may indeed be horrible, but we can live with it for now. Hopefully with perl and FormMagick installed, most of the SME stuff *should* basically install.

Discussion, help and share

* Please consult/subscribe to the devs list for more information. devinfo mailinglist and in particular all threads starting with " SME on CentOS 6" * There is a IRC channel where people who are interested in this effort 'hang out'. You're most welcome to drop by and/or join. It's free! ;-) ** You do not have to install anything to pay the channel a visit. All you need is a nice nickname and right click here to open the channel in a new browser window or tab.

Resources and references

Kickstart file

* A starting point can be found on the SME9 Kickstart page.

Setting up a RPM Building environment under CentOS

* Simplest way to develop patches to submit * Building using Mock * Simple Package Modification * On the CentOS wiki * From the Fedora project