apt – no public key error

If you add a new repository to apt (/etc/apt/sources.list) you may get the following error when running ‘sudo apt-get update’:

Reading package lists… Done
W: There is no public key available for the following key IDs:
W: You may want to run apt-get update to correct these problems

As you probably already guessed, running ‘sudo apt-get update’ will result in exactly the same problem. This is because the new repository’s key needs to verified. This is done by the following:

gpg –keyserver –recv [Key]
gpg –export [Key] | sudo apt-key add –

replace [Key] with the key you want to add

This can also be made slightly easier by using a bash variable:

gpg –keyserver –recv $1
gpg –export $1 | sudo apt-key add –

replace [Key] with the key you want to add

or as a bash script:

gpg –keyserver –recv $1
gpg –export $1 | sudo apt-key add –

ran by the following:

./key [key]

replace [Key] with the key you want to add
which then you could place in /bin so you could simply run

Script can be downloaded here

Read More

Bash: mass image and video conversions

Linux has many useful command line programs that will convert from one file format to another.

  • convert – converts images (part of ImageMagick)
  • convert input.jpg -resize 500×500 output.jpg

    converts input.jpg to output.jpg resized to 500 by 500 pixels

  • mencoder – converts video files
  • mencoder -ovc lavc -oac mp3lame -o output.avi input.flv

    converts input.flv to output.avi

    Now lets look at some bash:

    for i in *.jpg; do echo $i; done

    This is a for loop which will assign and iterate over a variable i to every item it finds that matches *.jpg in the current directory. It will simple echo the name of the file to the console and then finish. Only really useful for testing the command works, now lets put a conversion command in instead of the echo.

    for i in *.jpg; do convert “$i” -resize 500×500 “x_$i”; done

    This will take every jpg in the current directory resize it to 500 by 500 pixels and then save it as with and x_ prefixing the filename. You can get it to overwrite the current file by making the input and output file names equal (in this case it simple means removing x_ from the above code)

    Read More

    Streaming media from Linux to PS3

    I wanted to watch some of the videos that I have on my computer on my playstation 3, so that lead me to search for media server applications. I found out that you could set this up quite easily from within Windows Media Player, however as a linux user I knew there was probably a much better linux based solution available.

    After a few minutes of googling, I found a program called Mediatomb. It is avaliable at

    mediatomb is in the ubuntu repositories, so all that is needed to install it is:

    sudo apt-get install mediatomb

    All you need to do once it is setup is to open up the config file located at ~/.mediatomb/config.xml
    and to add the following below the <server> line

    <protocolInfo extend=”yes”/>

    then in the mappings section, add any file formats that you want to be forwarded. In this example .avi and .divx files have been added

    <extension-mimetype ignore-unknown=”no”>
    <map from=”avi” to=”video/x-divx”/>
    <map from=”divx” to=”video/x-divx”/>

    Once this is all done, you can run mediatomb, and it will give you an output like the following:

    MediaTomb UPnP Server version 0.11.0 –

    Copyright 2005-2008 Gena Batsyan, Sergey Bostandzhyan, Leonhard Wimmer.
    MediaTomb is free software, covered by the GNU General Public License version 2

    2008-08-13 23:46:19 INFO: Loading configuration from: /home/mat/.mediatomb/config.xml
    2008-08-13 23:46:19 INFO: Checking configuration…
    2008-08-13 23:46:19 INFO: Setting filesystem import charset to UTF-8
    2008-08-13 23:46:19 INFO: Setting metadata import charset to UTF-8
    2008-08-13 23:46:19 INFO: Setting playlist charset to UTF-8
    2008-08-13 23:46:19 INFO: Configuration check succeeded.
    2008-08-13 23:46:19 INFO: Initialized port: 49152
    2008-08-13 23:46:19 INFO: Server bound to:
    2008-08-13 23:46:20 INFO: MediaTomb Web UI can be reached by following this link:
    2008-08-13 23:46:20 INFO:

    The last line shows the information of use, using the ip address you can login to the web interface for the mediatomb server, from there you can add the folders you wish to be shared.

    Then on the PS3 or whatever device you are using, you should be able to access the files that you have shared. My PS3 automatically found the server but also had the option to scan for media servers. The only problem with the playstation is that it will refuse to play some files, but most of the videos I tried worked.

    Conclusion: Pretty dam cool

    The following link is a slightly better guide, than my brief overview
    P.S. Media tomb also shares images and music files etc… forgot to mention it.

    Read More