LinuxQuestions.org
Welcome to the most active Linux Forum on the web.
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware
User Name
Password
Slackware This Forum is for the discussion of Slackware Linux.

Notices

Reply
 
Search this Thread
Old 10-09-2013, 09:01 PM   #1
slaka
Member
 
Registered: Oct 2012
Distribution: Slackware 14.0 86x
Posts: 43

Rep: Reputation: Disabled
Slackware 13.37 - Installing packages without GUI


Hey,

I have used Slackware for some time and have crawled threads and read Slackbook but unfortunately I don't know answer to this. (still don't know "correct" way to install packages for Slackware)

I have Slackware 13.37 on my VPS and I want install some packages.
Method I have used for all this time is downloading manually everything from slackbuilds.org and using SlackBuild script to create Slackware compatible package.

Another method I know is to use slackpkg tool but never managed to get it work, doesn't matter tho.

Lets assume I have machine with Slackware 13.37 and networking enabled but without slackpkg and without GUI capabilities, what would be way to install anything to that machine?

I know I can just look up URL of packages I want to install and just download 'em with 'wget' - but that is cheating since I need GUI + Browser for that, pretty heavy.
 
Old 10-09-2013, 09:09 PM   #2
jtsn
Member
 
Registered: Sep 2011
Location: Europe
Distribution: Slackware
Posts: 803

Rep: Reputation: 354Reputation: 354Reputation: 354Reputation: 354
Do you know of http://www.sbopkg.org/?
 
Old 10-10-2013, 01:52 AM   #3
Stephen Morgan
Member
 
Registered: Feb 2011
Location: England
Distribution: Slackware
Posts: 147

Rep: Reputation: 15
The normal way is to use slackpkg to manage the standard packages and sbopkg or slackpkg+ to manage extra packages not in the standard Slackware distribution.

Also, you can use lynx as a browser without a GUI.
 
Old 10-10-2013, 04:07 AM   #4
ruario
Senior Member
 
Registered: Jan 2011
Location: Oslo, Norway
Distribution: Slackware
Posts: 1,817

Rep: Reputation: 817Reputation: 817Reputation: 817Reputation: 817Reputation: 817Reputation: 817Reputation: 817
You could mirror the Slackware 13.37 tree with rsync or lftp and then installpkg/upgradepkg from your local mirror. However, I think it is worth addressing this first:

Quote:
Originally Posted by slaka View Post
Another method I know is to use slackpkg tool but never managed to get it work, doesn't matter tho.
I would say that this does matter. Why couldn't you get it working? What issues did you face? Did you receive any error messages? It seems to me that if you worked this out it would resolve your biggest issue (at least from the perspective of installing/upgrading official packages).

Perhaps your VPS provider pre-installed a stripped down, minimal install of Slackware 13.37 for you and this is missing some dependencies that are needed by slackpkg. I recall that Linode used to have this issue (I have no idea if this is still the case). On Linode (historically at least) slackpkg was pre-installed but certain things that it used were missing, e.g. tput is provided by the ncurses packages but ncurses itself was not pre-installed on the minimal Linode Slackware 13.37 image.

If this sounds like it might be the kind of problem you have, then you might want to provide a list of your installed packages and/or tell us who your VPS provider is.
 
Old 10-10-2013, 05:02 AM   #5
ruario
Senior Member
 
Registered: Jan 2011
Location: Oslo, Norway
Distribution: Slackware
Posts: 1,817

Rep: Reputation: 817Reputation: 817Reputation: 817Reputation: 817Reputation: 817Reputation: 817Reputation: 817
If you have actively decided that you do not want to use slackpkg for some reason, here is an example of a command to mirror all of the official Slackware 13.37 (32-Bit) packages locally with lftp:

Code:
lftp -c 'open http://mirrors.slackware.com/slackware/; mirror -enx ".*\.mirrorlist" slackware-13.37'
You can then install whatever you need locally from the slackware/ subdirectory with installpkg. You should also install any security updates from patches/. Indeed you will need to update the mirror from time to time to ensure you stay on top of new security updates in the patches/ directory.

The easiest option remains slackpkg but the above is a workable solution if you so desired. Before you do it though you should really consider why you want to avoid slackpkg. If it is just that you had trouble getting it working, I'd argue that is not a good reason.

P.S. I must admit I don't use slackpkg on all my installs. Slackpkg probably is the best (and most standard) option for most people but I once amused myself writing a script that only mirrors a sub selection of patches/ (just for packages that I have installed and have not blacklisted). Since I wrote that script myself and it works, I use it on some of my installs but there is no real compelling reason for others to use it (I'm only doing it for a "what the hell, why not" perspective). Nonetheless, this is it, if you are mildly curious.
 
Old 10-10-2013, 05:19 AM   #6
ruario
Senior Member
 
Registered: Jan 2011
Location: Oslo, Norway
Distribution: Slackware
Posts: 1,817

Rep: Reputation: 817Reputation: 817Reputation: 817Reputation: 817Reputation: 817Reputation: 817Reputation: 817
By the way this thread seems very similar to one you opened almost a year ago:

Quote:
Originally Posted by slaka View Post
Hey,

have used Slackware for a while and have always installed packages manually by downloading 'em from 'slackbuilds.org' and making Slackware packages with scripts provided by same source.

But is there more optimal way to install packages?
Realized how slow and frustrating this is when there are couple programs with 10+ required depencies and feel kinda lazy to install all that.

Also I have 'slackpkg' installed but never were able to do anything with that...Have configured but it just tells me that no packages match pattern.
i.e. 'slackpkg install filezilla' -- kinda doesn't matter what I try to install since nothing ever matches any pattern.

Here it appears you are trying to use slackpkg to install applications that are not part of the standard install. This will not work since it was not designed for that task. If you want to automate installation of non official packages you should either look into using slackpkg+ to install from third party binary repositories or check out sbopkg to automate building and installing stuff from SlackBuilds.org. Both of these were recommended by others above and in the previous thread.

Sbopkg's "queuefiles" system (which you should read up on) will help you with regards to ensuring you are installing any third party dependencies for packages you build locally.
 
Old 10-10-2013, 07:09 AM   #7
ricky_cardo
LQ Newbie
 
Registered: Feb 2006
Location: Syracuse, NY
Distribution: Slackware 13.37 x86_64 and Current
Posts: 29

Rep: Reputation: 5
Here is what you can do if you don't find a SlackBuild. Make one.. (here are some ingredients)
(will need to be root for some steps) not outlined...

Download Software and unzip or use git if available.

git clone https://github.com/ckolivas/cgminer.git

--often if using git you need to run autogen, if downloading source and unziping it may be there..

cd /home/ricky/cgminer/
aclocal
./autogen.sh

mkdir /tmp/build-cgminer

# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
i?86) ARCH=i486 ;;
arm*) ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) ARCH=$( uname -m ) ;;
esac
fi

if [ "$ARCH" = "i486" ]; then
SLKCFLAGS="-O2 -march=i486 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
SLKCFLAGS="-O2 -march=i686 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
SLKCFLAGS="-O2 -fPIC"
LIBDIRSUFFIX="64"
else
SLKCFLAGS="-O2"
LIBDIRSUFFIX=""
fi



CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
./configure \
--prefix=/usr \
--libdir=/usr/lib${LIBDIRSUFFIX} \
--sysconfdir=/etc \
--localstatedir=/var \
--build=$ARCH-slackware-linux \
--enable-icarus \
--disable-opencl \
--disable-adl \
--enable-bflsc \
--enable-bitforce \
--enable-modminer \
--enable-ztex \
--enable-avalon

make
make install DESTDIR=/tmp/build-cgminer
strip -s /tmp/build-cgminer/usr/lib/* /tmp/build-cgminer/usr/bin/*
gzip -9 /tmp/build-cgminer/usr/man/man?/*.?
cd /tmp/build-cgminer
mkdir install
cd install/
vi slack-desc (put software description here w/ handyruler, look at another slack-desc from slackbuilds.org for example)
cd /tmp/build-cgminer/
/sbin/makepkg -l y -c n ../cgminer-3.5.0-x86_64-1rah.tgz
cd ..
installpkg cgminer-3.5.0-x86_64-1rah.tgz
 
Old 10-10-2013, 09:11 AM   #8
Alien Bob
Slackware Contributor
 
Registered: Sep 2005
Location: Eindhoven, The Netherlands
Distribution: Slackware
Posts: 5,232

Rep: Reputation: Disabled
Quote:
Originally Posted by ricky_cardo View Post
Here is what you can do if you don't find a SlackBuild. Make one..
My "Alien's SlackBuild Toolkit" could help you creating these SlackBuild related files: http://alien.slackbook.org/AST/

Eric
 
2 members found this post helpful.
Old 10-12-2013, 06:56 AM   #9
Ongbuntu
Member
 
Registered: Aug 2013
Distribution: slackware
Posts: 79

Rep: Reputation: 8
Quote:
Originally Posted by Alien Bob View Post
My "Alien's SlackBuild Toolkit" could help you creating these SlackBuild related files: http://alien.slackbook.org/AST/

Eric
Wow! That's a very neat tool thanks for sharing.
 
Old 10-12-2013, 11:48 AM   #10
vivanguarda
Member
 
Registered: Sep 2008
Location: RJ-Brazil
Distribution: Slackware
Posts: 166

Rep: Reputation: 4
Good Afternoon!

Slackpkg and new and interesting Slackpkg Plus ( ad on ). That`s a worth!
 
Old 10-13-2013, 05:36 AM   #11
lems
Member
 
Registered: May 2004
Distribution: Slackware -current (x86/x86_64) & 14.1 (ARM)
Posts: 127

Rep: Reputation: 40
Hi,

a little off topic, but I wrote a small script which is able to install packages, either from the Slackware distribution or from third party repositories.

For example, if I type `script -A vlc ffmpeg google', it will display the following:

Code:
[alien] [ ] phonon-vlc-0.6.0-i486-1alien
[alien][*] npapi-vlc-20130408-i486-1alien
[alien][*] vlc-2.0.8-i486-1alien
[restricted][*] npapi-vlc-20130408-i486-1alien
[restricted][*] vlc-2.0.8-i486-1alien
[slacky] [ ] vlc-qt-0.7.0-i486-1sl
[slacky] [u] vlc-2.0.6-i486-1sl -> vlc-2.0.8-i486-1alien
[slacky] [ ] vlc-append-0.6-i686-3sl
[alien][*] ffmpeg-1.2-i486-1alien
[alien] [ ] gst-plugins-ffmpeg-0.10.13-i486-2alien
[restricted][*] ffmpeg-1.2-i486-1alien
[slacky] [u] ffmpeg-1.1.2-i686-1sl -> ffmpeg-1.2-i486-1alien
[slacky] [ ] ffmpeg2theora-0.29-i486-1sl
[slacky] [ ] ffmpegthumbnailer-2.0.8-i486-1sl
[slacky] [ ] gst-ffmpeg-0.10.13-i486-1sl
[extra][*] google-chrome-pam-solibs-1.1.3-i486-1
[slacky] [ ] google-go-lang-1.1.1-i486-2sl
[slacky] [ ] google-talkplugin-4.0.3.0-i386-1sl
[slacky] [ ] googleearth-6.0.3.2197-i386-1sl
[slacky] [u] google-chrome-29.0.1547.57-i386-1sl -> google-chrome-29.0.1547.62-i386-1
(`script -a vlc ffmpeg google' would result in the same display, minus the installed status, so that this option can also be used on a non-Slackware system.)

Typing `script -r install vlc ffmpeg xbindkeys nvi' results in:

Code:
slacker: processing `` vlc ffmpeg xbindkeys nvi ''
.....
[restricted] vlc-2.0.8-i486-1alien.txz
[restricted] ffmpeg-1.2-i486-1alien.txz
[rlworkman] nvi-1.81.6-i486-1_rlw.txz
[slacky] xbindkeys-1.8.5-i486-1sl.txz
-------------------------------------------------------------------------------
slacker: 4 packages to install
slacker: proceed? [ny](n)
Typing `script install e' gives:

Code:
slacker: processing `` e ''
..
[e] emacs-24.3-i486-3.txz
-------------------------------------------------------------------------------
slacker: one package to install
slacker: proceed? [y/n](n)
(The dots are something of a progress bar.)

`script -r install pkg1 pkg2 ...' would install the packages, honoring REPOPRIO: a variable that is similiar to the PKG_PRIORITY variable of slackpkg+ (I implemented it after I read about it). I can also type `script -r <repo> install pkg1 pkg2 ...' and it would install those packages from said <repo> (it does GPG and MD5 checking as well). Without `install', it would just download the packages to `$DEST/slackware${SLACKARCH}-$SLACKVER'.

It can also download/copy/link (or install|upgrade|reinstall|remove) packages from extra, pasture, testing, patches and the Slackware series; for this, typing `script [<install|reinstall|upgrade|remove>] pkg1 pkg2 dir ...' suffices, though testing comes last, so to get a package from testing, one can do `testing:pkg1,pkg2,...' (this syntax works for pasture, patches, testing and extra, not for slackware series, which would be kind of pointless anyway) or set the PRIO variable to, for example, "testing series patches extra pasture" so that testing comes first. One can also use a local path---can be prefixed with file://---for the main Slackware packages variable SLACKMIRROR and for each repository.

I can also do whole directories with it by typing, e. g., `script ap extra', a whole repository can be downloaded using `script -r <repo>'. For some repositories, it supports downloading directories as well: for example, I can get the `deps' or `kde' directory of alien-kde's repo by issuing `script -r alien-kde upgrade kde deps' or `script -r upgrade kde deps' if GREP_DIR is true (the latter command honors REPOPRIO).

It also supports searching and getting the SlackBuilds from source/ using -z for searching, -Z for getting; `script -r <repo> -z/-Z <pkg>' does the same for third party repositories, this currently supports slacky and Alien BOB's repos, I did not test this with others.

So `script -Z mpg123 lynx' gives this:
Code:
slacker: processing `` lynx mpg123 ''
...
source/ap/mpg123/mpg123-1.15.4.tar.xz
source/ap/mpg123/mpg123.SlackBuild
source/ap/mpg123/slack-desc
source/n/lynx/lynx2.8.7.tar.xz
source/n/lynx/lynx.cfg.diff.gz
source/n/lynx/lynx.path.diff.gz
source/n/lynx/lynx.SlackBuild
source/n/lynx/slack-desc
-------------------------------------------------------------------------------
slacker: 8 files to link to ``/tmp/slackware-current''
slacker: proceed? [y/n](n)
`script -r <repo> -A' lists all packages for <repo> and displays if the package is installed, upgraded or not installed; if an older kde release is installed, one can run `script -r alien-kde -A | grep '\[ \]'' and get a list of added packages, or `script -r alien-kde -n -i' and it will install the added packages (-n alone just displays them: the -n option I added for my own convenience); my script does not display which packages from kde have been removed, though. For this, the README still needs to get consulted.

`script -r -U' would check for updates from all third party repositories, `script -r <repo> -u' only for updates from <repo>, `-u -i' installs upgrades, `script -r alien-kde upgrade deps' would only upgrade the deps (though this does not work for multilib, and as I don't have a 64 bit system I couldn't test this much). Each repository also has a blacklist to blacklist packages that should not be checked for updates.

`script -C' checks the ChangeLog for updates and displays only those bits that have changed since the last run of `-C'. `-C -s' shows the whole ChangeLog, `-C -l' the last updates (basically the diff between the current ChangeLog and the one saved in ~/.script/ChangeLog.txt.gz).

It can also update packages: either with the -u or the -U switch. `-u' checks for updates from patches/ and only gets those updated packages that are installed, `-U' checks the installed packages against the package list and gets those that differ -- useful for tracking current or upgrading only those package that are installed from one release to another (first set SLACKER to the new version: this can be done on the command line via `SLACKVER=ver script -U' [or setenv SLACKVER] or in its configuration file ~/.script/config). (It also supports updating packages from extra and, with a switch, prefers testing.) Though updating a -current system with my script is slower than with slackpkg. It has a little progress bar, not as fancy as slackpkg's one, it just echos dots (honors 80 columns).

(One can also use `script upgrade pkg1 series ...' and it would just update the pkg1 and every package of `series' that differs [and is installed, of course].)

-u, -U and `install|remove|reinstall|upgrade' also support a blacklist; this can be the package name, like kernel-huge, but can also be part of a directory like `nosmp-sdk', a regular expression like [0-9]+alien is also supported (it is a simple egrep -v -f $blacklist). There is a -b option that will: add a whole series to the blacklist, with a -u switch it will only add those packages from a series that are upgraded, it can also add single packages. And there is a -B option which will delete a whole series from the blacklist, or, with the -u switch, only those packages of a series that are upgraded, or package names: it can't delete regular expressions. The -u switch to -b is useful for ktown packages, though of course one could use [0-9]+alien, which is simpler.

`script upgrade <series>' only updates those packages that differ, `script install <series>' installs all missing packages from <series>, `reinstall' reinstalls those that are installed, etc.

`script -R' rsyncs a copy of the Slackware tree, `script -R -x source,extra/source' would exclude these directories, the version can be specified using `-v' (though it defaults to $SLACKVER), the dir to rsync to with `-d' and a dry run with `-n'; `-R -D' runs rsync using --delete. RSYNCMIRROR can be defined in the script's config file, on the command-line or as first argument.

Doing
Code:
for i in `script -l`; do YES=true script $i; done
would get all slackware series directories.

It does a few other things as well: listing information for packages from /var/log/packages; listing the contents of a package; showing which file belongs to which package; displaying foreign packages; displaying the available versions on one's Slackware mirror (needs lynx, links or w3m); displaying and downloading ISO files in case they are available (needs lynx, links or w3m, my script supports resuming downloads by setting RESUME=true, supported FETCHCMDs for resuming are curl, lftp, wget and ncftpget [ftp only], otherwise FETCHCMD also supports fetch [FreeBSD], tnftp [Net- and OpenBSD], hget [plan9port, http-only] and axel);

it can run `upgradepkg --install-new' on /path/to/series, so that one can run `script -Y /path/to/series' and either type in the desired directories, use a preset or use the existing directories, does MD5 checking if /path/to/CHECKSUMS.md5 exists (this is similiar to the method in UPGRADE.TXT): I used this when my script did not support installing packages. After installing, it also notifies the user if .new files have been installed; `-x' will display .new files found (except for some, like shadow or passwd) and move these files over and back up old configuration files with a .bak suffix: this is similar to the method described in UPGRADE.TXT.

It can also display added and removed packages between two versions (so you can run `script -n 14.0 current -R | xargs removepkg' -- `-R' only displays those packages that have been removed that are installed, `-r' displays all packages that have been removed, -a displays added, -A asks if they should be downloaded). Though `-n' does not work if SLACKMIRROR uses a local path, so one can do `SLACKMIRROR=mirror script -n ...' or `script http://mirror -n ...' to temporarily override SLACKMIRROR. There's also an option which can be used to check the integrity (MD5 and, optionally, PGP signatures) of Slackware packages: syntax is `script -V /path/to/CHECKSUMS.md5(.gz) /path/to/dir' where /path/to/dir points to the directory holding the slackware, extra, pasture, testing etc. directories.

I envy slackpkg for its file-search: I only have an option to grep in Slackware's MANIFEST.bz2 files, as I don't know awk(1) well enough to reformat the MANIFEST files.

It is written in ash, not bash, so it's quite simple (~5700 loc, 153K). It is not as sophisticated as slackpkg; it uses slackpkg's regex for grepping packages, though (including its useful ARCH check). Its options are letters with one hyphen, like -A, -s, etc, except for the install|reinstall|upgrade|remove targets. It does not support a dialog interface, instead it displays up to twenty packages on the terminal, or uses $PAGER (if available) for viewing packages to be acted upon.

I called it `slacker'. But with slackpkg being available (and now even having support for third party repositories), the use of my script is questionable. I'm also not a coder, more a `tinkerer'.

Regards

lems
 
Old 10-13-2013, 11:19 AM   #12
ruario
Senior Member
 
Registered: Jan 2011
Location: Oslo, Norway
Distribution: Slackware
Posts: 1,817

Rep: Reputation: 817Reputation: 817Reputation: 817Reputation: 817Reputation: 817Reputation: 817Reputation: 817
Quote:
Originally Posted by lems View Post
I envy slackpkg for its file-search: I only have an option to grep in Slackware's MANIFEST.bz2 files, as I don't know awk(1) well enough to reformat the MANIFEST files.
Well you can achieve something somewhat similar with grep. Consider a shell script like the following:

Code:
#!/bin/sh
bzcat ~/MANIFEST.bz2 | grep -Fe "Package:" -e "$1" |  grep -B1 -F "$1" | head -1 | rev | cut -d" " -f1 | rev
Suppose you wanted to find out which packaged owned /usr/lib/libX11.so.6.3.0, you could do the following:

Code:
$ scriptname usr/lib/libX11.so.6.3.0
./x/libX11-1.5.0-i486-1.txz
 
1 members found this post helpful.
Old 10-13-2013, 02:02 PM   #13
STDOUBT
Member
 
Registered: May 2010
Location: Stumptown
Distribution: Slackware 14.0/32bit + a T60p (2007-YS3) = YES
Posts: 261

Rep: Reputation: 61
Quote:
Originally Posted by slaka View Post
I know I can just look up URL of packages I want to install and just download 'em with 'wget' - but that is cheating since I need GUI + Browser for that, pretty heavy.
Sure you need a browser, but you don't need a GUI.
Just use the text browser called "links":

slaka@machine:$ links slackbuilds.org
 
Old 10-14-2013, 12:12 AM   #14
lems
Member
 
Registered: May 2004
Distribution: Slackware -current (x86/x86_64) & 14.1 (ARM)
Posts: 127

Rep: Reputation: 40
Quote:
Originally Posted by ruario View Post
Well you can achieve something somewhat similar with grep. Consider a shell script like the following:

Code:
#!/bin/sh
bzcat ~/MANIFEST.bz2 | grep -Fe "Package:" -e "$1" |  grep -B1 -F "$1" | head -1 | rev | cut -d" " -f1 | rev
Suppose you wanted to find out which packaged owned /usr/lib/libX11.so.6.3.0, you could do the following:

Code:
$ scriptname usr/lib/libX11.so.6.3.0
./x/libX11-1.5.0-i486-1.txz
Thanks, ruario. This is useful, though it will only display the first match, so for libmpfr one gets aaa_elflibs. Also, is the -F to grep needed? It also worked without.

lems
 
Old 10-14-2013, 01:39 AM   #15
ruario
Senior Member
 
Registered: Jan 2011
Location: Oslo, Norway
Distribution: Slackware
Posts: 1,817

Rep: Reputation: 817Reputation: 817Reputation: 817Reputation: 817Reputation: 817Reputation: 817Reputation: 817
Quote:
Originally Posted by lems View Post
Thanks, ruario. This is useful, though it will only display the first match, so for libmpfr one gets aaa_elflibs.
Try this instead:

Code:
#!/bin/sh
bzcat ~/MANIFEST.bz2 | grep -Fe "||   Package:" -e "$1" | grep -B1 -F "$1" | sed -n 's/||   Package:  //p'
Quote:
Also, is the -F to grep needed? It also worked without.
I used fixed grep matching so that '.' is not interpreted as any character but rather as an actual '.' since these are often found in library names. It might be an overkill but I added it to decrease the chance of false positives.

Last edited by ruario; 10-14-2013 at 01:49 AM. Reason: Improved the grep match ... just to be sure. ;)
 
1 members found this post helpful.
  


Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Installing Packages (bittornado) in Slackware take2hikes Slackware 17 05-13-2010 09:45 PM
Installing slackware extra packages Sargalus Linux - Software 1 03-02-2010 05:32 AM
Installing Packages on Slackware gtbutler Slackware 9 07-05-2007 11:58 AM
installing packages on slackware 11 bookie Linux - Newbie 13 04-15-2007 01:08 PM
installing/uninstalling slackware packages jaakkop Slackware 10 02-14-2005 09:11 PM


All times are GMT -5. The time now is 12:32 AM.

Main Menu
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
identi.ca: @linuxquestions
Facebook: linuxquestions Google+: linuxquestions
Open Source Consulting | Domain Registration