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>
|
569
|
9 <date>$Date: 2004/09/28 01:58:54 $</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
|
307
|
295 </chapter>
|
|
296
|
|
297 <!-- ***************************************************************** -->
|
|
298
|
|
299 <chapter>
|
|
300 <title>FTP Protocol</title>
|
|
301
|
306
|
302 <sect1>
|
|
303 <title>When gFTP tries to get the remote directory listing, the remote server
|
|
304 complains about either the -a or -L argument to LIST.</title>
|
|
305
|
|
306 <para>If the server is complaining about the -L option, go under
|
|
307 <emphasis>FTP->Options->FTP</emphasis> and disable resolve remote symlinks.
|
|
308 If it is complaining about the -a option, go to
|
|
309 <emphasis>FTP->Options->General</emphasis> and disable show hidden
|
|
310 files.</para>
|
|
311
|
|
312 </sect1>
|
|
313
|
|
314 <!-- ----------------------------------------------------------------- -->
|
|
315
|
|
316 <sect1>
|
|
317 <title>When gFTP tries to get the remote directory listing, I receive the
|
|
318 error: <emphasis>Cannot create a data connection: Connection
|
|
319 refused</emphasis></title>
|
|
320
|
|
321 <para>Go under <emphasis>FTP->Options->FTP</emphasis> and turn off passive
|
|
322 file transfers. Instead of sending the PASV command to open up the data
|
|
323 connection on the server side, the data connection will be opened up on the
|
|
324 client side, and the PORT command will be sent to the server instead.</para>
|
|
325
|
|
326 </sect1>
|
|
327
|
|
328 <!-- ----------------------------------------------------------------- -->
|
|
329
|
307
|
330 </chapter>
|
|
331
|
|
332 <!-- ***************************************************************** -->
|
|
333
|
|
334 <chapter>
|
|
335 <title>HTTP Protocol</title>
|
|
336
|
|
337 <sect1>
|
|
338 <title>How do I set up my HTTP Proxy server?</title>
|
|
339
|
|
340 <para>Go under <emphasis>FTP->Options</emphasis> and hit the FTP tab. Enter
|
|
341 HTTP as the proxy type and fill in your proxy server info on that screen.
|
|
342 Then hit the HTTP tab and enter your same proxy server info there.</para>
|
|
343
|
|
344 </sect1>
|
|
345
|
|
346 <!-- ----------------------------------------------------------------- -->
|
|
347
|
|
348 </chapter>
|
|
349
|
|
350 <!-- ***************************************************************** -->
|
|
351
|
|
352 <chapter>
|
554
|
353 <title>SSH Protocol</title>
|
|
354
|
|
355 <sect1>
|
|
356 <title>gFTP will not log into the remote SSH server when using a non-English
|
|
357 locale.</title>
|
|
358
|
567
|
359 <para>Note: This answer only applies to versions of gFTP >= 2.0.18</para>
|
|
360
|
554
|
361 <para>
|
|
362 You will need to download the source code to gFTP and edit the appropriate
|
|
363 po/<lang>.po file. You will need to make sure the following strings
|
|
364 are translated exactly as they appear in the SSH client.
|
|
365 </para>
|
|
366
|
|
367 <itemizedlist>
|
|
368 <listitem><simpara>Enter passphrase for RSA key</simpara></listitem>
|
|
369 <listitem><simpara>Enter passphrase for key</simpara></listitem>
|
|
370 <listitem><simpara>Password</simpara></listitem>
|
|
371 <listitem><simpara>password</simpara></listitem>
|
|
372 </itemizedlist>
|
|
373
|
|
374 <para>
|
|
375 Please upload the changes to the PO file to GNOME's CVS or email me the
|
|
376 updated PO file. If you email me the updates, please make sure that you
|
|
377 grab the latest PO file from CVS.
|
|
378 </para>
|
|
379
|
|
380 </sect1>
|
|
381
|
|
382 <!-- ----------------------------------------------------------------- -->
|
|
383
|
|
384 <sect1>
|
|
385 <title>I'm having problems getting SSH2 transfers to work. I keep getting the
|
567
|
386 error: <emphasis>Error: Message size XXXXXXXX too big from server</emphasis>
|
554
|
387 </title>
|
|
388
|
567
|
389 <para>Note: This answer only applies to versions of gFTP <= 2.0.17</para>
|
|
390
|
554
|
391 <para>What probably is the problem, sftp-server isn't in your path on the
|
|
392 remote server. When you try to connect to the remote server, you'll see the
|
|
393 command gFTP is trying to run, and it'll look something like:</para>
|
|
394
|
|
395 <para><literallayout><literal>ssh -e none -l username hostname "echo -n xsftp ; sftp-server"</literal></literallayout</para>
|
|
396
|
|
397 <para>Try running this command. If you get a prompt asking:</para>
|
|
398
|
|
399 <para><literallayout>
|
|
400 <literal>The authenticity of host 'hostname (###.###.###.###)' can't be established.</literal>
|
|
401 <literal>RSA key fingerprint is xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx.</literal>
|
|
402 <literal>Are you sure you want to continue connecting (yes/no)?</literal>
|
|
403 </literallayout></para>
|
|
404
|
|
405 <para>Tell it yes. gFTP won't even try to answer this question for you at the
|
|
406 moment. Then, if you get the following output:</para>
|
|
407
|
|
408 <para><literallayout>
|
|
409 <literal>Enter passphrase for key '/home/brian/.ssh/id_dsa':</literal>
|
|
410 <literal>xsftp</literal>
|
|
411 <literal>bash: sftp-server: command not found</literal>
|
|
412 </literallayout></para>
|
|
413
|
|
414 <para>You'll have to set the path to the sftp-server program. Alternatively
|
|
415 you could go under FTP->Options->SSH and enable Use sftp subsys. If you enable
|
|
416 this, then you don't have to know the remote path to your sftp executable.
|
|
417 But if you enable this, gFTP won't be able to send your password over to
|
|
418 the ssh client. So if you're not using ssh-agent, then ssh will spawn the
|
|
419 ssh-askpass program to grab your password.</para>
|
|
420
|
|
421 </sect1>
|
|
422
|
|
423 <!-- ----------------------------------------------------------------- -->
|
|
424
|
|
425 <sect1>
|
567
|
426 <title>What is the difference between the SSH and SSH2 protocols?</title>
|
|
427
|
|
428 <para>Note: This answer only applies to versions of gFTP <= 2.0.15</para>
|
554
|
429
|
|
430 <para>The SSH protocol uses sftp >= 0.7 from
|
|
431 <ulink url="http://www.xbill.org/sftp">http://www.xbill.org/sftp</ulink>.
|
|
432 SSH2 uses the native file transfers found in the commercial SSH2 and in later
|
|
433 versions of OpenSSH. The SSH2 protocol uses the sftp-server executable on
|
|
434 the remote host and the SSH protocol uses the sftpserv executable.</para>
|
|
435
|
|
436 <para>Note: Due to confusion, the origional SSH protocol was removed in gFTP
|
|
437 2.0.15. It is not shown in gFTP 2.0.14, but there is a config option called
|
|
438 enable_old_ssh to enable this protocol.</para>
|
|
439
|
|
440 </sect1>
|
|
441
|
|
442 <!-- ----------------------------------------------------------------- -->
|
|
443
|
|
444 </chapter>
|
|
445
|
|
446 <!-- ***************************************************************** -->
|
|
447
|
|
448 <chapter>
|
430
|
449 <title>SSL Issues</title>
|
|
450
|
|
451 <sect1>
|
|
452 <title>When using the FTPS or HTTPS protocol, gFTP cannot connect if the remote
|
|
453 server uses a self signed certificate.</title>
|
|
454
|
|
455 <para>You must add the public key of your self signed CA to your OpenSSL
|
|
456 certs directory. On my Debian box, the OpenSSL certs are installed in
|
|
457 /usr/lib/ssl/certs.</para>
|
|
458
|
|
459 </sect1>
|
|
460
|
|
461 </chapter>
|
|
462
|
|
463 <!-- ***************************************************************** -->
|
|
464
|
|
465 <chapter>
|
307
|
466 <title>Compiling Problems</title>
|
|
467
|
|
468 <sect1>
|
|
469 <title>When I try to compile gFTP, I see undefined symbol
|
|
470 <emphasis>libintl_gettext</emphasis>. Or, another error is
|
|
471 <emphasis>undefined symbol LC_ALL.</emphasis></title>
|
306
|
472
|
|
473 <para>Try running
|
|
474
|
|
475 <para><literallayout><literal>
|
|
476 make distclean ; configure --with-included-gettext.
|
|
477 </literal></literallayout></para>
|
|
478
|
|
479 <para>You could alternatively pass
|
|
480
|
|
481 <literallayout><literal>
|
|
482 --disable-nls
|
|
483 </literal></literallayout>
|
|
484
|
|
485 to configure, and internationalization support will not be compiled in.</para>
|
|
486
|
|
487 </sect1>
|
|
488
|
307
|
489 </chapter>
|
|
490
|
306
|
491 </book>
|