Difference between revisions of "SME on CentOS 6"

From SME Server
Jump to navigationJump to search
 
(47 intermediate revisions by 5 users not shown)
Line 1: Line 1:
{{Tip box|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 Server 9.0 Development]]
== SME 9, based on CentOS 6 ==
 
An overview of related SME9 development pages can be found [[:Category:SME9-Development|here]].
 
  
  
=== Prerequisites ===
+
{{note box| This page is now obsolete, kept for reference only. see [[SME Server:9.0|SME Server 9 Release Notes]]}}
* VIrtual machine (Vmware, Parallels or Virtualbox)
 
* Centos Minimal 64-bit architecture. 32-bit may follow later
 
* Access to EPEL, RPMForge and ATrpms repositories
 
* Setting up a RPM Building environment
 
 
 
 
 
=== Current status & tasks ===
 
* Last update February 4, 2013
 
Please add your name(s) next to the task you are working on.
 
 
 
[[bugzilla:7240|Bug 7240 - SME 9 yum repos ]] & [[bugzilla:7273|Bug 7273]] How to remove the repo hacks <--- help needed to replicate findings and update wiki
 
 
 
<strike>Identify all SME Server specific packages (John C.) See notes below.</strike>
 
 
 
<strike>Setting up a RPM building environment (Ian W.)</strike>
 
 
<strike>booting CentOS 6 with the SME packages installed. (Daniel)</strike>
 
 
 
* Update fields in Bugzilla, currently all bugs are clean-up
 
* Update [[Simple_Package_Modification|Simple package Modifications]] to show how to do this for SME 9 which requires COS6 as a base.
 
* Identify which packages are pulled from ATRPMS/EPEL/RPMFORGE below, we need to move them into the base and stop pulling from those repos. [[bugzilla:7273|Bug 7273]] Greg Swallow & Shad
 
* Create a SME 9 version of each needed package. See [[SME9BuildQueue|Packages to build for SME9]] to help. Shad, Ian, John, ???
 
* Update SME Server documentation 'Administration Manual' (Stephane, Terry)
 
* Getting organised for [[The_future_of_SME_Server|The Future of SME Server]] (John)
 
* Create a guide for volunteers to submit patches and fix bugs
 
* Create a list of worthwhile, but easy, bugs for new volunteers to practise on
 
* Verify fixed bugs
 
* Create list of bugs for development review, and a way to manage them.
 
 
 
=== User Feedback ===
 
Unstructured user feedback can be noted here: [[SME9DEV_user_feedback|SME9DEV user feedback]]. Issues that require developers attention should be logged in our Bug Tracker. (See below)
 
 
 
 
 
=== Bugs ===
 
[http://bugs.contribs.org/bugs/buglist.cgi?product=SME%20Server%209.X&component=Cleanup&resolution=--- Bug Tracker]
 
[http://wiki.contribs.org/SME9BuildQueue#SME_9_Error_list_and_affected_packages 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 [http://www.centos.org/modules/tinycontent/index.php?id=30 here]
 
 
 
* As per above note, only use Virtual Machine for testing purposes. A good free VM package can be obtained [https://www.virtualbox.org/wiki/Downloads 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
 
<syntaxhighlight lang="Bash">
 
./etc/sysconfig/network-scripts/ifup-eth eth0
 
</syntaxhighlight>
 
 
 
or
 
<syntaxhighlight lang="Bash">
 
dhclient eth0
 
</syntaxhighlight>
 
 
 
<div class="mw-collapsible mw-collapsed" data-collapsetext="Collapse" data-expandtext="More on networking">
 
or if you want to assign a specific IP address (e.g. 192.168.1.2).
 
<syntaxhighlight lang="Bash">
 
ifconfig eth0 192.168.1.2
 
echo "nameserver 192.168.1.254" >> /etc/resolv.conf
 
route add default gw 192.168.1.254 eth0
 
</syntaxhighlight>
 
 
 
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.
 
<syntaxhighlight lang="Bash">
 
yum install nano
 
nano /etc/sysconfig/network-scripts/ifcfg-eth0
 
</syntaxhighlight>
 
and set ONBOOT=”YES”
 
</div>
 
 
 
==== Enable SSH ====
 
SSH is present but is disabled at this stage. To enable ssh issue:
 
<syntaxhighlight lang="Bash">
 
service sshd start
 
</syntaxhighlight>
 
 
 
 
 
==== Disable SELinux ====
 
It will be easier to see what's going on (and turn off selinux at kernel level, just to be sure)
 
<syntaxhighlight lang="Bash">
 
sed -i -e 's/rhgb quiet/selinux=0/g' /boot/grub/grub.conf
 
sed -i -e 's/SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config
 
</syntaxhighlight>
 
 
 
 
 
==== Remove selinux-policy-targeted and authconfig ====
 
They conflict with some e-smith/smeserver packages
 
<syntaxhighlight lang="Bash">
 
yum remove selinux-policy-targeted authconfig
 
</syntaxhighlight>
 
 
 
 
 
== Configure basic requirements ==
 
==== Configure SME9 repositories ====
 
 
 
See the following bugs tracking issues with repositories:
 
* [[bugzilla:7294|Bug #7294: rpms that still need to be rebuilt or sourced for the SME9 repositories]]
 
* [[bugzilla:7298|Bug #7298: Import perl-Unix-ConfigFile from rpmforge]]
 
* [[bugzilla:7292|Bug #7292: more rpms in the SME8 repositories that have a lower version in our SME9 repositories]]
 
 
 
<syntaxhighlight lang="Bash">
 
yum install wget
 
</syntaxhighlight>
 
<syntaxhighlight lang="Bash">
 
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=3623
 
</syntaxhighlight>
 
 
 
==== Import needed GPG Keys ====
 
<syntaxhighlight lang="Bash">
 
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
 
</syntaxhighlight>
 
 
 
==== Clean yum cache ====
 
<syntaxhighlight lang="Bash">
 
yum clean all
 
</syntaxhighlight>
 
 
 
 
 
==== 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
 
<syntaxhighlight lang="Bash">
 
yum install smeserver\* e-smith\* --enablerepo=smeos8,smeupdates8
 
</syntaxhighlight>
 
 
 
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>
 
 
 
==== Move some perl modules ====
 
We need to copy some perl modules to a new directory, because @INC has changed in EL6:
 
<syntaxhighlight lang="Bash">
 
cp -a /usr/lib/perl5/site_perl/esmith/* /usr/share/perl5/vendor_perl/esmith
 
</syntaxhighlight>
 
 
 
==== 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:
 
<syntaxhighlight lang="Bash">
 
/sbin/e-smith/db configuration set rsyslog service status enabled
 
cp -a /etc/rc7.d/S05syslog /etc/rc4.d/S05rsyslog
 
</syntaxhighlight>
 
 
 
==== Run post-upgrade ====
 
We can now try to post-upgrade
 
<syntaxhighlight lang="Bash">
 
/sbin/e-smith/signal-event post-upgrade
 
/sbin/e-smith/signal-event reboot
 
</syntaxhighlight>
 
 
 
 
 
==== 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
 
* <strike>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)</strike>
 
* 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
 
* <strike>qpsmtpd won't start (can't locate Qpsmtpd/TcpServer.pm in @INC)</strike>
 
* There's probably a lot more which is not working
 
 
 
== SME Server specific/required packages ==
 
To get a list of all specific SME Server packages you can run:
 
<syntaxhighlight lang="Bash">
 
rpm -qa | grep 'smeserver\|e-smith'| sed -e 's/-[0-9].*//' | sort > smeserver-packages.txt
 
</syntaxhighlight>
 
 
 
 
 
== SME Server specific/required perl packages ==
 
To get a list of the file names ''containing'' the string 'perl' on a running SME8 server.
 
<syntaxhighlight lang="Bash">
 
rpm -qa | grep perl | sed -e 's/-[0-9].*//' | sort
 
</syntaxhighlight>
 
 
 
or, as per suggestion on the lists (All files ''starting'' with the string 'perl')
 
<syntaxhighlight lang="Bash">
 
rpm -qa --qf '%{NAME}\n' name=perl\* | sort
 
</syntaxhighlight>
 
 
 
To export the list to a plain text file you could do:
 
<syntaxhighlight lang="Bash">
 
rpm -qa | grep perl | sed -e 's/-[0-9].*//' | sort > perl-list.txt
 
</syntaxhighlight>
 
 
 
 
 
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. [http://lists.contribs.org/mailman/listinfo/devinfo 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 [http://webchat.freenode.net?channels=SME_server&uio=Mj10cnVlJjk9dHJ1ZSYxMT03Mg13 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| SME9 Kickstart]] page.
 
 
 
 
 
==== Setting up a RPM Building environment under CentOS ====
 
* [[Simple_Package_Modification|Simplest way to develop patches to submit]]
 
* [[Setting_up_RPM_Building_for_SME_Server|Building using Mock]]
 
* [[Package_Modification|Simple Package Modification]]
 
* [http://wiki.centos.org/HowTos/SetupRpmBuildEnvironment On the CentOS wiki]
 
* [http://docs.fedoraproject.org/en-US/Fedora_Draft_Documentation/0.1/html/RPM_Guide/index.html From the Fedora project]
 
 
 
  
 +
----
  
 +
The [http://wiki.contribs.org/index.php?title=SME_on_CentOS_6&oldid=18561 previous] instructions on how to install SME packages on CentOS 6 minimal are now out of date, but are still available in the history [http://wiki.contribs.org/index.php?title=SME_on_CentOS_6&action=history archive].  Please see [[SME9Alpha | SME9Alpha]] for the latest development steps.
  
 +
The [http://wiki.contribs.org/index.php?title=SME_on_CentOS_6&oldid=18561 previous] version can be usefull as a starting point for:
 +
* Creating an OpenVZ template for SME
 +
* Building SME on other future CentOS versions
 +
* Building SME on CentOS like distros
  
 
<noinclude>[[Category:Howto]][[Category:SME9-Development]]
 
<noinclude>[[Category:Howto]][[Category:SME9-Development]]

Latest revision as of 06:06, 12 April 2014

Back to SME Server 9.0 Development


Important.png Note:
This page is now obsolete, kept for reference only. see SME Server 9 Release Notes



The previous instructions on how to install SME packages on CentOS 6 minimal are now out of date, but are still available in the history archive. Please see SME9Alpha for the latest development steps.

The previous version can be usefull as a starting point for:

  • Creating an OpenVZ template for SME
  • Building SME on other future CentOS versions
  • Building SME on CentOS like distros