Next: Obtaining Tramp, Up: Top [Contents][Index]
After the installation of TRAMP into your Emacs, you
will be able to access files on remote hosts as though they were
local. Access to the remote file system for editing files, version
control, and dired
are transparently enabled.
Your access to the remote host can be with the rsh
,
rlogin
, telnet
programs or with any similar
connection method. This connection must pass ASCII
successfully to be usable but need not be 8-bit clean.
The package provides support for ssh
connections out of the
box, one of the more common uses of the package. This allows
relatively secure access to hosts, especially if ftp
access is disabled.
Under Windows, TRAMP is integrated with the PuTTY package,
using the plink
program.
The majority of activity carried out by TRAMP requires only that the remote login is possible and is carried out at the terminal. In order to access remote files TRAMP needs to transfer their content to the local host temporarily.
TRAMP can transfer files between the hosts in a variety of ways. The details are easy to select, depending on your needs and the hosts in question.
The fastest transfer methods for large files rely on a remote file
transfer package such as rcp
, scp
, rsync
or (under Windows) pscp
.
If the remote copy methods are not suitable for you, TRAMP also
supports the use of encoded transfers directly through the shell.
This requires that the mimencode
or uuencode
tools
are available on the remote host. These methods are generally
faster for small files.
TRAMP is still under active development and any problems you encounter, trivial or major, should be reported to the TRAMP developers. See Bug Reports.
This section tries to explain what goes on behind the scenes when you access a remote file through TRAMP.
Suppose you type C-x C-f and enter part of an TRAMP file name, then hit TAB for completion. Suppose further that this is the first time that TRAMP is invoked for the host in question. Here’s what happens:
telnet
).
The login name is given in the file name, so TRAMP sends the
login name and a newline.
rsh
or for telnet
after sending the login name).
TRAMP displays the prompt in the minibuffer, asking you for the
password or pass phrase.
You enter the password or pass phrase. TRAMP sends it to the remote host, followed by a newline.
If TRAMP sees neither of them after a certain period of time (a minute, say), then it issues an error message saying that it couldn’t find the remote shell prompt and shows you what the remote host has sent.
If TRAMP sees a ‘login failed’ message, it tells you so, aborts the login attempt and allows you to try again.
/bin/sh
because
Bourne shells and C shells have different command
syntaxes.1
After the Bourne shell has come up, TRAMP sends a few commands to ensure a good working environment. It turns off echoing, it sets the shell prompt, and a few other things.
So, TRAMP basically issues cd
and ls
commands and
also sometimes echo
with globbing. Another command that is
often used is test
to find out whether a file is writable or a
directory or the like. The output of each command is parsed for the
necessary operation.
See above for an explanation of how TRAMP transfers the file contents.
For inline transfers, TRAMP issues a command like ‘mimencode -b /path/to/remote/file’, waits until the output has accumulated in the buffer that’s used for communication, then decodes that output to produce the file contents.
For external transfers, TRAMP issues a command like the following:
rcp user@host:/path/to/remote/file /tmp/tramp.4711
It then reads the local temporary file /tmp/tramp.4711 into a buffer and deletes the temporary file.
I hope this has provided you with a basic overview of what happens behind the scenes when you open a file with TRAMP.
Invoking /bin/sh
will fail if your login
shell doesn’t recognize ‘exec /bin/sh’ as a valid command.
Maybe you use the Scheme shell scsh
…
Next: Obtaining Tramp, Up: Top [Contents][Index]