LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   VectorLinux (https://www.linuxquestions.org/questions/vectorlinux-36/)
-   -   Google Chrome on Slackware based Vector Linux (https://www.linuxquestions.org/questions/vectorlinux-36/google-chrome-on-slackware-based-vector-linux-755118/)

stretchedthin 09-14-2009 12:01 PM

Google Chrome on Slackware based Vector Linux
 
I thought this might be of interest to a wider audience than just VectorLinux so what better place to get the word out there than linuxquestions.org

Google Chrome is a hot topic right now, but for those of us who use Slackware based systems, Google is not providing any easy solutions.

Then brokndodge a member of the VectorLinux community made a script that made installing Google Chrome easy.

Here is a screencast of the script in action.
Google Chome install script on www.opensourcebistro.com

Here is the script.
Code:

#! /bin/bash
# Title: install-chrome
# Author: BroknDodge
# License: BSD
# Version: 0.0.4
#
# Special thanks to the following Vectorians for their help and suggestions:
# Daniel stretchedthin uelsk8ts
# hata_ph rbistolfi MOE-lnx
#
# Very Special thanks to the folks at Chromium.org and Google
# without whom there wouldn't be anything to install
#

#------------------------------------------#
# Setting up the Environment

enablePlugins="$1"
tmp="/tmp"

chromeURL="http://dl.google.com/linux/direct"
chromePackage="google-chrome-unstable_current_i386.deb"

nssURL="http://connie.slackware.com/~alien/slackbuilds/mozilla-nss/pkg/12.2"
nssPackage="mozilla-nss-3.12.3-i486-1alien.tgz"

#------------------------------------------#
# Making sure the system is sane

if [ $UID != 0 ]; then
echo "You must run this script as root."
exit 1
fi

if [ -d "$tmp/install-chrome" ]; then # check for and create temp dir
# Will enter here if dir doesn't exist
rm -R $tmp/install-chrome # hope you didn't have anything
mkdir $tmp/install-chrome # stored there
else
mkdir $tmp/install-chrome
fi

#------------------------------------------#

function dotests {

echo Running tests...
#------------------------------------------#
# check for lzma

haveLZMA=`which lzma` # check for and getting lzma
if [ "$haveLZMA" == "" ]; then
slapt-get --install lzma
fi

#------------------------------------------#

#------------------------------------------#
# check for nss = 3.12.3

nssInstalled=`slapt-get --search nss-3.12.3` # I really need to check the version
nssInstalled=${nssInstalled#*=} # as well, but this build seems to
nssInstalled=${nssInstalled%]*} # work best with 3.12.3

if [ "$nssInstalled" != "yes" ]; then
installnss
fi
simlinks
}
#------------------------------------------#


function simlinks {
cd /usr/lib
if [ ! -f "libnspr4.so.0d" ]; then
ln -s libnspr4.so libnspr4.so.0d
fi

if [ ! -f "libnss3.so.1d" ]; then
ln -s libnss3.so libnss3.so.1d
fi

if [ ! -f "libnssutil3.so.1d" ]; then
ln -s libnssutil3.so libnssutil3.so.1d
fi

if [ ! -f "libplc4.so.0d" ]; then
ln -s libplc4.so libplc4.so.0d
fi

if [ ! -f "libplds4.so.0d" ]; then
ln -s libplds4.so libplds4.so.0d
fi

if [ ! -f "libsmime3.so.1d" ]; then
ln -s libsmime3.so libsmime3.so.1d
fi

if [ ! -f "libssl3.so.1d" ]; then
ln -s libssl3.so libssl3.so.1d
fi

installchrome
}

function installnss {

cd $tmp/install-chrome
wget $nssURL/$nssPackage
if [ ! -f "$nssPackage" ]; then
echo "For some reason wget didnt pull nss from Connies"
echo "slackware site"
exit 1
fi
installpkg $nssPackage

rm $nssPackage
simlinks
}

function installchrome {

cd $tmp/install-chrome
wget $chromeURL/$chromePackage

if [ ! -f "$chromePackage" ]; then # quit running if wget failed
echo "Something went wrong while retrieving" # and kick out a sane error msg
echo "Google Chrome"
exit 1
fi

echo "Unpacking the deb file"
ar -x $tmp/install-chrome/$chromePackage

if [ ! -f "data.tar.lzma" ]; then # quit running if ar failed
echo "Something went wrong while unpacking" # and kick out a sane error msg
echo "the .deb file"
exit 1
fi

echo "Extracting Google Chrome"
lzma -d data.tar.lzma
if [ ! -f "data.tar" ]; then # quit running if lzma failed
echo "Something went wrong while extracting" # and kick out a sane error msg
echo "Google Chrome"
exit 1
fi

cd /
echo "Installing Google Chrome"

tar xf $tmp/install-chrome/data.tar
if [ ! -f "/opt/google/chrome/google-chrome" ]; then # let me know if chrome wasn't
echo "Installation failed while" # installed correctly
echo "moving files"
exit 1
fi

if [ "$enablePlugins" = "--enable-plugins" ]; then
IFS='
'
file=( $( < /opt/google/chrome/google-chrome.desktop ) )
file[5]="Exec=/opt/google/chrome/google-chrome --enable-plugins %U"
echo "${file[*]}" > /usr/share/applications/google-chrome.desktop
echo "Desktop Menu created with Plugin support"
echo "Installation complete"
quit
else
cp /opt/google/chrome/google-chrome.desktop /usr/share/applications/google-chrome.desktop
echo "Desktop Menu created without Plugin support"
echo "Installation complete"
echo
echo "to enable flash type google-chrome --enable-plugins"
quit
fi

}

function quit {
exit 0
}

function main {
echo
echo "WARNING WARNING WARNING WARNING WARNING"
echo "This script may severely damage your system"
echo "Dont say I didnt WARN you"
echo
echo "Are you sure you want me to Monkey with your System? [yes/no]"
echo "[for your safety you must type yes to proceed]"
echo

read YN
if [ "$YN" = "yes" ]; then
if [ -d "/opt/google/chrome" ]; then
echo "Looks like Google Chrome is already installed"
echo "Do you want to remove it and reinstall? [yes/no]"
read yn
if [ "$yn" = "yes" ]; then
rm -R /opt/google/chrome
rm /usr/share/applications/google-chrome.desktop
dotests
else
quit
fi
else
dotests
fi
elif [ "$YN" = "no" ]; then
quit
else
main
fi
quit
}

main
exit

I'd be interested in hearing if brokndodge's script works for other Slackware user's

Once you have the first script ran and Google Chrome installed then this script can keep you updated with the latest version.

Code:

#!/bin/bash
# Title: update-chrome
# Author: BroknDodge
# License: BSD
# Version: 0.0.1

# http://dl.google.com/linux/deb/dists/stable/main/binary-i386/Packages.gz
# http://dl.google.com/linux/deb/dists/pool/main/g/google-chrome-unstable/google-chrome-unstable_3.0.196.0-r22005_i386.deb

#----------------------------------------#
# Settings

url="http://dl.google.com/linux/deb/"
tmp="/tmp"

#----------------------------------------#

#----------------------------------------#
# Testing the Environment

if [ $UID != 0 ];then # test for root
echo "You must run this script as root."
exit 0
fi

if [ ! -d "$tmp/update-chrome" ]; then
# Will enter here if dir doesn't exist
mkdir $tmp/update-chrome
fi

cd $tmp/update-chrome

if [ -f "Packages" ]; then
#checking to see if Packages exists
mv Packages Packages.installed
fi

#----------------------------------------#

function check-update {
wget http://dl.google.com/linux/deb/dists/stable/main/binary-i386/Packages.gz
gunzip Packages.gz

if [ ! -f "Packages.installed" ]; then
update
fi

version=`grep 'Version:' Packages`
version=${version#*:}
read -rd '' version <<< "$version"

VersionInstalled=`grep 'Version:' Packages.installed`
VersionInstalled=${VersionInstalled#*:}
read -rd '' VersionInstalled <<< "$VersionInstalled"

if [ "$version" == "$VersionInstalled" ]; then
echo Google Chrome is Up to Date
rm Packages
quit
else
echo $VersionInstalled is installed, but $version is available
echo Updating
update
fi

}

function update {

filename=`grep 'Filename:' Packages` # assign grep output to a variable
filename=${filename#*:}
read -rd '' filename <<< "$filename" # remove white space from a variable

mkdir tmp
cd tmp
wget $url$filename

rm -R /opt/google/chrome # get rid of the previous install
# don't worry settings are stored in $HOME dir
cd $tmp/update-chrome/tmp

echo Unpacking the deb file...
ar -x ${filename##*/}
echo Extracting Google Chrome...
lzma -d data.tar.lzma
cd /
echo Updating Google Chrome...

tar xf $tmp/update-chrome/tmp/data.tar
cd $tmp/update-chrome
mv Packages Packages.installed
VersionInstalled=`grep 'Version:' Packages.installed`
filename=${VersionInstalled#*:}
read -rd '' VersionInstalled <<< "$VersionInstalled"
echo Google Chrome updated to version "$VersionInstalled"
rm -R tmp

quit
}

function quit {
exit 0
}

function main {
check-update
}

main
exit

Brokndodge my hat is off to you.
You can see the original thread at VectorLinux Forum. Google Chrome Linux

pwc101 09-14-2009 12:08 PM

I wrote a SlackBuild script to do something similar some time ago. It's been submitted for approval to SlackBuilds.org, but I think they're pretty busy, so I haven't heard anything yet. brokndodge came along and made a few suggestions to that thread.

http://www.linuxquestions.org/questi...kbuild-744764/

neymac 10-01-2009 05:01 PM

I have Google-Chrome installed (google-chrome - 4.0.202.2) in Slackware-12.2.
Download tgz package from http://www.slacky.eu/aadm/pkgs/index.php?ver=6&pkg=2674
The dependencies I got from there as well.

Dependencies:
amrnb, amrwb, dirac, faac, ffmpeg, gconf, lame, libgsm, orbit2, schroedinger, speex, x264, xvidcore

It works very well.


All times are GMT -5. The time now is 01:52 AM.