Xubuntu on an HP z420

This is my primary work computer. I recently decided to switch from Fedora to Xubuntu. I still like Fedora, but we are using more Ubuntu at work and I need to get myself more familiar with that way of doing things.

I am copying a lot of the configuration that I did with my Sager NP9758 laptop configuration.

After updating an rebooting, I enabled the Nvidia binary drivers and Intel binary blob.



Next step let's get google chrome on here as well as firefox
http://askubuntu.com/questions/510056/how-to-install-google-chrome

wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add -
sudo sh -c 'echo "deb https://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list'
sudo apt-get update sudo apt-get install google-chrome-beta


Apparently installing beta Google Chrome results in a second apt source being created. This causes an error when running `sudo apt-get update`. To fix `sudo vi /etc/apt/sources.list.d/google-chrome-beta.list` and comment the deb repository.





sudo apt-get update

sudo apt-get install xscreensaver xscreensaver-data-extra vim xscreensaver-gl nedit xbacklight fonts-droid fonts-inconsolata fonts-ubuntu-font-family-console fonts-ubuntu-title fonts-wine-development ttf-ubuntu-font-family ttf-xfree86-nonfree xfonts-base curl rxvt-unicode-256color rxvt screen ctags xdaliclock fortune xfonts-100dpi xscreensaver-data openconnect network-manager-openconnect{,-gnome} openjdk-8-jdk libbonobo2-bin libgnomevfs2-bin libgnomevfs2-extra gnome-mime-data libice-doc libsm-doc libxcb-doc libxt-doc openjdk-8-demo ruby awscli xfce4-artwork xfce4-battery-plugin xfce4-cpufreq-plugin xfce4-datetime-plugin xfce4-diskperf-plugin xfce4-goodies xfce4-mixer xfce4-sensors-plugin seahorse rdesktop xfsprogs btrfs-tools openssh-server dump ttf-bitstream-vera ri ruby-dev bundler xsensors attr quota cifs-utils xfonts-terminus xfonts-terminus-oblique ntp devilspie2  dos2unix terminator

sudo fc-cache -f -v



I prefer to use a Logitech Trackball for my most of my pointing needs. (Would someone please tell Logitech to start making wired versions of these again so I can stock up?) 
With a 4k monitor, I like to set the Trackball to accelerate a lot but only if I move it a good deal. These settings seem to allow me to do fine movements in a small area but zip around the screen when I need to.




Now being an old TWM fan, I prefer focus follows mouse and click to raise. XFCE has a few menus for tweaking the window manager.





Then there is the window manger tweak tool:




Ok, now my work VPN solution is Cisco based. Luckily the Openconnect clients work just fine.


sudo apt-get install openconnect network-manager-openconnect{,-gnome}


We use perforce at work so I need to install the p4 and p4v utilities. Because this get updated at a regular pace but don't have automatic updating, I have historically dumped these into version specific directories in /usr/local and then used alternatives to provide the likes to the latest. Googling around shows that under Xubuntu, that will be update-alternatives.

Download the p4v tarball and p4 binary from perforce.

    cd /usr/local
    (umask 022; sudo tar zxvf /tmp/p4v.tgz)
    export P4VER=p4v-2017.1.1491634
    export ALT_VER=20170101

    sudo mv /tmp/p4 /usr/local/${P4VER}/bin
    sudo chmod 0755 /usr/local/${P4VER}/bin/p4
    sudo chown -R bin:bin ${P4VER}
    sudo mkdir -m 0755 -p /usr/share/icons/perforce
    sudo update-alternatives --install /usr/local/bin/p4 p4 /usr/local/${P4VER}/bin/p4 ${ALT_VER}
    sudo update-alternatives --install /usr/local/bin/p4v p4v /usr/local/${P4VER}/bin/p4v ${ALT_VER} \
      --slave /usr/share/icons/perforce/P4-Admin_16x16.png P4-Admin_16x16.png /usr/local/${P4VER}/lib/p4v/P4VResources/icons/P4-Admin_16x16.png \
      --slave /usr/share/icons/perforce/P4-Admin_24x24.png P4-Admin_24x24.png /usr/local/${P4VER}/lib/p4v/P4VResources/icons/P4-Admin_24x24.png \
      --slave /usr/share/icons/perforce/P4-Admin_32x32.png P4-Admin_32x32.png /usr/local/${P4VER}/lib/p4v/P4VResources/icons/P4-Admin_32x32.png \
      --slave /usr/share/icons/perforce/P4-Admin_48x48.png P4-Admin_48x48.png /usr/local/${P4VER}/lib/p4v/P4VResources/icons/P4-Admin_48x48.png \
      --slave /usr/share/icons/perforce/P4-Admin_96x96.png P4-Admin_96x96.png /usr/local/${P4VER}/lib/p4v/P4VResources/icons/P4-Admin_96x96.png \
      --slave /usr/share/icons/perforce/P4-Merge_16x16.png P4-Merge_16x16.png /usr/local/${P4VER}/lib/p4v/P4VResources/icons/P4-Merge_16x16.png \
      --slave /usr/share/icons/perforce/P4-Merge_24x24.png P4-Merge_24x24.png /usr/local/${P4VER}/lib/p4v/P4VResources/icons/P4-Merge_24x24.png \
      --slave /usr/share/icons/perforce/P4-Merge_32x32.png P4-Merge_32x32.png /usr/local/${P4VER}/lib/p4v/P4VResources/icons/P4-Merge_32x32.png \
      --slave /usr/share/icons/perforce/P4-Merge_48x48.png P4-Merge_48x48.png /usr/local/${P4VER}/lib/p4v/P4VResources/icons/P4-Merge_48x48.png \
      --slave /usr/share/icons/perforce/P4-Merge_96x96.png P4-Merge_96x96.png /usr/local/${P4VER}/lib/p4v/P4VResources/icons/P4-Merge_96x96.png \
      --slave /usr/share/icons/perforce/P4-V_16x16.png P4-V_16x16.png /usr/local/${P4VER}/lib/p4v/P4VResources/icons/P4-V_16x16.png \
      --slave /usr/share/icons/perforce/P4-V_24x24.png P4-V_24x24.png /usr/local/${P4VER}/lib/p4v/P4VResources/icons/P4-V_24x24.png \
      --slave /usr/share/icons/perforce/P4-V_32x32.png P4-V_32x32.png /usr/local/${P4VER}/lib/p4v/P4VResources/icons/P4-V_32x32.png \
      --slave /usr/share/icons/perforce/P4-V_48x48.png P4-V_48x48.png /usr/local/${P4VER}/lib/p4v/P4VResources/icons/P4-V_48x48.png \
      --slave /usr/share/icons/perforce/P4-V_96x96.png P4-V_96x96.png /usr/local/${P4VER}/lib/p4v/P4VResources/icons/P4-V_96x96.png




Flash is way too insecure
sudo apt-get remove flashplugin-installer

Install rvm so I can have easy ruby management
/usr/bin/curl -sL https://get.rvm.io | bash
time rvm install ruby
gem install bundler
gem instal capistrano -v 2.15.7
gem install aws-sdk-v1
gem install aws-sdk:1.66.0
gem install pry-nav
gem install aws-sdk

sudo ln -s /usr/bin/env /bin/env   # fedora compatibility


Jetbrains Rubymine time...  Download the latest version you are licensed for.  For me that is 7.1.
Unpack in /usr/local and then set up alternatives.
cd /usr/local
(umask 022; sudo tar zxvf /tmp/RubyMine-7.1.4.tar.gz)
sudo chown -R bin:bin RubyMine-7.1.4
sudo mkdir -p -m 0755 /usr/share/icons/rubymine
sudo update-alternatives --install  /usr/local/bin/rubymine.sh rubymine.sh /usr/local/RubyMine-7.1.4/bin/rubymine.sh 1 \
  --slave  /usr/share/icons/rubymine/rubymine.png   rubymine.png   /usr/local/RubyMine-7.1.4/bin/rubymine.png \
  --slave  /usr/share/icons/rubymine/RMlogo.svg   RMlogo.svg   /usr/local/RubyMine-7.1.4/bin/RMlogo.svg

cd /usr/local
(umask 022; sudo tar zxvf /tmp/RubyMine-8.0.1.tar.gz)
sudo chown -R bin:bin RubyMine-8.0.1
sudo mkdir -p -m 0755 /usr/share/icons/rubymine
sudo update-alternatives --install  /usr/local/bin/rubymine.sh rubymine.sh /usr/local/RubyMine-8.0.1/bin/rubymine.sh 801 \
  --slave  /usr/share/icons/rubymine/rubymine.png   rubymine.png   /usr/local/RubyMine-8.0.1/bin/rubymine.png \
  --slave  /usr/share/icons/rubymine/RMlogo.svg   RMlogo.svg   /usr/local/RubyMine-8.0.1/bin/RMlogo.svg

cd /usr/local
(umask 022; sudo tar zxvf /tmp/RubyMine-8.0.2.tar.gz)
sudo chown -R bin:bin RubyMine-8.0.2
sudo mkdir -p -m 0755 /usr/share/icons/rubymine
sudo update-alternatives --install  /usr/local/bin/rubymine.sh rubymine.sh /usr/local/RubyMine-8.0.2/bin/rubymine.sh 802 \
  --slave  /usr/share/icons/rubymine/rubymine.png   rubymine.png   /usr/local/RubyMine-8.0.2/bin/rubymine.png \
  --slave  /usr/share/icons/rubymine/RMlogo.svg     RMlogo.svg     /usr/local/RubyMine-8.0.2/bin/RMlogo.svg


sudo chmod 644 /var/lib/dpkg/alternatives/rubymine.sh


There are security considerations when doing this, but I'm ok with that so that my home dir doesn't go away if I ssh in.
  rm .encryptfs/auto-umount


sudo apt-get install vinagre
sudo apt-get  install iperf


sudo apt-get install libcurl4-gnutls-dev
gem install curb -v '0.8.8'
sudo apt-get install libmysqlclient-dev libmysqld-dev
gem install mysql2 -v '0.3.20'


Setting up postfix
  I installed postfix originally and set it to satellite system since I wasn't really sure which option would  let me send local root mail locally.  But under satellite it was relaying through my company's email server which had an email alias set to email all of IT.  D'oh!
The correct setting is internet with smarthost and for safety an alias that sends root to my personal work email.  That way my own  box only b*tches to me.
    sudo apt-get remove --purge mailutils guile-2.0-libs* libgc1c2* libgsasl7* libkyotocabinet16v5* libmailutils4* libntlm0* mailutils-common*
    sudo apt-get remove --purge postfix
    sudo apt-get install postfix (internet with smarthost)
    sudo apt-get install mailutils


Installing Oracle Java 8 JDK with strong encryption

    # download latest tarball to /tmp
    /tmp/jdk-8u71-linux-x64.tar.gz

    # unpack in /usr/lib/jvm
    cd /usr/lib/jvm
    (umask 022; sudo tar zxvf /tmp/jdk-8u71-linux-x64.tar.gz)
    sudo gzip -9v jdk1.8.0_71/man/man1/*
    sudo chown root:root jdk1.8.0_71

    # update-alternatives to point to the new jdk
    export LINKDIR=/usr/bin
    export MANLINK=/usr/share/man/man1
    export JRELINK=/usr/lib/jvm/jdk1.8.0_71
    export JHOME=${JRELINK}
    export JREDIR=$JHOME/jre/bin
    export JDKDIR=$JHOME/bin
    export MANDIR=$JHOME/man/man1
    sudo update-alternatives --install $LINKDIR/java java $JREDIR/java 100871           \
      --slave $LINKDIR/jcontrol         jcontrol            $JREDIR/jcontrol            \
      --slave $MANLINK/java.1.gz        java.1.gz           $MANDIR/java.1.gz

    sudo update-alternatives --install $LINKDIR/jjs jjs $JREDIR/jjs  100871             \
      --slave $MANLINK/jjs.1.gz         jjs.1.gz            $MANDIR/jjs.1.gz

    sudo update-alternatives --install $LINKDIR/policytool policytool $JREDIR/policytool    100871

    sudo update-alternatives --install $LINKDIR/servertool servertool $JREDIR/servertool    100871  \
      --slave $MANLINK/servertool.1.gz  servertool.1.gz     $MANDIR/servertool.1.gz

    sudo update-alternatives --install $LINKDIR/keytool keytool $JREDIR/keytool             100871  \
      --slave $MANLINK/keytool.1.gz     keytool.1.gz        $MANDIR/keytool.1.gz

    sudo update-alternatives --install $LINKDIR/orbd orbd $JREDIR/orbd                      100871  \
      --slave $MANLINK/orbd.1.gz        orbd.1.gz           $MANDIR/orbd.1.gz

    sudo update-alternatives --install $LINKDIR/pack200 pack200 $JREDIR/pack200             100871  \
      --slave $MANLINK/pack200.1.gz     pack200.1.gz        $MANDIR/pack200.1.gz

    sudo update-alternatives --install $LINKDIR/rmid rmid $JREDIR/rmid                      100871  \
      --slave $MANLINK/rmid.1.gz        rmid.1.gz           $MANDIR/rmid.1.gz

    sudo update-alternatives --install $LINKDIR/rmiregistry rmiregistry $JREDIR/rmiregistry 100871  \
      --slave $MANLINK/rmiregistry.1.gz rmiregistry.1.gz    $MANDIR/rmiregistry.1.gz

    sudo update-alternatives --install $LINKDIR/tnameserv  tnameserv   $JREDIR/tnameserv    100871  \
      --slave $MANLINK/tnameserv.1.gz   tnameserv.1.gz      $MANDIR/tnameserv.1.gz

    sudo update-alternatives --install $LINKDIR/unpack200  unpack200   $JREDIR/unpack200    100871  \
      --slave $MANLINK/unpack200.1.gz   unpack200.1.gz      $MANDIR/unpack200.1.gz

    sudo update-alternatives --install $LINKDIR/javaws javaws  $JREDIR/javaws 100871

    # download unlimited cryptography zip and put in /tmp
    /tmp/jce_policy-8.zip
 
    # install
    cd /usr/lib/jvm/jdk1.8.0_71/jre/lib/security
    sudo unzip -j /tmp/jce_policy-8.zip

    sudo chown -R root:root /usr/lib/jvm/jdk1.8.0_71



I  have noticed recently that after a reboot my disks have massive activity for a while.  I started poking around and found some links through google that imply this might be due to the lvmcache.  Going through dmesg I see a warning about the size of the cache chunksize.  I used the default which is 64k and that results in a ridiculous amount of chunks with a ~200GB cache.  I re-implemented the cache using 1M chunks  and will see if that improves things.

lvremove z420-vg/CacheDataLV
    # Do you really want to remove and DISCARD logical volume CacheDataLV? [y/n]: y

lvcreate --type cache-pool --chunksize 1M -l 100%FREE -n CachePoolLV z420-vg /dev/sda1
lvconvert --type cache   --cachepool z420-vg/CachePoolLV z420-vg/root
lvs -a z420-vg



cd /usr/local
(umask 022; sudo tar zxvf /tmp/p4v.tgz)
export P4VER=p4v-2015.2.1458499
export ALT_VER=20150202

sudo mv /tmp/p4 /usr/local/${P4VER}/bin
sudo chmod 0755 /usr/local/${P4VER}/bin/p4
sudo chown -R bin:bin ${P4VER}
sudo mkdir -m 0755 -p /usr/share/icons/perforce
sudo update-alternatives --install /usr/local/bin/p4 p4 /usr/local/${P4VER}/bin/p4 ${ALT_VER}
sudo update-alternatives --install /usr/local/bin/p4v p4v /usr/local/${P4VER}/bin/p4v ${ALT_VER} \
  --slave /usr/share/icons/perforce/P4-Merge_96x96.png P4-Merge_96x96.png /usr/local/${P4VER}/lib/p4v/P4VResources/icons/P4-Merge_96x96.png \
  --slave /usr/share/icons/perforce/P4-V_16x16.png P4-V_16x16.png /usr/local/${P4VER}/lib/p4v/P4VResources/icons/P4-V_16x16.png \
  --slave /usr/share/icons/perforce/P4-Merge_32x32.png P4-Merge_32x32.png /usr/local/${P4VER}/lib/p4v/P4VResources/icons/P4-Merge_32x32.png \
  --slave /usr/share/icons/perforce/P4-Merge_16x16.png P4-Merge_16x16.png /usr/local/${P4VER}/lib/p4v/P4VResources/icons/P4-Merge_16x16.png \
  --slave /usr/share/icons/perforce/P4-Admin_96x96.png P4-Admin_96x96.png /usr/local/${P4VER}/lib/p4v/P4VResources/icons/P4-Admin_96x96.png \
  --slave /usr/share/icons/perforce/P4-Merge_48x48.png P4-Merge_48x48.png /usr/local/${P4VER}/lib/p4v/P4VResources/icons/P4-Merge_48x48.png \
  --slave /usr/share/icons/perforce/P4-Merge_24x24.png P4-Merge_24x24.png /usr/local/${P4VER}/lib/p4v/P4VResources/icons/P4-Merge_24x24.png \
  --slave /usr/share/icons/perforce/P4-Merge_48x48-badge.png P4-Merge_48x48-badge.png /usr/local/${P4VER}/lib/p4v/P4VResources/icons/P4-Merge_48x48-badge.png \
  --slave /usr/share/icons/perforce/P4-V_96x96-badge.png P4-V_96x96-badge.png /usr/local/${P4VER}/lib/p4v/P4VResources/icons/P4-V_96x96-badge.png \
  --slave /usr/share/icons/perforce/P4-Admin_48x48-badge.png P4-Admin_48x48-badge.png /usr/local/${P4VER}/lib/p4v/P4VResources/icons/P4-Admin_48x48-badge.png \
  --slave /usr/share/icons/perforce/P4-V_48x48-badge.png P4-V_48x48-badge.png /usr/local/${P4VER}/lib/p4v/P4VResources/icons/P4-V_48x48-badge.png \
  --slave /usr/share/icons/perforce/P4-Admin_32x32.png P4-Admin_32x32.png /usr/local/${P4VER}/lib/p4v/P4VResources/icons/P4-Admin_32x32.png \
  --slave /usr/share/icons/perforce/P4-Admin_24x24.png P4-Admin_24x24.png /usr/local/${P4VER}/lib/p4v/P4VResources/icons/P4-Admin_24x24.png \
  --slave /usr/share/icons/perforce/P4-V_96x96.png P4-V_96x96.png /usr/local/${P4VER}/lib/p4v/P4VResources/icons/P4-V_96x96.png \
  --slave /usr/share/icons/perforce/P4-V_48x48.png P4-V_48x48.png /usr/local/${P4VER}/lib/p4v/P4VResources/icons/P4-V_48x48.png \
  --slave /usr/share/icons/perforce/P4-Admin_16x16.png P4-Admin_16x16.png /usr/local/${P4VER}/lib/p4v/P4VResources/icons/P4-Admin_16x16.png \
  --slave /usr/share/icons/perforce/P4-V_32x32.png P4-V_32x32.png /usr/local/${P4VER}/lib/p4v/P4VResources/icons/P4-V_32x32.png \
  --slave /usr/share/icons/perforce/P4-Admin_48x48.png P4-Admin_48x48.png /usr/local/${P4VER}/lib/p4v/P4VResources/icons/P4-Admin_48x48.png \
  --slave /usr/share/icons/perforce/P4-Admin_96x96-badge.png P4-Admin_96x96-badge.png /usr/local/${P4VER}/lib/p4v/P4VResources/icons/P4-Admin_96x96-badge.png \
  --slave /usr/share/icons/perforce/P4-Merge_96x96-badge.png P4-Merge_96x96-badge.png /usr/local/${P4VER}/lib/p4v/P4VResources/icons/P4-Merge_96x96-badge.png \
  --slave /usr/share/icons/perforce/P4-V_24x24.png P4-V_24x24.png /usr/local/${P4VER}/lib/p4v/P4VResources/icons/P4-V_24x24.png


































Still on the To-Do list
  1. perforce (p4v, p4)
  2. java
  3. RubyMine
  4. Google Chrome Profiles
  5. printer setup
  6. bind9
  7. caching and forwarding configuration
  8. openssh server
  9. Codeweavers Crossover
  10. microsoft steam
  11. softlinking common directories to save space
  12. try putting these on btrfs lv and use deduplication to reduce space
  13. heidisql
  14. Linux Steam
  15. workrave
  16. vncviewer
  17. devilspie2
  18. custom scripts ~/bin
  19. rxvt, other terminals?
  20. need to get urgent window notifications working
  21. skype?
  22. virtualbox
  23. solution for managing ~/.cache directory









































































































Comments

Popular posts from this blog

Xubuntu Home Server on Dell XPS 13 9370

Cygwin + syslog-ng

Installing Fedora 21 on a (late 2014) Mac Mini