HOWTO KDE Desktop for the end-user
From Gentoo Linux Wiki
|
Contents |
[edit] Stable KDE
Before emerging kde, set languages for internationalization, i.e. for English and French Canadian:
| File: /etc/make.conf |
LINGUAS="en fr_CA" # use kdeenablefinal only if you have a lot of memory USE="hal kdeenablefinal" |
| Code: Emerge KDE & auto-mounting components |
emerge kde emerge dbus hal rc-update add dbus default rc-update add hald default echo "exec startkde" > ~/.xinitrc |
Setup the display manager
| File: /etc/conf.d/xdm |
DISPLAYMANAGER="kdm" |
| Code: Setting KDM to run automatically |
rc-update add xdm default |
Further reading is available in the Gentoo Handbook.
[edit] Unstable KDE
If you want the unstable kde, then instead of emerging the kde package, set your package.keywords file accordingly, then emerge kde-meta.
First of all you have to add only one line to /etc/portage/package.keywords:
kde-base/kde-meta
And then execute this script:
| Code: unmask_kde-meta.sh |
#!/bin/bash
retval=0
emerge -vp kde-meta &>/dev/null
retval=$?
while [[$retval == 1]] ; do
package=$(emerge -vp kde-meta |grep "^\-" | cut -f 2 -d " " | head -n 1)
atom="~"
echo "unmasking package $package"
echo "$atom$package" >> /etc/portage/package.keywords
emerge -vp kde-meta &>/dev/null
retval=$?
done
|
or
| Code: Emerging Unstable KDE |
cd /usr/portage # or wherever your PORTAGE_DIR is
for x in kde-*/*
> do
> echo "${x} ~<arch>" >> /etc/portage/package.keywords #Replace <arch> with your architecture.
> done
echo "sys-libs/pam ~<arch>" >> /etc/portage/package.keywords #Replace <arch> with your architecture.
echo "sys-apps/ivman ~<arch>" >> /etc/portage/package.keywords #Replace <arch> with your architecture.
emerge kde-meta
|
VeqIR's note: I have observed that it is best to run the second code block before the first, as the first code block sometimes tries to insert a line consisting of only "~" into package.keywords. If someone could verify this, it'd be appreciated.
Anupamsr note: I used this command to add every thing related to KDE 3 (i.e., all the stuff related to version number 3.x.x) It is to be noted that it is not calculated usig dependencies and so is not totally automatic. I used it to be completely sure.
| Code: Unmasking KDE |
#!/bin/bash
cd /usr/portage/kde-base
ls */*3.*.* | sed 's/.ebuild//g' | sed 's/\// /g' | awk '{print "kde-libs/"$2" ~x86"}' | sed 's/-3.[0-9].[0-9]/ /g' | sed 's/-r[0-9]//g' | sed 's/ / /g' | uniq >> /etc/portage/package.keywords
cd -
|
I just patched the first script a bit and it works for me now. Use it the same way as the first script, put "kde-base/kde-meta" into /etc/portage/package.keywords, and run it.
This version of the script needs app-portage/eix. If anyone minds, just build a replacement for the eix command line in the workaround function. I've been a bit lazy, so it'll need a good bit of cleanup yet.
| Code: unmask_kde-meta.sh |
#!/bin/bash
retval=0
START_PACKAGE="kde-base/kde-meta"
EMERGE_COMMAND="emerge -vp --nospinner --color=n --quiet ${START_PACKAGE}"
COMMENT_TO_ADD="# line added by $0, PID $$"
ACCEPT_FLAG="~x86"
function workaround {
package="~$(ACCEPT_KEYWORDS=${ACCEPT_FLAG} eix --nocolor --pure-packages --format-compact '<category>()/<name>()-<bestshort>()' --compact -e $1 |sed -e 's/(~)//')
}
package="~some-category/some-package-0.0.1"
pname="some-category/some-package"
${EMERGE_COMMAND} &>/dev/null
retval=$?
while [[ $retval == 1 ]] ; do
lastpackage=$package
package=$(${EMERGE_COMMAND} | grep "\-" | cut -f 2 -d '"' | head -n 1)
if [[ "a$package" == "a" ]] ; then
echo "Error in the script? \$package would be empty."
exit -2;
fi
if [[ "$package" == "$lastpackage" ]] ; then
lastpname=$pname
pname=$(echo "$package" |sed -e 's/\(\~\)\(.*\)\(\-[0-9].*\)/\2/')
workaround "$pname"
if [[ "$pname" == "$lastpname" ]] ; then
echo -e "The package cannot be merged, even after adding it to \
your package.keywords file. \n
That probably means you need to check package.mask. \n \
Please investigate $pname"
exit -1;
fi
echo "Ok, that didn't work. Trying to add the latest available unstable version $package to package.keywords in case the depending ebuild uses deprange."
fi
echo "adding package $package to /etc/portage/package.keywords"
echo "$package ${ACCEPT_FLAG} ${COMMENT_TO_ADD}" >> /etc/portage/package.keywords
${EMERGE_COMMAND} &>/dev/null
retval=$?
done
|
[edit] KDE 4.0
KDE 4.0.x is masked for testing. To test it, first unmask all of the KDE 4.0 packages by running the following script as root:
| File: unmask_kde4.0.sh |
#!/bin/bash
UM="/etc/portage/package.unmask"
cd /usr/portage/kde-base
for x in $(ls); do
if [[ -n $(ls $x | grep 4.0 | xargs) ]]; then
echo "kde-base/$x:kde-4" >> $UM
fi
done
cd - > /dev/null
echo "kde-base/qimageblitz" >> $UM
echo "app-text/poppler" >> $UM
echo "app-text/poppler-bindings" >> $UM
|
Enable the new htmlhandbook and semantic-desktop USE flags if you wish. Then emerge KDE:
| Code: Emerging KDE |
emerge kde-meta |
[edit] Uninstalling KDE 4.0
To uninstall KDE 4.0.x, run the following script as root:
| File: unmerge_kde4.0.sh |
#!/bin/bash
cd /usr/portage/kde-base
emerge -Cav $(\
for x in $(ls); do
if [[ -n $(ls $x | grep 4.0 | xargs) ]]; then
echo "kde-base/$x:kde-4"
fi
done | xargs) kde-base/qimageblitz
cd - > /dev/null
|

