If you’re a seasoned Linux SysAdmin, you’ll miss LFTP. It’s a really powerful FTP client. Yes, you can also install it using MacPorts or Fink but right now, this is much quicker for me.
Here’s how I built LFTP 4.3.6 on my MacBook Pro. For the record, I’m on 10.7.3
Prerequisite: Apple developer tools (Xcode)
1. Download The GNU Readline Library (The library that came with OS X will not work). This is how I built Readline 6.2:
$ cd /where/readline/was/extracted $ ./configure --prefix="/usr/local" --disable-shared && make && sudo make install |
This will build a static library and install in it /usr/local
2. Make sure the library (libreadline.a) was built successfully in /usr/local/lib
3. Download LFTP and build it:
$ cd /where/lftp/was/extracted $ CXXFLAGS="-O0 -Wall -fno-exceptions -fno-rtti -fno-implement-inlines" \ LDFLAGS="-Xlinker -search_paths_first -L/usr/local/lib" \ CPPFLAGS="-I/usr/local/include" \ ./configure --with-openssl --disable-shared --disable-nls $ make && sudo make install |
In the lftp configure line, the “-Xlinker -search_paths_first” is necessary so that the linker will not prefer the system shared /usr/lib/libreadline.dylib to the static libreadline.a we just compiled.
The final binary will be installed into your /usr/local/bin/lftp and if your build was successful you should be able to run “lftp” and get the prompt:
lftp :~> |
My LFTP version:
LFTP | Version 4.3.6 | Copyright (c) 1996-2012 Alexander V. Lukyanov LFTP is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with LFTP. If not, see <http: //www.gnu.org/licenses/>. Send bug reports and questions to the mailing list lftp at uniyar.ac.ru. Libraries used: Readline 6.2, Expat 2.0.1, OpenSSL 0.9.8r 8 Feb 2011, libiconv 1.11, zlib 1.2.5 |
Good luck!
Perhaps some of you arrived by searching for “error: ‘rl_kill_full_line’ was not declared in this scope”. Yep, the above steps should help you.
Thanks! This worked great. I first ran into problems when configure couldn’t find LIBGNUTLS. Â Per your instructions, –with-openssl fixed that, but there wasn’t much chance of me figuring this or the other configuration options out in a timely manner.