Saturday, November 28, 2009

Re: [LINUX_Newbies] NEWLY INSTALLED APPLICATIONS

 

On Sat, Nov 28, 2009 at 19:12, Clayton Bonser
<claybonser@netspace.net.au> wrote:
> I'm going to have a stab at answering this. Those who know are welcome
> to jump in and correct me.

OK... :)

> First, Linux doesn't have 'executable' packages in the sense that
> windows does. Linux uses binary files. Someone who understands what this
> really means might want to explain better than I can. That being said,
> what you're probably looking for should be in either the /bin or more
> likely /usr/bin folders.

Yes it does. In fact, there really is NO real difference between the
typical executable in Windows and the same in Linux, or any other OS
for that matter. They are either executable, or they are not. The
differences are what particular environment (Linux, Windows, Mac,
embedded OS, BSD, AIX, etc) they are written and compiled for. So
some definitions are in order...

First, programs (and everything you can run on a computer is a
program) are either binary/compiled/self contained, or they are
interpreted.

First, in windows you are used to things like MyProgram.exe. All that
is, is a program written in a programming languate that is then
compiled to run on Windows. There are many instances where, using
standard libraries compiled into your program, where you can take the
exact same C or C++ code (For example), and compile that code for both
WIndows and Linux, and have them execute. For example: the standard
Hello World program.

If you write a very basic Hello World program in C++, you can create
binaries for both Windows AND Linux, and both will run. IN fact, you
can even compile BOTH of them on a separate computer... that's called
Cross Compiling. But that's probably getting too tangential.

So Binaries are the compiled, executable (self running) programs. In
Windows, they are typically named something like MyProgram.exe where
on Linux (and most other OSs) they would just be named something like
MyProgram.

The next kind of program is written in an interpreted language.
That's more like shell programming, so languages like Python, Bash,
Java, etc. Those programs are NOT executable, EVEN if you set an
executable flag on them. They require an interpreter to actually
execute the code. For something like this, the only thing that
happens when you give it an executable flag is that, provided the
script is written properly, the system launches the proper interpreter
when you try to run the program.

(Disclaimer, there are some exceptions to that: Java can be compiled
and run statically, and you can run C codes as shell scripts in the C
Shell, for example... )

You were spot on with /bin and /usr/bin... the difference, or at least
the main difference, between them is that /bin is generally reserved
for system programs that anyone can execute. Things like ls, cp, mv,
etc... /usr/bin is GENERALLY where the executables for add-in
programs go. Of course, that's left entirely to the people who build
the installation package. Firefox, for example, puts it's binaries in
/lib/firefox-version/ and then creates symlinks to /usr/bin/firefox

In Windows, as we all know, the programs, their data, and their
binaries almost all exclusively go in C:\Program Files.

> To launch the software, one can do a few different things. Binaries can
> be called using a command prompt. Sometimes just typing the file name
> and pressing enter will launch the program, sometimes the complete path
> is required, like this:
>
> clay@clay:~ /usr/bin/filename <enter>

Yep, but that's usually only if the program is in a location that is
NOT in your path. In my case, on this system, this is my path:

bladernr@asuka:~$ echo $PATH
/home/bladernr/.bin:/usr/bin/crunchbang:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
bladernr@asuka:~$

So anything I want to directly execute (without the full path) will
have to be inside one of those directories.

>
> Also, you  can open your file browser, and navigate to /usr/bin, then
> click or double click, according to set up, on the package icon, and it
> should launch.

Yep, you can do this too...

> To add the program to your drop down menu, right click on the
> applications menu and select edit menus.
> >From there you can select the sub-menu, and a file browser window will
> open where you can navigate to /usr/bin and thence select the desired
> package. You will be asked to choose an icon from a list to associate
> with the package. It's probable that there are no icons associated with
> the packages you mention, so you'll have to select from the list
> available. Maybe by visiting the developers' site you can find a little
> graphic to add to the icons list that will fit the software in question.
> The above works with the Gnome desktop, but will probably work, or
> nearly so with KDE, which I suspect you use from the 'K' in ikon in your
> post.

Pretty much... each window manager has it's own method for adding
things to the menus. But usually the one you need can be found just
by googleing for whatever you're looking for ("KDE add program to
menu") for example.

But be that as it may, this is one of those things I try to teach my
students. They all come from the Windows world and one of my
strategies is to get them thinking in terms of Linux, BUT show them
that Linux and Windows are NOT that dissimilar in reality. YES, I
know there are big differences where differences exist, BUT in general
Newbie terms, they are quite similar, they just are not the same.

Both have "Start" menus. Both have menu oriented GUIs. Shell is
similar to the command prompt. Partitions are the same. Folders are
just Directories. ETc...

I build from there and get into things like the filesystem
differences, and so forth, but to start with, I've found it's easier
to teach them if I do so using familiar things to compare...

So good luck with your hunt for your executables, OP...

I'll also add that you can usually find programs like this too:

bladernr@asuka:~$ locate egrep
/bin/bzegrep
/bin/egrep
/bin/zegrep
/usr/share/man/man1/bzegrep.1.gz
/usr/share/man/man1/egrep.1.gz
/usr/share/man/man1/zegrep.1.gz
bladernr@asuka:~$ find /bin -name egrep
/bin/egrep
bladernr@asuka:~$ find /bin -name *grep*
/bin/zfgrep
/bin/egrep
/bin/fgrep
/bin/zegrep
/bin/bzfgrep
/bin/bzgrep
/bin/zgrep
/bin/grep
/bin/bzegrep
bladernr@asuka:~$ which grep
/bin/grep
bladernr@asuka:~$

Cheers,

Jeff

--

Mike Ditka - "If God had wanted man to play soccer, he wouldn't have
given us arms." -
http://www.brainyquote.com/quotes/authors/m/mike_ditka.html

__._,_.___
To unsubscribe from this list, please email LINUX_Newbies-unsubscribe@yahoogroups.com & you will be removed.
.

__,_._,___

No comments:

Post a Comment