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>
|
460
|
9 <date>$Date: 2004/04/15 00:59:23 $</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
|
307
|
281 </chapter>
|
|
282
|
|
283 <!-- ***************************************************************** -->
|
|
284
|
|
285 <chapter>
|
|
286 <title>FTP Protocol</title>
|
|
287
|
306
|
288 <sect1>
|
|
289 <title>When gFTP tries to get the remote directory listing, the remote server
|
|
290 complains about either the -a or -L argument to LIST.</title>
|
|
291
|
|
292 <para>If the server is complaining about the -L option, go under
|
|
293 <emphasis>FTP->Options->FTP</emphasis> and disable resolve remote symlinks.
|
|
294 If it is complaining about the -a option, go to
|
|
295 <emphasis>FTP->Options->General</emphasis> and disable show hidden
|
|
296 files.</para>
|
|
297
|
|
298 </sect1>
|
|
299
|
|
300 <!-- ----------------------------------------------------------------- -->
|
|
301
|
|
302 <sect1>
|
|
303 <title>When gFTP tries to get the remote directory listing, I receive the
|
|
304 error: <emphasis>Cannot create a data connection: Connection
|
|
305 refused</emphasis></title>
|
|
306
|
|
307 <para>Go under <emphasis>FTP->Options->FTP</emphasis> and turn off passive
|
|
308 file transfers. Instead of sending the PASV command to open up the data
|
|
309 connection on the server side, the data connection will be opened up on the
|
|
310 client side, and the PORT command will be sent to the server instead.</para>
|
|
311
|
|
312 </sect1>
|
|
313
|
|
314 <!-- ----------------------------------------------------------------- -->
|
|
315
|
307
|
316 </chapter>
|
|
317
|
|
318 <!-- ***************************************************************** -->
|
|
319
|
|
320 <chapter>
|
|
321 <title>HTTP Protocol</title>
|
|
322
|
|
323 <sect1>
|
|
324 <title>How do I set up my HTTP Proxy server?</title>
|
|
325
|
|
326 <para>Go under <emphasis>FTP->Options</emphasis> and hit the FTP tab. Enter
|
|
327 HTTP as the proxy type and fill in your proxy server info on that screen.
|
|
328 Then hit the HTTP tab and enter your same proxy server info there.</para>
|
|
329
|
|
330 </sect1>
|
|
331
|
|
332 <!-- ----------------------------------------------------------------- -->
|
|
333
|
|
334 </chapter>
|
|
335
|
|
336 <!-- ***************************************************************** -->
|
|
337
|
|
338 <chapter>
|
430
|
339 <title>SSL Issues</title>
|
|
340
|
|
341 <sect1>
|
|
342 <title>When using the FTPS or HTTPS protocol, gFTP cannot connect if the remote
|
|
343 server uses a self signed certificate.</title>
|
|
344
|
|
345 <para>You must add the public key of your self signed CA to your OpenSSL
|
|
346 certs directory. On my Debian box, the OpenSSL certs are installed in
|
|
347 /usr/lib/ssl/certs.</para>
|
|
348
|
|
349 </sect1>
|
|
350
|
|
351 </chapter>
|
|
352
|
|
353 <!-- ***************************************************************** -->
|
|
354
|
|
355 <chapter>
|
307
|
356 <title>Compiling Problems</title>
|
|
357
|
|
358 <sect1>
|
|
359 <title>When I try to compile gFTP, I see undefined symbol
|
|
360 <emphasis>libintl_gettext</emphasis>. Or, another error is
|
|
361 <emphasis>undefined symbol LC_ALL.</emphasis></title>
|
306
|
362
|
|
363 <para>Try running
|
|
364
|
|
365 <para><literallayout><literal>
|
|
366 make distclean ; configure --with-included-gettext.
|
|
367 </literal></literallayout></para>
|
|
368
|
|
369 <para>You could alternatively pass
|
|
370
|
|
371 <literallayout><literal>
|
|
372 --disable-nls
|
|
373 </literal></literallayout>
|
|
374
|
|
375 to configure, and internationalization support will not be compiled in.</para>
|
|
376
|
|
377 </sect1>
|
|
378
|
|
379 <!-- ----------------------------------------------------------------- -->
|
|
380
|
|
381 <sect1>
|
|
382 <title>I am trying to compile your program and I get some parse errors before
|
|
383 GdkDragContext. What's wrong?</title>
|
|
384
|
|
385 <para>You have an older version of gtk installed on your system. If you are
|
|
386 using Red Hat or Debian Linux, simply remove the gtk and glib devel
|
|
387 packages. You can still leave the gtk 1.0 libraries installed.</para>
|
|
388
|
|
389 </sect1>
|
|
390
|
|
391 <!-- ----------------------------------------------------------------- -->
|
|
392
|
|
393 </chapter>
|
|
394
|
307
|
395 <!-- ***************************************************************** -->
|
|
396
|
|
397 <chapter>
|
|
398 <title>Issues for older releases</title>
|
|
399
|
|
400 <sect1>
|
460
|
401 <title>I'm having problems getting SSH2 transfers to work. I keep getting the
|
|
402 error: <emphasis>Error: Message size XXXXXXXX too big from server (only relevant for versions <= 2.0.17)</emphasis>
|
|
403 </title>
|
|
404
|
|
405 <para>What probably is the problem, sftp-server isn't in your path on the
|
|
406 remote server. When you try to connect to the remote server, you'll see the
|
|
407 command gFTP is trying to run, and it'll look something like:</para>
|
|
408
|
|
409 <para><literallayout><literal>ssh -e none -l username hostname "echo -n xsftp ; sftp-server"</literal></literallayout</para>
|
|
410
|
|
411 <para>Try running this command. If you get a prompt asking:</para>
|
|
412
|
|
413 <para><literallayout>
|
|
414 <literal>The authenticity of host 'hostname (###.###.###.###)' can't be established.</literal>
|
|
415 <literal>RSA key fingerprint is xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx.</literal>
|
|
416 <literal>Are you sure you want to continue connecting (yes/no)?</literal>
|
|
417 </literallayout></para>
|
|
418
|
|
419 <para>Tell it yes. gFTP won't even try to answer this question for you at the
|
|
420 moment. Then, if you get the following output:</para>
|
|
421
|
|
422 <para><literallayout>
|
|
423 <literal>Enter passphrase for key '/home/brian/.ssh/id_dsa':</literal>
|
|
424 <literal>xsftp</literal>
|
|
425 <literal>bash: sftp-server: command not found</literal>
|
|
426 </literallayout></para>
|
|
427
|
|
428 <para>You'll have to set the path to the sftp-server program. Alternatively
|
|
429 you could go under FTP->Options->SSH and enable Use sftp subsys. If you enable
|
|
430 this, then you don't have to know the remote path to your sftp executable.
|
|
431 But if you enable this, gFTP won't be able to send your password over to
|
|
432 the ssh client. So if you're not using ssh-agent, then ssh will spawn the
|
|
433 ssh-askpass program to grab your password.</para>
|
|
434
|
|
435 </sect1>
|
|
436
|
|
437 <sect1>
|
|
438 <title>What is the difference between the SSH and SSH2 protocols? (only relevant for versions <= 2.0.15)</title>
|
307
|
439
|
|
440 <para>The SSH protocol uses sftp >= 0.7 from
|
|
441 <ulink url="http://www.xbill.org/sftp">http://www.xbill.org/sftp</ulink>.
|
|
442 SSH2 uses the native file transfers found in the commercial SSH2 and in later
|
|
443 versions of OpenSSH. The SSH2 protocol uses the sftp-server executable on
|
|
444 the remote host and the SSH protocol uses the sftpserv executable.</para>
|
|
445
|
|
446 <para>Note: Due to confusion, the origional SSH protocol was removed in gFTP
|
|
447 2.0.15. It is not shown in gFTP 2.0.14, but there is a config option called
|
|
448 enable_old_ssh to enable this protocol.</para>
|
|
449
|
|
450 </sect1>
|
|
451
|
|
452 <!-- ----------------------------------------------------------------- -->
|
|
453
|
|
454 <sect1>
|
|
455 <title>I downloaded a binary off the internet and everytime I run gFTP I get an
|
|
456 error saying: <emphasis>undefined symbol :__register_frame_info</emphasis></title>
|
|
457
|
|
458 <para>ObiTuarY <obituary@freshmeat.net> says:</para>
|
|
459
|
|
460 <para>This happens when you compile a library with egcs. The library then has
|
|
461 the __register_frame_info symbol. If you link a program to it, it will
|
|
462 require this symbol. Now if you have the exact same library compiled with
|
|
463 gcc 2.7.2.3 it won't have this symbol. The thing about glibc 2.1 under Red
|
|
464 Hat 6 is it was compiled with egcs and glibc 2.0.x under Red Hat 5.x was
|
|
465 compiled with gcc 2.7.2.3, therefore it's not an incompatibility between
|
|
466 glibc 2.0.x and 2.1.x. What some people do for that is they get the .o file
|
|
467 of egcs with __register_frame_info in it and link into the program so it's
|
|
468 always there, that way it works with libs compiled with egcs or gcc 2.7.2.3.
|
|
469 (in /usr/lib/gcc-lib/i386-*-linux/egcs-*/ )"</para>
|
|
470
|
|
471 <para>Another alternative, is to recompile gFTP on your machine, or you can
|
|
472 download some RPMs off my website that were compiled against Red Hat
|
|
473 5.2.</para>
|
|
474
|
|
475 </sect1>
|
|
476
|
|
477 <!-- ----------------------------------------------------------------- -->
|
|
478
|
|
479 <sect1>
|
|
480 <title>I upgraded to a newer version of gFTP and now I am getting some warnings
|
|
481 about some config file lines not having enough arguments, and it cannot find
|
|
482 html.xpm.</title>
|
|
483
|
|
484 <para>This is from upgrading from a very old version of gFTP to a newer version.
|
|
485 I removed some icons from the distribution (0.20 to 0.21). Edit your
|
|
486 ~/.gftp/gftprc file. At the bottom of the file, there are some ext= lines.
|
|
487 Some of them have html.xpm, rpm.xpm and pdf.xpm. Remove these lines and gFTP
|
|
488 will startup fine. Don't worry about fixing he warnings...they will go away
|
|
489 themselves whenever you change an option in gFTP.</para>
|
|
490
|
|
491 </sect1>
|
|
492
|
|
493 <!-- ----------------------------------------------------------------- -->
|
|
494
|
|
495 <sect1>
|
|
496 <title>I have a libc 5 based machine and everytime I run gFTP it instantly
|
|
497 crashes. I get an error something like:
|
|
498 <emphasis>Gdk-ERROR **: an x io error occurred</emphasis></title>
|
|
499
|
|
500 <para>Your X libraries are not thread safe. They must be compiled with
|
|
501 -D_REENTRANT. You can either recompile your X libraries, or you can download
|
|
502 some from my webpage at
|
348
|
503 <ulink url="ftp://www.gftp.org/pub/gftp/libs/XFree86-libs-3.3-2_threading.i386.tgz">ftp://www.gftp.org/pub/gftp/libs/XFree86-libs-3.3-2_threading.i386.tgz</ulink></para>
|
307
|
504
|
|
505 </sect1>
|
|
506
|
|
507 <!-- ----------------------------------------------------------------- -->
|
|
508
|
|
509 </chapter>
|
|
510
|
306
|
511 </book>
|