|
|
(33 intermediate revisions by 4 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]] | | 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
| |
− | * [[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 ====
| |
− | They conflict with some e-smith/smeserver packages
| |
− | <syntaxhighlight lang="Bash">
| |
− | yum remove selinux-policy-targeted
| |
− | </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 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=3650
| |
− | </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 --enablerepo=* 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 501 packages to install, and 14 to update
| |
− | <pre>
| |
− | 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
| |
− | </pre>
| |
− |
| |
− | 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]]
| |
− |
| |
− |
| |
− | ==== 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:
| |
− | * 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]] |