Difference between revisions of "GNU Linux/Ubuntu"

From WhyAskWhy.org Wiki
Jump to: navigation, search
m (Filtering out linux-image-server from the list of kernels to be removed.)
m (Tweaked regular expressions to better match the kernels installed and broke those into their own variables.)
Line 113: Line 113:
 
<pre>2.6.32-41-generic-pae</pre>
 
<pre>2.6.32-41-generic-pae</pre>
  
We'll want to leave that one in place, so we'll need to exclude it from the list that we'll be removing. There are a LOT of ways this could be done, but splitting it into two actual lines of code makes it a little easier to read. Also, double-quotes are used instead of single-quotes so variable substitution can be done.
+
We'll want to leave that one in place, so we'll need to exclude it from the list that we'll be removing. There are a LOT of ways this could be done, but the approach below is the one I use.
  
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
 
# Set a variable in the shell that contains MOST of the current running kernel. If
 
# Set a variable in the shell that contains MOST of the current running kernel. If
 
# we match exactly we'll exclude any pae or non-pae versions of the kernel
 
# we match exactly we'll exclude any pae or non-pae versions of the kernel
export CURRENT_KERNEL=$(uname -r | cut -c 1-15)
+
CURRENT_KERNEL=$(uname -r| cut -c 1-15)
 +
 
 +
FILTER_OUT="(deinstall|linux-image-generic|linux-image-server|linux-image-virtual|${CURRENT_KERNEL})"
 +
 
 +
MATCH_ON_REGEX='\<linux-image[0-9.a-zA-z-]+\>'
  
 
# Print a list of kernels we'll be removing
 
# Print a list of kernels we'll be removing
for kernel in $(dpkg --get-selections | grep linux-image | grep -v -i -E "(deinstall|linux-image-generic|linux-image-server|${CURRENT_KERNEL})"); do echo $kernel; done
+
for kernel in $(dpkg --get-selections | grep -viE "${FILTER_OUT}" | grep -iEo "${MATCH_ON_REGEX}"); do echo $kernel; done
  
 
# Start the removal process
 
# Start the removal process
for kernel in $(dpkg --get-selections | grep linux-image | grep -v -i -E "(deinstall|linux-image-generic|linux-image-server|${CURRENT_KERNEL})"); do apt-get remove $kernel; done
+
for kernel in $(dpkg --get-selections | grep -viE "${FILTER_OUT}" | grep -iEo "${MATCH_ON_REGEX}"); do apt-get remove $kernel; done
 
</syntaxhighlight>
 
</syntaxhighlight>
 
The loop will also attempt to <code>apt-get remove install</code>, but since that's not a package name and we'll be manually answering the yes/no prompts, that's ok.
 

Revision as of 11:08, 5 September 2012


These are my notes for various Ubuntu tasks.

Tips/Tricks

Package install status cloning

Other descriptions:

  • Ubuntu cloning
  • Ubuntu install cloning
  • etc

Steps

  1. sudo dpkg –-get-selections > packages.txt
  2. Copy packages.txt to the remote machine
  3. sudo dpkg –-set-selections < packages.txt
  4. sudo apt-get dselect-upgrade


Ubuntu as a VMware guest

VMware Tools: Installing the appropriate kernel headers for compilation

sudo apt-get install linux-headers-$(uname -r)

Shared Folders: correct fstab options

Assuming:

  • User Id is 1000
  • /mnt/hgfs folder exists
  • VMware Tools are installed
  • You don't need the mount points available at boot
.host:/ /mnt/hgfs vmhgfs defaults,ttl=5,uid=1000,gid=1000,nobootwait 0 0


Enabling VNC Server

Start at boot

  1. Login as USER [1]
  2. vncpasswd
  3. sudo nano /etc/rc.local
  4. su - user -c "cd /home/user/ && vncserver :1 -geometry 1024x768 -depth 24" 2>/dev/null &
  1. USER is a non-root account that the vncserver will be running as

Enable Gnome

nano /home/user/.vnc/xstartup

Include the following:

xrdb $HOME/.Xresources
xsetroot -solid grey
#x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
#x-window-manager &

# Fix to make GNOME work
export XKL_XMODMAP_DISABLE=1
/etc/X11/Xsession


Quick UFW rule list

  1. Set the default rule to deny everything
    ufw default deny
  2. Allow in web traffic from "the world" to port 80
    ufw allow 80
  3. Allow ssh from a trusted network
    ufw allow from 192.168.0.0/24 to any port 22
  4. Enable the rules we've just set
    ufw enable
  5. Show the enabled rules
    ufw status


Viewing installed packages

dpkg --get-selections | grep -v deinstalled


Cleaning out old kernels

For this example, we want to keep these two kernels and get rid of all the others.


We first get the list of kernels installed. I've intentionally trimmed the list to 10 lines.

dpkg --get-selections | grep linux-image
root@silo:~# dpkg --get-selections | grep linux-image | tail -n 10
linux-image-2.6.32-38-generic-pae               install
linux-image-2.6.32-39-generic                   install
linux-image-2.6.32-39-generic-pae               install
linux-image-2.6.32-40-generic                   install
linux-image-2.6.32-40-generic-pae               install
linux-image-2.6.32-41-generic                   install
linux-image-2.6.32-41-generic-pae               install
linux-image-generic                             install
linux-image-generic-pae                         install
linux-image-server                              install

As you can see in the list, linux-image-2.6.32-41-generic* is the last one in the list and uname -r confirms the currently running kernel:

2.6.32-41-generic-pae

We'll want to leave that one in place, so we'll need to exclude it from the list that we'll be removing. There are a LOT of ways this could be done, but the approach below is the one I use.

# Set a variable in the shell that contains MOST of the current running kernel. If
# we match exactly we'll exclude any pae or non-pae versions of the kernel
CURRENT_KERNEL=$(uname -r| cut -c 1-15)

FILTER_OUT="(deinstall|linux-image-generic|linux-image-server|linux-image-virtual|${CURRENT_KERNEL})"

MATCH_ON_REGEX='\<linux-image[0-9.a-zA-z-]+\>'

# Print a list of kernels we'll be removing
for kernel in $(dpkg --get-selections | grep -viE "${FILTER_OUT}" | grep -iEo "${MATCH_ON_REGEX}"); do echo $kernel; done

# Start the removal process
for kernel in $(dpkg --get-selections | grep -viE "${FILTER_OUT}" | grep -iEo "${MATCH_ON_REGEX}"); do apt-get remove $kernel; done