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 folowing 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]] |