Changes

From SME Server
Jump to navigationJump to search
13,515 bytes removed ,  07:06, 12 April 2014
no edit summary
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]]
 
Back to [[SME_Server_9.0_Development|SME Server 9.0 Development]]
   −
__TOC__
  −
== SME 9, based on CentOS 6 ==
  −
An overview of related SME9 development pages can be found [[:Category:SME9-Development|here]].
  −
  −
  −
=== Prerequisites ===
  −
* VIrtual machine (Vmware, Parallels or Virtualbox)
  −
* 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]]
  −
  −
=== 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]]
  −
* [[bugzilla:7305|Bug #7305: smeserver-yum doesn't provide the /etc/yum.smerepos.d dir]]
  −
  −
<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>
  −
  −
==== Install a few missing packages ====
  −
  −
See the following bugs:
  −
*[[bugzilla:7233|Bug #7233: e-smith-ldap should require openldap-servers]]
  −
*[[bugzilla:7252|Bug #7252: e-smith-radiusd should require freeradius-ldap]]
  −
*[[bugzilla:7234|Bug #7234: e-smith-apache should require mod_ssl]]
  −
*[[bugzilla:7297|Bug #7297: e-smith-hosts should require dhcp]]
  −
  −
<syntaxhighlight lang="Bash">
  −
yum install mod_ssl freeradius-ldap openldap-servers dhcp
  −
</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:
  −
* See [[bugzilla:7221|Bug #7221: Change from syslog to rsyslog]] and [[bugzilla:7322|Bug #7322: Change from syslog to rsyslog - Add link]] This step can be removed when e-smith-base-5.4.0-8 is available.
  −
<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 <strike>(and BTW the password appears in cleartext)</strike> 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
  −
  −
  −
* 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:
  −
<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]
      +
{{note box| This page is now obsolete, kept for reference only. see [[SME Server:9.0|SME Server 9 Release Notes]]}}
    +
----
    +
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]]

Navigation menu