LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Debian (https://www.linuxquestions.org/questions/debian-26/)
-   -   How to install cinnamon 2 in debian (https://www.linuxquestions.org/questions/debian-26/how-to-install-cinnamon-2-in-debian-4175495154/)

NickDoesComputers 02-16-2014 04:10 PM

How to install cinnamon 2 in debian
 
I added the linux mint repositories that had cinnamon in it to the sources.list file, but it said the package was broken.

NickDoesComputers 02-16-2014 04:13 PM

I read on the debian forums it wasnt reconmmended to do this, but i'm curious if it will work. i like to have all of the desktop environments. I like being able to change them at my whim.

Randicus Draco Albus 02-16-2014 11:04 PM

There is a reason those people advise against installing packages from the repositories of other operating systems. If you continue reading those threads, you will understand why.

Firerat 02-17-2014 12:58 AM

I compile from git, but must admit I've been using xfce most of the time recently, Cinnamon cam be a little heavy with mem use.


Anyhow, my compile script , bugs and lazy code included

I've added a few comments , but not many

You must remove any mint apt repos from your source.list(s)
the below script will pull in needed dependencies,
It sets up what I call a 'dumb repo'

My intention was to improve on that with one of these
https://wiki.debian.org/HowToSetupADebianRepository
Probably reprepro

If something is broken, script will exit
You fix it ( the script or the source ) anc re-run the script
It will skip past already built packages


Note, this script does not fix branding, the menu button will be mint's, but you can manually set it to deb swirl once 'up and running'

It is 'bleeding edge' cinnamon
If you know git ( or read up on it ) you should be able to set release branches

Code:

#!/bin/bash
BuildDir=$HOME/Src/Cinnamon
 
CleanForBuild () {
for debpkg in cinnamon cinnamon-bluetooth cinnamon-common cinnamon-control-center cinnamon-control-center-data cinnamon-dbg cinnamon-desktop-data cinnamon-screensaver cinnamon-session cinnamon-session-common cinnamon-settings-daemon cinnamon-settings-daemon-dev cinnamon-translations cjs gir1.2-cinnamondesktop-3.0 gir1.2-muffin-3.0 gir1.2-nemo-3.0 libcinnamon-control-center1 libcinnamon-control-center-dev libcinnamon-desktop0 libcinnamon-desktop-dev libcjs0c libcjs-dev libmuffin0 libmuffin-dev libnemo-extension1 libnemo-extension-dev muffin muffin-common muffin-dbg nemo nemo-compare nemo-data nemo-dbg nemo-dropbox nemo-fileroller nemo-media-columns nemo-pastebin nemo-preview nemo-rabbitvcs nemo-seahorse nemo-share python-nemo cinnamon-bluetooth cinnamon-control-center cinnamon-screensaver cinnamon-session cinnamon-settings-daemon libcinnamon-control-center1 libcjs0c libmuffin0 nemo-data;do sudo apt-get remove -y $debpkg;done
}
# ^^ not proud of that... I put no effort into it
# I just stuffed it in one day
#

DEBS=${BuildDir}/DEBS-$(date +%F)
[[ -e "$DEBS" ]] || CleanForBuild
mkdir -p ${DEBS} 2>/dev/null
BuildStatus=${DEBS}/.BuildStatus

GPGKey="your key here" # or just don't bother
# change the -k${GPGKey} below ( see compile() ) to -uc
# -uc will prevent 'error' as dpkg-buildpackage won't attempt to sign change files


CinnamonRepo=git://github.com/linuxmint/

BuildTools(){
sudo /usr/bin/apt-get update
sudo /usr/bin/apt-get install -y build-essential devscripts git dpkg-dev && \
touch .build-essentialDone || exit 1
}

gitclean(){
# had some issues where deb scripts messed with stuff
git checkout -- $(git status | awk '$2 == "modified:"{printf $3" "}')
}
 
GitCO(){
[[ -d $GitRepo ]] || git clone ${CinnamonRepo}${GitRepo}.git \
                  && ( pushd ${GitRepo} && gitclean && git pull origin )
return $?
}
CheckBuildDeps(){
echo "Checking BuildDeps"
BuildDeps="$(dpkg-checkbuilddeps 2>&1 | awk 'BEGIN{RS=")"};{sub(/dpkg.*Unmet build dependencies:/,"",$0);gsub(/ \(>=.*$/,"",$0);print
f $0}')"
[[ "${BuildDeps}" == "" ]] || sudo /usr/bin/apt-get install -y --force-yes ${BuildDeps}
return $?
}
Compile(){
dpkg-buildpackage -tc -b -k${GPGKey} -j$(grep ^processor /proc/cpuinfo | wc -l)
return $?
}
Install(){
debsign ../*.deb
mv ../*.{deb,changes} ${DEBS}/
pushd "${DEBS}"
    dpkg-scanpackages . /dev/null | gzip -9c > Packages.gz
popd
sudo apt-get update -o Dir::Etc::sourcelist="sources.list.d/Cinnamon.list" -o Dir::Etc::sourceparts="-" -o APT::Get::List-Cleanup="0"
return $?
}

#

mkdir -p ${BuildDir}
cd ${BuildDir}
[[ ! -e .build-essentialDone ]] && BuildTools
sudo sh -c "echo deb file:${DEBS}/ ./ > /etc/apt/sources.list.d/Cinnamon.list"

# Note, you may need to add/remove stuff from this list
# or possibly reorder things

for GitRepo in \
              cinnamon-desktop \
              muffin \
              cjs \
              cinnamon-translations \
              cinnamon-session \
              nemo \
              cinnamon-settings-daemon \
              cinnamon-control-center \
              Cinnamon \
              cinnamon-screensaver \
              cinnamon-bluetooth \
              nemo-extensions \
            ;do
    grep -q "^${GitRepo}$" "${BuildStatus}" && continue
    GitCO || exit 1
    case $GitRepo in
      nemo-extensions)
        pushd $GitRepo || exit 1
        for extension in $(find ./ -maxdepth 1 -mindepth 1 -type d ! -name .git );do
            grep -q "^${extension//\.\/}$" "${BuildStatus}" && continue
            #[[ $extension =~ nemo-preview ]] && continue
            pushd ${extension}
              CheckBuildDeps || exit 1
              Compile && Install || ( [[ $extension =~ nemo-preview ]] && continue || exit 1 )
            # nemo-preview kept breaking
            popd
            echo ${extension//\.\/} >> "${BuildStatus}"
        done
      ;;
      cinnamon-translations)
        pushd $GitRepo || exit 1
        CheckBuildDeps || exit 1
        Compile && Install || exit 1
      ;;
      *)
        pushd $GitRepo || exit 1
        CheckBuildDeps || exit 1
        Compile && Install || exit 1
      ;;
    esac
    popd
    echo $GitRepo >> $BuildStatus
done
sudo /usr/bin/apt-get install -y --force-yes cinnamon muffin nemo cinnamon-bluetooth cinnamon-control-center cinnamon-screensaver cinnamon-session cinnamon-settings-daemon libcinnamon-control-center1 libcjs0c libmuffin0 nemo-data
 
exit 0



All times are GMT -5. The time now is 10:26 PM.