306
|
1 <!doctype book PUBLIC "-//OASIS//DTD DocBook V3.1//EN" []>
|
307
|
2
|
|
3 <!-- Note: I used the format of the GTK+ FAQ to build this document -->
|
|
4 <!-- Please let me know if there are other ways to improve upon this -->
|
|
5
|
306
|
6 <book>
|
|
7
|
|
8 <bookinfo>
|
597
|
9 <date>$Date: 2004/10/27 22:18:29 $</date>
|
306
|
10 <title>gFTP FAQ</title>
|
|
11 <authorgroup>
|
|
12 <author>
|
|
13 <firstname>Brian</firstname>
|
|
14 <surname>Masney</surname>
|
|
15 </author>
|
|
16 </authorgroup>
|
307
|
17
|
|
18 <abstract>
|
|
19 <para>This document is intended to answer questions that are
|
|
20 likely to be frequently asked by users of gFTP.</para>
|
|
21 </abstract>
|
|
22
|
306
|
23 </bookinfo>
|
|
24
|
|
25 <toc></toc>
|
|
26
|
|
27 <!-- ***************************************************************** -->
|
307
|
28
|
306
|
29 <chapter>
|
|
30 <title>General Information</title>
|
|
31
|
|
32 <!-- ----------------------------------------------------------------- -->
|
|
33
|
|
34 <sect1>
|
307
|
35 <title>What are the requirements to run gFTP?</title>
|
|
36
|
|
37 <para>
|
|
38 <itemizedlist>
|
|
39 <listitem><simpara>
|
|
40 GTK+ 1.2.3 or higher. GTK+/Glib is included with most systems now. If you
|
|
41 don't have it installed, you may want to check to see if your vendor has a
|
|
42 package available. If not, you can download the latest version of GTK+ and
|
|
43 Glib from
|
|
44 <ulink url="ftp://ftp.gtk.org/pub/gtk">ftp://ftp.gtk.org/pub/gtk</ulink>.
|
430
|
45 gFTP will work with either version 1.2 or 2.x of GTK+, but I would recommend
|
|
46 using GTK+ 2.x.
|
307
|
47 </simpara></listitem>
|
|
48 <listitem><simpara>
|
|
49 pthread libraries. Most systems already satisfy this requirement. If you are
|
|
50 on a platform other than Linux, you may want to take a look at the FSU
|
|
51 Pthreads library at <ulink url="http://www.informatik.hu-berlin.de/~mueller/pthreads">http://www.informatik.hu-berlin.de/~mueller/pthreads</ulink>.
|
|
52 </simpara></listitem>
|
|
53 </itemizedlist>
|
|
54 </para>
|
|
55
|
|
56 </sect1>
|
|
57
|
|
58 <!-- ----------------------------------------------------------------- -->
|
|
59
|
|
60 <sect1>
|
|
61 <title>How do I install gFTP?</title>
|
|
62
|
|
63 <para>
|
|
64 <itemizedlist>
|
|
65
|
|
66 <listitem><simpara>
|
|
67 If you do not want to compile gFTP yourself, you can check my webpage. I have
|
|
68 DEBs for Debian and RPMs for RedHat available. If you're looking for Solaris
|
|
69 binaries, check out <ulink url="http://www.sunfreeware.com">http://www.sunfreeware.com</ulink>.
|
|
70 </simpara></listitem>
|
|
71
|
|
72 <listitem><simpara>
|
|
73 If you are compiling gFTP yourself, extract the files from the distribution
|
|
74 with tar -zxvf gftp-<version>.tar.gz
|
|
75 </simpara></listitem>
|
|
76
|
|
77 <listitem><simpara>
|
|
78 Go to the gftp-<version> directory and type
|
|
79 </simpara>
|
|
80
|
|
81 <literallayout>
|
|
82 <literal>./configure</literal>
|
|
83 <literal>make</literal>
|
|
84 </literallayout>
|
|
85
|
|
86 <simpara>
|
|
87 The configure script will generate a Makefile for your machine, and make
|
|
88 will compile a binary for your machine. By default, when you run
|
|
89 configure, it will install gFTP with the prefix /usr/local, so the gFTP
|
|
90 binary will be /usr/local/bin/gftp. You can change this by typing
|
|
91 configure --prefix=/usr, and it will then install the gFTP binary to
|
|
92 /usr/bin/gftp.
|
|
93 </simpara>
|
|
94 </listitem>
|
|
95
|
|
96 <listitem><simpara>
|
|
97 If the compile suceeds without any errors, you can type make install to
|
|
98 install the binary. This will also copy some necessary
|
|
99 files to <install prefix>/share/gftp. If you do not have root on your
|
|
100 machine to install these files, copy the contents of the docs/sample.gftp/
|
|
101 directory to ~/.gftp.
|
|
102 </simpara></listitem>
|
|
103 <listitem><simpara>
|
|
104 You may want to glance at the USERS-GUIDE file that comes with this
|
|
105 distribution. It contains a little bit of information about how to use it.
|
|
106 </simpara></listitem>
|
|
107
|
|
108 </itemizedlist>
|
|
109 </para>
|
|
110
|
|
111 </sect1>
|
|
112
|
|
113 <!-- ----------------------------------------------------------------- -->
|
|
114
|
|
115 <sect1>
|
306
|
116 <title>What systems is gFTP known to run on?</title>
|
|
117
|
307
|
118 <para>I develop gFTP on a Debian GNU/Linux machine. It should run under
|
|
119 any other Linux distributions. Here is a list of other platforms I have
|
|
120 received successful compile reports:</para>
|
306
|
121
|
|
122 <itemizedlist>
|
|
123 <listitem><simpara>FreeBSD/NetBSD/OpenBSD/BSDI</simpara></listitem>
|
|
124 <listitem><simpara>Solaris</simpara></listitem>
|
|
125 <listitem><simpara>IRIX</simpara></listitem>
|
|
126 <listitem><simpara>Digital UNIX</simpara></listitem>
|
|
127 <listitem><simpara>HP/UX 11</simpara></listitem>
|
|
128 </itemizedlist>
|
|
129
|
|
130 <para>If gFTP compiles and runs on a platform not listed here, please email me
|
|
131 about it and I'll add it to this list. If you are having problems compiling
|
|
132 GTK+ or gFTP on another platform, try using GNU make instead of your vendor
|
|
133 supplied make.</para>
|
|
134 </sect1>
|
|
135
|
|
136 <!-- ----------------------------------------------------------------- -->
|
|
137
|
|
138 <sect1>
|
307
|
139 <title>Does gFTP have a CVS repository?</title>
|
|
140
|
|
141 <para>gFTP is stored in GNOME's CVS repository. For instructions on how to
|
|
142 setup your CVS client, you can visit the webpage
|
|
143 <ulink url="http://developer.gnome.org/tools/cvs.html">http://developer.gnome.org/tools/cvs.html</ulink> for instructions. In a nutshell, you will need to run
|
|
144 the following commands (this assumes you are using the <emphasis>bash</emphasis>
|
|
145 shell):</para>
|
|
146
|
|
147 <para>
|
|
148
|
|
149 <literallayout>
|
|
150 <literal>export CVSROOT=":pserver:anonymous@anoncvs.gnome.org:/cvs/gnome"</literal>
|
|
151 <literal>cvs login</literal>
|
|
152 </literallayout>
|
306
|
153
|
307
|
154 Just hit enter at the password prompt since there is no password.
|
|
155
|
|
156 <literallayout>
|
|
157 <literal>cvs co gftp</literal>
|
|
158 </literallayout>
|
306
|
159
|
307
|
160 </para>
|
306
|
161
|
307
|
162 <para>
|
|
163 To compile the CVS code, you will need <emphasis>autoconf</emphasis>,
|
|
164 <emphasis>automake 1.4</emphasis> and <emphasis>gettext</emphasis>
|
|
165 installed on your system. To generate a configure script, you will
|
|
166 need to run <emphasis>autogen.sh</emphasis>. Once this script is
|
|
167 generated, you can follow the normal installation instructions.
|
306
|
168
|
307
|
169 </sect1>
|
306
|
170
|
307
|
171 <!-- ----------------------------------------------------------------- -->
|
|
172
|
|
173 <sect1>
|
|
174 <title>How do I report bugs in gFTP?</title>
|
306
|
175
|
307
|
176 <para>If you find ANY bugs in gFTP, please check to make sure that you are using
|
|
177 the latest version of gFTP. If you are, please submit all bug reports to
|
|
178 GNOME's Bugzilla. When sending in bug reports, please try to be as
|
|
179 descriptive as possible. Send me what OS/version you are running, what
|
|
180 compiler you are compiling with, the output of <emphasis>gftp --info</emphasis>
|
|
181 and any other important information. If you get gFTP to crash, it would be very
|
|
182 helpful if you could send me a backtrace. If you do not know how to do a
|
|
183 backtrace, download the source code from my website. Edit the Makefile, and
|
|
184 make sure that -g appears in the CFLAGS variable. Then recompile gFTP, but do
|
|
185 NOT run make install because it will install a stripped binary in $PREFIX/bin.
|
|
186 Then type gdb ./gftp. Once you have a (gdb) prompt, type r. When gFTP crashes,
|
|
187 go back to that terminal window, and type bt, and put that output in the bug
|
|
188 that you file with bugzilla.</para>
|
306
|
189
|
307
|
190 <para>I also have a gftp-users mailinglist setup. I have a link to the archives
|
|
191 on my main webpage. If it is strictly a bug report, please submit it to
|
|
192 Bugzilla instead of the mailinglist. Bugs that are submitted to bugzilla are
|
|
193 much easier for me to track.</para>
|
|
194
|
|
195 <para>Also, if you do not get a response back from me immediately, that is not
|
|
196 uncommon. I usually stay very busy and I don't get to work on gFTP all of the
|
|
197 time.</para>
|
306
|
198
|
|
199 </sect1>
|
|
200
|
|
201 <!-- ----------------------------------------------------------------- -->
|
|
202
|
|
203 <sect1>
|
|
204 <title>How do I force running the text or gtk+ version of gFTP?</title>
|
|
205
|
|
206 <para>
|
|
207 To run the text port, you can type gftp-text or to run the gtk+ port,
|
|
208 you can run the gftp-gtk. The gftp command is just a shell script that checks
|
|
209 if your DISPLAY variable is set, and if so it'll run the appropriate version.
|
|
210 </para>
|
|
211
|
|
212 </sect1>
|
|
213
|
|
214 <!-- ----------------------------------------------------------------- -->
|
|
215
|
|
216 <sect1>
|
|
217 <title>Is there a way for gFTP to download a bunch of files/directories and
|
|
218 then exit when it's completed?</title>
|
|
219
|
|
220 <para>Yes, the text port of gFTP supports this well. You can type:</para>
|
|
221
|
|
222 <para><literallayout><literal>
|
|
223 gftp-text -d ftp://ftp.somesite.com/someplace
|
|
224 </literal></literallayout></para>
|
|
225
|
|
226 <para>
|
|
227 If someplace is a directory, it'll automatically download all of its
|
|
228 subdirectories as well. If you want to transfer a file through ssh instead
|
|
229 of ftp, just change the <emphasis>ftp://</emphasis> to
|
|
230 <emphasis>ssh://</emphasis>.
|
|
231 </para>
|
|
232
|
|
233 </sect1>
|
|
234
|
|
235 <!-- ----------------------------------------------------------------- -->
|
|
236
|
|
237 <sect1>
|
|
238 <title>In the GTK+ version of gFTP, do I have to enter a port, username and
|
|
239 password to connect to a ftp server?</title>
|
|
240
|
|
241 <para>No you don't. If you leave the port blank, it'll default to the default
|
|
242 port for the protocol you selected (port 21 for FTP). If you leave the
|
|
243 username blank, it will default to logging in as anonymous.</para>
|
|
244
|
|
245 </sect1>
|
|
246
|
|
247 <!-- ----------------------------------------------------------------- -->
|
|
248
|
|
249 <sect1>
|
307
|
250 <title>Where does gFTP store it's options?</title>
|
306
|
251
|
307
|
252 <para>gFTP will automatically create a ~/.gftp directory when it is first run.
|
310
|
253 Your config file is <emphasis>~/.gftp/gftprc</emphasis>, and this is where
|
|
254 all of gFTP's settings are stored. The config file is well commented, so take
|
|
255 a glance at it and see if there is anything you want to change. Your bookmarks
|
|
256 are stored in the file <emphasis>~/.gftp/bookmarks</emphasis>.</para>
|
|
257
|
|
258 <para>Every time gFTP is run, it will log the contents of the log window
|
|
259 to <emphasis>~/.gftp/gftp.log</emphasis>. The contents of this file will be
|
|
260 automatically purged this file when gFTP is started up.</para>
|
|
261
|
|
262 </sect1>
|
|
263
|
|
264 <!-- ----------------------------------------------------------------- -->
|
|
265
|
|
266 <sect1>
|
|
267 <title>Why aren't the file sizes comma separated?</title>
|
|
268
|
|
269 <para>
|
|
270 If gFTP was compiled with _GNU_SOURCE defined (run
|
|
271 <emphasis>gftp --info</emphasis>), then gFTP will use the printf() modifier
|
|
272 %'ld. If your <emphasis>LANG</emphasis> environment is set to C, then no
|
|
273 commas will be inserted. If you are in the US, change your
|
|
274 <emphasis>LANG</emphasis> environment variable to <emphasis>en_US</emphasis>.
|
|
275 </para>
|
306
|
276
|
|
277 </sect1>
|
|
278
|
|
279 <!-- ----------------------------------------------------------------- -->
|
|
280
|
556
|
281 <sect1>
|
|
282 <title>When using an external editor, gFTP does not detect changes that are being made to the file.</title>
|
|
283
|
|
284 <para>
|
|
285 Look at the man page for the editor you are using and see if there is a
|
|
286 command line argument to have the editor run in the foreground (it won't
|
|
287 fork to detact from the current terminal). If you are using one of the
|
567
|
288 graphical VIM editors, you can add the <emphasis>--nofork</emphasis> argument.
|
556
|
289 </para>
|
|
290
|
|
291 </sect1>
|
|
292
|
|
293 <!-- ----------------------------------------------------------------- -->
|
|
294
|
597
|
295 <sect1>
|
|
296 <title>How can I increase the size of the fonts in gFTP?</title>
|
|
297
|
|
298 <para>
|
|
299 You can use the gnome-font-properties program to change the fonts used by
|
|
300 all GTK+ 2.x applications.
|
|
301 </para>
|
|
302
|
|
303 </sect1>
|
|
304
|
|
305 <!-- ----------------------------------------------------------------- -->
|
|
306
|
307
|
307 </chapter>
|
|
308
|
|
309 <!-- ***************************************************************** -->
|
|
310
|
|
311 <chapter>
|
|
312 <title>FTP Protocol</title>
|
|
313
|
306
|
314 <sect1>
|
|
315 <title>When gFTP tries to get the remote directory listing, the remote server
|
|
316 complains about either the -a or -L argument to LIST.</title>
|
|
317
|
|
318 <para>If the server is complaining about the -L option, go under
|
|
319 <emphasis>FTP->Options->FTP</emphasis> and disable resolve remote symlinks.
|
|
320 If it is complaining about the -a option, go to
|
|
321 <emphasis>FTP->Options->General</emphasis> and disable show hidden
|
|
322 files.</para>
|
|
323
|
|
324 </sect1>
|
|
325
|
|
326 <!-- ----------------------------------------------------------------- -->
|
|
327
|
|
328 <sect1>
|
|
329 <title>When gFTP tries to get the remote directory listing, I receive the
|
|
330 error: <emphasis>Cannot create a data connection: Connection
|
|
331 refused</emphasis></title>
|
|
332
|
|
333 <para>Go under <emphasis>FTP->Options->FTP</emphasis> and turn off passive
|
|
334 file transfers. Instead of sending the PASV command to open up the data
|
|
335 connection on the server side, the data connection will be opened up on the
|
|
336 client side, and the PORT command will be sent to the server instead.</para>
|
|
337
|
|
338 </sect1>
|
|
339
|
|
340 <!-- ----------------------------------------------------------------- -->
|
|
341
|
307
|
342 </chapter>
|
|
343
|
|
344 <!-- ***************************************************************** -->
|
|
345
|
|
346 <chapter>
|
|
347 <title>HTTP Protocol</title>
|
|
348
|
|
349 <sect1>
|
|
350 <title>How do I set up my HTTP Proxy server?</title>
|
|
351
|
|
352 <para>Go under <emphasis>FTP->Options</emphasis> and hit the FTP tab. Enter
|
|
353 HTTP as the proxy type and fill in your proxy server info on that screen.
|
|
354 Then hit the HTTP tab and enter your same proxy server info there.</para>
|
|
355
|
|
356 </sect1>
|
|
357
|
|
358 <!-- ----------------------------------------------------------------- -->
|
|
359
|
|
360 </chapter>
|
|
361
|
|
362 <!-- ***************************************************************** -->
|
|
363
|
|
364 <chapter>
|
554
|
365 <title>SSH Protocol</title>
|
|
366
|
|
367 <sect1>
|
|
368 <title>gFTP will not log into the remote SSH server when using a non-English
|
|
369 locale.</title>
|
|
370
|
567
|
371 <para>Note: This answer only applies to versions of gFTP >= 2.0.18</para>
|
|
372
|
554
|
373 <para>
|
|
374 You will need to download the source code to gFTP and edit the appropriate
|
|
375 po/<lang>.po file. You will need to make sure the following strings
|
|
376 are translated exactly as they appear in the SSH client.
|
|
377 </para>
|
|
378
|
|
379 <itemizedlist>
|
|
380 <listitem><simpara>Enter passphrase for RSA key</simpara></listitem>
|
|
381 <listitem><simpara>Enter passphrase for key</simpara></listitem>
|
|
382 <listitem><simpara>Password</simpara></listitem>
|
|
383 <listitem><simpara>password</simpara></listitem>
|
|
384 </itemizedlist>
|
|
385
|
|
386 <para>
|
|
387 Please upload the changes to the PO file to GNOME's CVS or email me the
|
|
388 updated PO file. If you email me the updates, please make sure that you
|
|
389 grab the latest PO file from CVS.
|
|
390 </para>
|
|
391
|
|
392 </sect1>
|
|
393
|
|
394 <!-- ----------------------------------------------------------------- -->
|
|
395
|
|
396 <sect1>
|
|
397 <title>I'm having problems getting SSH2 transfers to work. I keep getting the
|
567
|
398 error: <emphasis>Error: Message size XXXXXXXX too big from server</emphasis>
|
554
|
399 </title>
|
|
400
|
567
|
401 <para>Note: This answer only applies to versions of gFTP <= 2.0.17</para>
|
|
402
|
554
|
403 <para>What probably is the problem, sftp-server isn't in your path on the
|
|
404 remote server. When you try to connect to the remote server, you'll see the
|
|
405 command gFTP is trying to run, and it'll look something like:</para>
|
|
406
|
|
407 <para><literallayout><literal>ssh -e none -l username hostname "echo -n xsftp ; sftp-server"</literal></literallayout</para>
|
|
408
|
|
409 <para>Try running this command. If you get a prompt asking:</para>
|
|
410
|
|
411 <para><literallayout>
|
|
412 <literal>The authenticity of host 'hostname (###.###.###.###)' can't be established.</literal>
|
|
413 <literal>RSA key fingerprint is xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx.</literal>
|
|
414 <literal>Are you sure you want to continue connecting (yes/no)?</literal>
|
|
415 </literallayout></para>
|
|
416
|
|
417 <para>Tell it yes. gFTP won't even try to answer this question for you at the
|
|
418 moment. Then, if you get the following output:</para>
|
|
419
|
|
420 <para><literallayout>
|
|
421 <literal>Enter passphrase for key '/home/brian/.ssh/id_dsa':</literal>
|
|
422 <literal>xsftp</literal>
|
|
423 <literal>bash: sftp-server: command not found</literal>
|
|
424 </literallayout></para>
|
|
425
|
|
426 <para>You'll have to set the path to the sftp-server program. Alternatively
|
|
427 you could go under FTP->Options->SSH and enable Use sftp subsys. If you enable
|
|
428 this, then you don't have to know the remote path to your sftp executable.
|
|
429 But if you enable this, gFTP won't be able to send your password over to
|
|
430 the ssh client. So if you're not using ssh-agent, then ssh will spawn the
|
|
431 ssh-askpass program to grab your password.</para>
|
|
432
|
|
433 </sect1>
|
|
434
|
|
435 <!-- ----------------------------------------------------------------- -->
|
|
436
|
|
437 <sect1>
|
567
|
438 <title>What is the difference between the SSH and SSH2 protocols?</title>
|
|
439
|
|
440 <para>Note: This answer only applies to versions of gFTP <= 2.0.15</para>
|
554
|
441
|
|
442 <para>The SSH protocol uses sftp >= 0.7 from
|
|
443 <ulink url="http://www.xbill.org/sftp">http://www.xbill.org/sftp</ulink>.
|
|
444 SSH2 uses the native file transfers found in the commercial SSH2 and in later
|
|
445 versions of OpenSSH. The SSH2 protocol uses the sftp-server executable on
|
|
446 the remote host and the SSH protocol uses the sftpserv executable.</para>
|
|
447
|
|
448 <para>Note: Due to confusion, the origional SSH protocol was removed in gFTP
|
|
449 2.0.15. It is not shown in gFTP 2.0.14, but there is a config option called
|
|
450 enable_old_ssh to enable this protocol.</para>
|
|
451
|
|
452 </sect1>
|
|
453
|
|
454 <!-- ----------------------------------------------------------------- -->
|
|
455
|
|
456 </chapter>
|
|
457
|
|
458 <!-- ***************************************************************** -->
|
|
459
|
|
460 <chapter>
|
430
|
461 <title>SSL Issues</title>
|
|
462
|
|
463 <sect1>
|
|
464 <title>When using the FTPS or HTTPS protocol, gFTP cannot connect if the remote
|
|
465 server uses a self signed certificate.</title>
|
|
466
|
|
467 <para>You must add the public key of your self signed CA to your OpenSSL
|
|
468 certs directory. On my Debian box, the OpenSSL certs are installed in
|
|
469 /usr/lib/ssl/certs.</para>
|
|
470
|
|
471 </sect1>
|
|
472
|
|
473 </chapter>
|
|
474
|
|
475 <!-- ***************************************************************** -->
|
|
476
|
|
477 <chapter>
|
307
|
478 <title>Compiling Problems</title>
|
|
479
|
|
480 <sect1>
|
|
481 <title>When I try to compile gFTP, I see undefined symbol
|
|
482 <emphasis>libintl_gettext</emphasis>. Or, another error is
|
|
483 <emphasis>undefined symbol LC_ALL.</emphasis></title>
|
306
|
484
|
|
485 <para>Try running
|
|
486
|
|
487 <para><literallayout><literal>
|
|
488 make distclean ; configure --with-included-gettext.
|
|
489 </literal></literallayout></para>
|
|
490
|
|
491 <para>You could alternatively pass
|
|
492
|
|
493 <literallayout><literal>
|
|
494 --disable-nls
|
|
495 </literal></literallayout>
|
|
496
|
|
497 to configure, and internationalization support will not be compiled in.</para>
|
|
498
|
|
499 </sect1>
|
|
500
|
307
|
501 </chapter>
|
|
502
|
306
|
503 </book>
|