@fredlackey/devutils 0.0.1 → 0.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -5
- package/package.json +1 -1
- package/src/commands/install.js +374 -36
- package/src/installs/adobe-creative-cloud.js +527 -25
- package/src/installs/adobe-creative-cloud.md +605 -0
- package/src/installs/appcleaner.js +303 -26
- package/src/installs/appcleaner.md +699 -0
- package/src/installs/apt-transport-https.js +390 -0
- package/src/installs/apt-transport-https.md +678 -0
- package/src/installs/atomicparsley.js +624 -26
- package/src/installs/atomicparsley.md +795 -0
- package/src/installs/aws-cli.js +779 -26
- package/src/installs/aws-cli.md +727 -0
- package/src/installs/balena-etcher.js +688 -26
- package/src/installs/balena-etcher.md +761 -0
- package/src/installs/bambu-studio.js +912 -26
- package/src/installs/bambu-studio.md +780 -0
- package/src/installs/bash-completion.js +554 -23
- package/src/installs/bash-completion.md +833 -0
- package/src/installs/bash.js +399 -26
- package/src/installs/bash.md +993 -0
- package/src/installs/beyond-compare.js +585 -26
- package/src/installs/beyond-compare.md +813 -0
- package/src/installs/build-essential.js +511 -26
- package/src/installs/build-essential.md +977 -0
- package/src/installs/ca-certificates.js +618 -0
- package/src/installs/ca-certificates.md +937 -0
- package/src/installs/caffeine.js +490 -26
- package/src/installs/caffeine.md +839 -0
- package/src/installs/camtasia.js +577 -25
- package/src/installs/camtasia.md +762 -0
- package/src/installs/chatgpt.js +458 -26
- package/src/installs/chatgpt.md +814 -0
- package/src/installs/chocolatey.js +447 -0
- package/src/installs/chocolatey.md +661 -0
- package/src/installs/chrome-canary.js +472 -26
- package/src/installs/chrome-canary.md +641 -0
- package/src/installs/chromium.js +645 -26
- package/src/installs/chromium.md +838 -0
- package/src/installs/claude-code.js +558 -26
- package/src/installs/claude-code.md +1173 -0
- package/src/installs/curl.js +361 -26
- package/src/installs/curl.md +714 -0
- package/src/installs/cursor.js +561 -26
- package/src/installs/cursor.md +970 -0
- package/src/installs/dbschema.js +674 -26
- package/src/installs/dbschema.md +925 -0
- package/src/installs/dependencies.md +435 -0
- package/src/installs/development-tools.js +600 -0
- package/src/installs/development-tools.md +977 -0
- package/src/installs/docker.js +1010 -25
- package/src/installs/docker.md +1109 -0
- package/src/installs/drawio.js +1001 -26
- package/src/installs/drawio.md +795 -0
- package/src/installs/elmedia-player.js +328 -25
- package/src/installs/elmedia-player.md +556 -0
- package/src/installs/ffmpeg.js +870 -25
- package/src/installs/ffmpeg.md +852 -0
- package/src/installs/file.js +464 -0
- package/src/installs/file.md +987 -0
- package/src/installs/gemini-cli.js +793 -26
- package/src/installs/gemini-cli.md +1153 -0
- package/src/installs/git.js +382 -26
- package/src/installs/git.md +907 -0
- package/src/installs/gitego.js +931 -26
- package/src/installs/gitego.md +1172 -0
- package/src/installs/go.js +913 -26
- package/src/installs/go.md +958 -0
- package/src/installs/google-chrome.js +801 -25
- package/src/installs/google-chrome.md +862 -0
- package/src/installs/gpg.js +412 -73
- package/src/installs/gpg.md +1056 -0
- package/src/installs/homebrew.js +1015 -26
- package/src/installs/homebrew.md +988 -0
- package/src/installs/imageoptim.js +950 -26
- package/src/installs/imageoptim.md +1119 -0
- package/src/installs/installers.json +2297 -0
- package/src/installs/jq.js +382 -26
- package/src/installs/jq.md +809 -0
- package/src/installs/keyboard-maestro.js +701 -26
- package/src/installs/keyboard-maestro.md +825 -0
- package/src/installs/latex.js +771 -26
- package/src/installs/latex.md +1095 -0
- package/src/installs/lftp.js +338 -26
- package/src/installs/lftp.md +907 -0
- package/src/installs/lsb-release.js +346 -0
- package/src/installs/lsb-release.md +814 -0
- package/src/installs/messenger.js +829 -26
- package/src/installs/messenger.md +900 -0
- package/src/installs/microsoft-office.js +550 -26
- package/src/installs/microsoft-office.md +760 -0
- package/src/installs/microsoft-teams.js +782 -25
- package/src/installs/microsoft-teams.md +886 -0
- package/src/installs/node.js +886 -26
- package/src/installs/node.md +1153 -0
- package/src/installs/nordpass.js +698 -26
- package/src/installs/nordpass.md +921 -0
- package/src/installs/nvm.js +977 -26
- package/src/installs/nvm.md +1057 -0
- package/src/installs/openssh.js +734 -64
- package/src/installs/openssh.md +1056 -0
- package/src/installs/pandoc.js +644 -26
- package/src/installs/pandoc.md +1036 -0
- package/src/installs/pinentry.js +492 -26
- package/src/installs/pinentry.md +1142 -0
- package/src/installs/pngyu.js +851 -26
- package/src/installs/pngyu.md +896 -0
- package/src/installs/postman.js +781 -26
- package/src/installs/postman.md +940 -0
- package/src/installs/procps.js +425 -0
- package/src/installs/procps.md +851 -0
- package/src/installs/safari-tech-preview.js +355 -25
- package/src/installs/safari-tech-preview.md +533 -0
- package/src/installs/sfnt2woff.js +640 -26
- package/src/installs/sfnt2woff.md +795 -0
- package/src/installs/shellcheck.js +463 -26
- package/src/installs/shellcheck.md +1005 -0
- package/src/installs/slack.js +722 -25
- package/src/installs/slack.md +865 -0
- package/src/installs/snagit.js +566 -25
- package/src/installs/snagit.md +844 -0
- package/src/installs/software-properties-common.js +372 -0
- package/src/installs/software-properties-common.md +805 -0
- package/src/installs/spotify.js +858 -25
- package/src/installs/spotify.md +901 -0
- package/src/installs/studio-3t.js +803 -26
- package/src/installs/studio-3t.md +918 -0
- package/src/installs/sublime-text.js +780 -25
- package/src/installs/sublime-text.md +914 -0
- package/src/installs/superwhisper.js +687 -25
- package/src/installs/superwhisper.md +630 -0
- package/src/installs/tailscale.js +727 -26
- package/src/installs/tailscale.md +1100 -0
- package/src/installs/tar.js +389 -0
- package/src/installs/tar.md +946 -0
- package/src/installs/termius.js +780 -26
- package/src/installs/termius.md +844 -0
- package/src/installs/terraform.js +761 -26
- package/src/installs/terraform.md +899 -0
- package/src/installs/tidal.js +752 -25
- package/src/installs/tidal.md +864 -0
- package/src/installs/tmux.js +328 -26
- package/src/installs/tmux.md +1030 -0
- package/src/installs/tree.js +393 -26
- package/src/installs/tree.md +833 -0
- package/src/installs/unzip.js +460 -0
- package/src/installs/unzip.md +879 -0
- package/src/installs/vim.js +403 -26
- package/src/installs/vim.md +1040 -0
- package/src/installs/vlc.js +803 -26
- package/src/installs/vlc.md +927 -0
- package/src/installs/vscode.js +825 -26
- package/src/installs/vscode.md +1002 -0
- package/src/installs/wget.js +415 -0
- package/src/installs/wget.md +791 -0
- package/src/installs/whatsapp.js +710 -25
- package/src/installs/whatsapp.md +854 -0
- package/src/installs/winpty.js +352 -0
- package/src/installs/winpty.md +620 -0
- package/src/installs/woff2.js +535 -26
- package/src/installs/woff2.md +977 -0
- package/src/installs/wsl.js +572 -0
- package/src/installs/wsl.md +699 -0
- package/src/installs/xcode-clt.js +520 -0
- package/src/installs/xcode-clt.md +351 -0
- package/src/installs/xcode.js +542 -26
- package/src/installs/xcode.md +573 -0
- package/src/installs/yarn.js +806 -26
- package/src/installs/yarn.md +1074 -0
- package/src/installs/yq.js +636 -26
- package/src/installs/yq.md +944 -0
- package/src/installs/yt-dlp.js +683 -26
- package/src/installs/yt-dlp.md +946 -0
- package/src/installs/yum-utils.js +297 -0
- package/src/installs/yum-utils.md +648 -0
- package/src/installs/zoom.js +740 -25
- package/src/installs/zoom.md +884 -0
- package/src/scripts/README.md +567 -45
- package/src/scripts/STATUS.md +208 -0
- package/src/scripts/afk.js +395 -7
- package/src/scripts/backup-all.js +731 -9
- package/src/scripts/backup-source.js +711 -8
- package/src/scripts/brewd.js +373 -7
- package/src/scripts/brewi.js +505 -9
- package/src/scripts/brewr.js +512 -9
- package/src/scripts/brews.js +462 -9
- package/src/scripts/brewu.js +488 -7
- package/src/scripts/c.js +185 -7
- package/src/scripts/ccurl.js +325 -8
- package/src/scripts/certbot-crontab-init.js +488 -8
- package/src/scripts/certbot-init.js +641 -9
- package/src/scripts/ch.js +339 -7
- package/src/scripts/claude-danger.js +253 -8
- package/src/scripts/clean-dev.js +419 -8
- package/src/scripts/clear-dns-cache.js +525 -7
- package/src/scripts/clone.js +417 -7
- package/src/scripts/code-all.js +420 -7
- package/src/scripts/count-files.js +195 -8
- package/src/scripts/count-folders.js +195 -8
- package/src/scripts/count.js +248 -8
- package/src/scripts/d.js +203 -7
- package/src/scripts/datauri.js +373 -8
- package/src/scripts/delete-files.js +363 -7
- package/src/scripts/docker-clean.js +410 -8
- package/src/scripts/dp.js +426 -7
- package/src/scripts/e.js +375 -9
- package/src/scripts/empty-trash.js +497 -7
- package/src/scripts/evm.js +428 -9
- package/src/scripts/fetch-github-repos.js +441 -10
- package/src/scripts/get-channel.js +329 -8
- package/src/scripts/get-course.js +384 -11
- package/src/scripts/get-dependencies.js +290 -9
- package/src/scripts/get-folder.js +783 -10
- package/src/scripts/get-tunes.js +411 -10
- package/src/scripts/get-video.js +352 -9
- package/src/scripts/git-backup.js +561 -9
- package/src/scripts/git-clone.js +477 -9
- package/src/scripts/git-pup.js +303 -7
- package/src/scripts/git-push.js +380 -8
- package/src/scripts/h.js +607 -9
- package/src/scripts/hide-desktop-icons.js +483 -7
- package/src/scripts/hide-hidden-files.js +522 -7
- package/src/scripts/install-dependencies-from.js +440 -9
- package/src/scripts/ips.js +647 -10
- package/src/scripts/iso.js +354 -8
- package/src/scripts/killni.js +561 -7
- package/src/scripts/ll.js +451 -8
- package/src/scripts/local-ip.js +310 -8
- package/src/scripts/m.js +508 -8
- package/src/scripts/map.js +293 -8
- package/src/scripts/mkd.js +287 -7
- package/src/scripts/ncu-update-all.js +441 -8
- package/src/scripts/nginx-init.js +702 -12
- package/src/scripts/npmi.js +366 -7
- package/src/scripts/o.js +495 -8
- package/src/scripts/org-by-date.js +321 -7
- package/src/scripts/p.js +208 -7
- package/src/scripts/packages.js +313 -8
- package/src/scripts/path.js +209 -7
- package/src/scripts/ports.js +582 -8
- package/src/scripts/q.js +290 -8
- package/src/scripts/refresh-files.js +378 -10
- package/src/scripts/remove-smaller-files.js +500 -8
- package/src/scripts/rename-files-with-date.js +517 -9
- package/src/scripts/resize-image.js +523 -9
- package/src/scripts/rm-safe.js +653 -8
- package/src/scripts/s.js +525 -9
- package/src/scripts/set-git-public.js +349 -7
- package/src/scripts/show-desktop-icons.js +459 -7
- package/src/scripts/show-hidden-files.js +456 -7
- package/src/scripts/tpa.js +265 -8
- package/src/scripts/tpo.js +264 -7
- package/src/scripts/u.js +489 -7
- package/src/scripts/vpush.js +422 -8
- package/src/scripts/y.js +267 -7
- package/src/utils/common/os.js +94 -2
- package/src/utils/ubuntu/apt.js +13 -7
- package/src/utils/windows/choco.js +82 -26
- package/src/utils/windows/winget.js +89 -27
|
@@ -0,0 +1,907 @@
|
|
|
1
|
+
# Installing LFTP
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
LFTP is a sophisticated command-line file transfer program that supports multiple protocols including FTP, FTPS, HTTP, HTTPS, HFTP, FISH, SFTP, and BitTorrent. Developed by Alexander Lukyanov and distributed under the GNU General Public License (GPL-3.0-or-later), LFTP is designed for reliability and automation.
|
|
6
|
+
|
|
7
|
+
Key features that distinguish LFTP from basic FTP clients:
|
|
8
|
+
|
|
9
|
+
- **Automatic retry and resume**: Any non-fatal error is handled properly and operations are automatically retried. If a download breaks, it resumes from where it stopped.
|
|
10
|
+
- **Mirror capabilities**: Built-in mirror command can download or upload entire directory trees. Reverse mirror (`mirror -R`) uploads directories to servers.
|
|
11
|
+
- **Segmented transfers**: Downloads can be split into multiple segments for faster transfers.
|
|
12
|
+
- **Job control**: Unix shell-like job control allows background transfers and queue management.
|
|
13
|
+
- **Scriptable**: Fully scriptable for automation in CI/CD pipelines and scheduled tasks.
|
|
14
|
+
- **Bandwidth throttling**: Transfer speeds can be limited to avoid saturating network connections.
|
|
15
|
+
|
|
16
|
+
LFTP is commonly used for automated backups, website deployments, large file transfers, and any scenario requiring reliable file synchronization over various protocols.
|
|
17
|
+
|
|
18
|
+
## Dependencies
|
|
19
|
+
|
|
20
|
+
### macOS (Homebrew)
|
|
21
|
+
- **Required:**
|
|
22
|
+
- `brew` (Homebrew package manager) - Install via `dev install homebrew` or follow instructions at https://brew.sh
|
|
23
|
+
- **Optional:** None
|
|
24
|
+
- **Auto-installed:**
|
|
25
|
+
- `libidn2` (international domain name library)
|
|
26
|
+
- `openssl@3` (cryptography and SSL/TLS toolkit)
|
|
27
|
+
- `readline` (command-line editing library)
|
|
28
|
+
- `gettext` (internationalization library)
|
|
29
|
+
|
|
30
|
+
### Ubuntu (APT/Snap)
|
|
31
|
+
- **Required:**
|
|
32
|
+
- `sudo` privileges (typically available by default for primary user)
|
|
33
|
+
- **Optional:** None
|
|
34
|
+
- **Auto-installed:**
|
|
35
|
+
- All LFTP dependencies (SSL libraries, internationalization libraries, etc.) are handled automatically by APT
|
|
36
|
+
|
|
37
|
+
### Raspberry Pi OS (APT/Snap)
|
|
38
|
+
- **Required:**
|
|
39
|
+
- `sudo` privileges (typically available by default for primary user)
|
|
40
|
+
- **Optional:** None
|
|
41
|
+
- **Auto-installed:**
|
|
42
|
+
- All LFTP dependencies (SSL libraries, internationalization libraries, etc.) are handled automatically by APT
|
|
43
|
+
|
|
44
|
+
### Amazon Linux (DNF/YUM)
|
|
45
|
+
- **Required:**
|
|
46
|
+
- `sudo` privileges (typically available by default for ec2-user)
|
|
47
|
+
- **Optional:** None
|
|
48
|
+
- **Auto-installed:**
|
|
49
|
+
- All LFTP dependencies are handled automatically by DNF/YUM
|
|
50
|
+
|
|
51
|
+
### Windows (Chocolatey/winget)
|
|
52
|
+
- **Required:**
|
|
53
|
+
- `choco` (Chocolatey package manager) - Install via `dev install chocolatey` or follow instructions at https://chocolatey.org/install
|
|
54
|
+
- **Optional:** None
|
|
55
|
+
- **Auto-installed:**
|
|
56
|
+
- Cygwin runtime libraries (cygwin1.dll and related dependencies)
|
|
57
|
+
- LFTP4WIN portable distribution components
|
|
58
|
+
|
|
59
|
+
### Git Bash (Manual/Portable)
|
|
60
|
+
- **Status:** Installation not supported via this installer
|
|
61
|
+
- **Alternative:** See the "Git Bash (Cygwin/LFTP4WIN)" section below for manual installation instructions using LFTP4WIN
|
|
62
|
+
|
|
63
|
+
## Prerequisites
|
|
64
|
+
|
|
65
|
+
Before installing LFTP on any platform, ensure:
|
|
66
|
+
|
|
67
|
+
1. **Internet connectivity** - Required to download packages
|
|
68
|
+
2. **Administrative privileges** - Required for system-wide installation (sudo on Linux/macOS, Administrator on Windows)
|
|
69
|
+
3. **Terminal access** - LFTP is a command-line tool with no graphical interface
|
|
70
|
+
|
|
71
|
+
## Platform-Specific Installation
|
|
72
|
+
|
|
73
|
+
### macOS (Homebrew)
|
|
74
|
+
|
|
75
|
+
#### Prerequisites
|
|
76
|
+
|
|
77
|
+
- macOS 11 (Big Sur) or later
|
|
78
|
+
- Homebrew package manager installed
|
|
79
|
+
- Xcode Command Line Tools (installed automatically by Homebrew if missing)
|
|
80
|
+
|
|
81
|
+
If Homebrew is not installed, install it first:
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
For Apple Silicon Macs, ensure Homebrew is in your PATH:
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile
|
|
91
|
+
eval "$(/opt/homebrew/bin/brew shellenv)"
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
#### Installation Steps
|
|
95
|
+
|
|
96
|
+
Run the following command to install LFTP:
|
|
97
|
+
|
|
98
|
+
```bash
|
|
99
|
+
brew install --quiet lftp
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
The `--quiet` flag suppresses non-essential output, making the installation suitable for scripts and automation. Homebrew automatically installs the required dependencies:
|
|
103
|
+
|
|
104
|
+
- libidn2 (international domain name library)
|
|
105
|
+
- openssl@3 (cryptography and SSL/TLS toolkit)
|
|
106
|
+
- readline (command-line editing library)
|
|
107
|
+
- gettext (internationalization library)
|
|
108
|
+
|
|
109
|
+
#### Verification
|
|
110
|
+
|
|
111
|
+
Confirm the installation succeeded:
|
|
112
|
+
|
|
113
|
+
```bash
|
|
114
|
+
lftp --version
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
Expected output (version numbers may vary):
|
|
118
|
+
|
|
119
|
+
```
|
|
120
|
+
LFTP | Version 4.9.3 | Copyright (c) 1996-2024 Alexander V. Lukyanov
|
|
121
|
+
|
|
122
|
+
LFTP is free software: you can redistribute it and/or modify
|
|
123
|
+
it under the terms of the GNU General Public License as published by
|
|
124
|
+
the Free Software Foundation, either version 3 of the License, or
|
|
125
|
+
(at your option) any later version.
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
Test LFTP can connect to a server:
|
|
129
|
+
|
|
130
|
+
```bash
|
|
131
|
+
lftp -c "open ftp.gnu.org; ls; bye"
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
This connects to the GNU FTP server, lists the directory contents, and exits.
|
|
135
|
+
|
|
136
|
+
#### Troubleshooting
|
|
137
|
+
|
|
138
|
+
**Problem**: `lftp: command not found` after installation
|
|
139
|
+
|
|
140
|
+
**Solution**: Homebrew may not be in your PATH. Run:
|
|
141
|
+
|
|
142
|
+
```bash
|
|
143
|
+
eval "$(/opt/homebrew/bin/brew shellenv)"
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
Then add this line to your shell profile (`~/.zshrc` or `~/.bash_profile`) for persistence.
|
|
147
|
+
|
|
148
|
+
**Problem**: SSL certificate verification errors when connecting to servers
|
|
149
|
+
|
|
150
|
+
**Solution**: If the server uses a self-signed certificate or one not recognized by your system, add to `~/.lftprc`:
|
|
151
|
+
|
|
152
|
+
```bash
|
|
153
|
+
echo 'set ssl:verify-certificate no' >> ~/.lftprc
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
**Warning**: Only disable certificate verification for trusted servers. This reduces security.
|
|
157
|
+
|
|
158
|
+
**Problem**: "Fatal error: Certificate verification: subjectAltName does not match"
|
|
159
|
+
|
|
160
|
+
**Solution**: The server's certificate hostname does not match. Either use the correct hostname or disable verification as shown above.
|
|
161
|
+
|
|
162
|
+
---
|
|
163
|
+
|
|
164
|
+
### Ubuntu/Debian (APT)
|
|
165
|
+
|
|
166
|
+
#### Prerequisites
|
|
167
|
+
|
|
168
|
+
- Ubuntu 20.04 LTS or later, or Debian 11 (Bullseye) or later
|
|
169
|
+
- sudo privileges
|
|
170
|
+
- Active internet connection
|
|
171
|
+
|
|
172
|
+
LFTP is available in the official Ubuntu and Debian repositories, so no additional repository configuration is required.
|
|
173
|
+
|
|
174
|
+
#### Installation Steps
|
|
175
|
+
|
|
176
|
+
Run the following commands to update the package index and install LFTP:
|
|
177
|
+
|
|
178
|
+
```bash
|
|
179
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get update -y
|
|
180
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y lftp
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
The `DEBIAN_FRONTEND=noninteractive` environment variable and `-y` flag ensure the installation proceeds without prompts, making it suitable for scripts and automation.
|
|
184
|
+
|
|
185
|
+
#### Verification
|
|
186
|
+
|
|
187
|
+
Confirm the installation succeeded:
|
|
188
|
+
|
|
189
|
+
```bash
|
|
190
|
+
lftp --version
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
Expected output (version numbers may vary based on your Ubuntu/Debian version):
|
|
194
|
+
|
|
195
|
+
```
|
|
196
|
+
LFTP | Version 4.9.2 | Copyright (c) 1996-2021 Alexander V. Lukyanov
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
Test LFTP can connect to a server:
|
|
200
|
+
|
|
201
|
+
```bash
|
|
202
|
+
lftp -c "open ftp.gnu.org; ls; bye"
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
#### Troubleshooting
|
|
206
|
+
|
|
207
|
+
**Problem**: `E: Unable to locate package lftp`
|
|
208
|
+
|
|
209
|
+
**Solution**: The package index may be outdated. Run:
|
|
210
|
+
|
|
211
|
+
```bash
|
|
212
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get update -y
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
Then retry the installation.
|
|
216
|
+
|
|
217
|
+
**Problem**: Permission denied errors
|
|
218
|
+
|
|
219
|
+
**Solution**: Ensure you are using sudo:
|
|
220
|
+
|
|
221
|
+
```bash
|
|
222
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y lftp
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
**Problem**: Slow connection or timeout errors
|
|
226
|
+
|
|
227
|
+
**Solution**: LFTP may be attempting active FTP mode. Force passive mode by adding to `~/.lftprc`:
|
|
228
|
+
|
|
229
|
+
```bash
|
|
230
|
+
echo 'set ftp:passive-mode on' >> ~/.lftprc
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
**Problem**: SFTP connections fail with "Host key verification failed"
|
|
234
|
+
|
|
235
|
+
**Solution**: The server's SSH host key is not in your known_hosts file. Connect once with ssh to add it:
|
|
236
|
+
|
|
237
|
+
```bash
|
|
238
|
+
ssh user@hostname
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
Accept the host key, then retry with LFTP.
|
|
242
|
+
|
|
243
|
+
---
|
|
244
|
+
|
|
245
|
+
### Raspberry Pi OS (APT)
|
|
246
|
+
|
|
247
|
+
#### Prerequisites
|
|
248
|
+
|
|
249
|
+
- Raspberry Pi OS (32-bit or 64-bit) - Bookworm or Bullseye
|
|
250
|
+
- Raspberry Pi 2B or later (any model with network connectivity)
|
|
251
|
+
- sudo privileges
|
|
252
|
+
|
|
253
|
+
Raspberry Pi OS is based on Debian, so LFTP is available in the standard repositories.
|
|
254
|
+
|
|
255
|
+
#### Installation Steps
|
|
256
|
+
|
|
257
|
+
Run the following commands to install LFTP:
|
|
258
|
+
|
|
259
|
+
```bash
|
|
260
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get update -y
|
|
261
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y lftp
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
The installation process is identical to Ubuntu/Debian. The ARM architecture is handled automatically by the package manager.
|
|
265
|
+
|
|
266
|
+
#### Verification
|
|
267
|
+
|
|
268
|
+
Confirm the installation succeeded:
|
|
269
|
+
|
|
270
|
+
```bash
|
|
271
|
+
lftp --version
|
|
272
|
+
```
|
|
273
|
+
|
|
274
|
+
Expected output (version numbers may vary):
|
|
275
|
+
|
|
276
|
+
```
|
|
277
|
+
LFTP | Version 4.9.2 | Copyright (c) 1996-2021 Alexander V. Lukyanov
|
|
278
|
+
```
|
|
279
|
+
|
|
280
|
+
Test LFTP connectivity:
|
|
281
|
+
|
|
282
|
+
```bash
|
|
283
|
+
lftp -c "open ftp.gnu.org; ls; bye"
|
|
284
|
+
```
|
|
285
|
+
|
|
286
|
+
Check that LFTP is properly installed for your architecture:
|
|
287
|
+
|
|
288
|
+
```bash
|
|
289
|
+
file $(which lftp)
|
|
290
|
+
```
|
|
291
|
+
|
|
292
|
+
Expected output for 64-bit:
|
|
293
|
+
```
|
|
294
|
+
/usr/bin/lftp: ELF 64-bit LSB pie executable, ARM aarch64...
|
|
295
|
+
```
|
|
296
|
+
|
|
297
|
+
Expected output for 32-bit:
|
|
298
|
+
```
|
|
299
|
+
/usr/bin/lftp: ELF 32-bit LSB pie executable, ARM...
|
|
300
|
+
```
|
|
301
|
+
|
|
302
|
+
#### Troubleshooting
|
|
303
|
+
|
|
304
|
+
**Problem**: Installation very slow
|
|
305
|
+
|
|
306
|
+
**Solution**: Raspberry Pi SD cards can be slow. Use a high-quality SD card (Class 10 or faster) or boot from USB/SSD for better performance.
|
|
307
|
+
|
|
308
|
+
**Problem**: Network timeout errors during transfers
|
|
309
|
+
|
|
310
|
+
**Solution**: Raspberry Pi's network interface may have power saving enabled. Add to `~/.lftprc`:
|
|
311
|
+
|
|
312
|
+
```bash
|
|
313
|
+
echo 'set net:timeout 30' >> ~/.lftprc
|
|
314
|
+
echo 'set net:max-retries 5' >> ~/.lftprc
|
|
315
|
+
```
|
|
316
|
+
|
|
317
|
+
**Problem**: Out of memory during large transfers
|
|
318
|
+
|
|
319
|
+
**Solution**: LFTP buffers data during transfers. Limit buffer size in `~/.lftprc`:
|
|
320
|
+
|
|
321
|
+
```bash
|
|
322
|
+
echo 'set xfer:buffer-size 1048576' >> ~/.lftprc
|
|
323
|
+
```
|
|
324
|
+
|
|
325
|
+
This sets a 1MB buffer instead of the default.
|
|
326
|
+
|
|
327
|
+
---
|
|
328
|
+
|
|
329
|
+
### Amazon Linux/RHEL (DNF/YUM)
|
|
330
|
+
|
|
331
|
+
#### Prerequisites
|
|
332
|
+
|
|
333
|
+
- Amazon Linux 2023 (AL2023), Amazon Linux 2 (AL2), RHEL 8/9, CentOS Stream 8/9, Rocky Linux 8/9, or AlmaLinux 8/9
|
|
334
|
+
- sudo privileges
|
|
335
|
+
|
|
336
|
+
LFTP is available in the base repositories for these distributions.
|
|
337
|
+
|
|
338
|
+
#### Installation Steps
|
|
339
|
+
|
|
340
|
+
**For Amazon Linux 2023 and RHEL/CentOS/Rocky/AlmaLinux 8+:**
|
|
341
|
+
|
|
342
|
+
```bash
|
|
343
|
+
sudo dnf install -y lftp
|
|
344
|
+
```
|
|
345
|
+
|
|
346
|
+
**For Amazon Linux 2 and older RHEL/CentOS 7:**
|
|
347
|
+
|
|
348
|
+
```bash
|
|
349
|
+
sudo yum install -y lftp
|
|
350
|
+
```
|
|
351
|
+
|
|
352
|
+
The `-y` flag automatically confirms the installation, enabling non-interactive execution. DNF is the successor to YUM and is used on modern RPM-based distributions. On Amazon Linux 2023, the `yum` command is available but internally calls `dnf`.
|
|
353
|
+
|
|
354
|
+
#### Verification
|
|
355
|
+
|
|
356
|
+
Confirm the installation succeeded:
|
|
357
|
+
|
|
358
|
+
```bash
|
|
359
|
+
lftp --version
|
|
360
|
+
```
|
|
361
|
+
|
|
362
|
+
Expected output (version numbers vary by distribution):
|
|
363
|
+
|
|
364
|
+
- Amazon Linux 2023 / RHEL 9: LFTP 4.9.2
|
|
365
|
+
- Amazon Linux 2 / RHEL 7: LFTP 4.4.8
|
|
366
|
+
- RHEL 8: LFTP 4.8.4
|
|
367
|
+
|
|
368
|
+
Test LFTP connectivity:
|
|
369
|
+
|
|
370
|
+
```bash
|
|
371
|
+
lftp -c "open ftp.gnu.org; ls; bye"
|
|
372
|
+
```
|
|
373
|
+
|
|
374
|
+
#### Troubleshooting
|
|
375
|
+
|
|
376
|
+
**Problem**: `No match for argument: lftp` on Amazon Linux 2023
|
|
377
|
+
|
|
378
|
+
**Solution**: The package may be in a different repository. Search for it:
|
|
379
|
+
|
|
380
|
+
```bash
|
|
381
|
+
dnf search lftp
|
|
382
|
+
```
|
|
383
|
+
|
|
384
|
+
If not found in base repositories, enable SPAL (Supplementary Packages for Amazon Linux):
|
|
385
|
+
|
|
386
|
+
```bash
|
|
387
|
+
sudo dnf install -y amazon-supplementary-packages
|
|
388
|
+
sudo dnf install -y lftp
|
|
389
|
+
```
|
|
390
|
+
|
|
391
|
+
**Problem**: Package not found on older Amazon Linux 2
|
|
392
|
+
|
|
393
|
+
**Solution**: On Amazon Linux 2, LFTP should be in the base repository. Update the package cache:
|
|
394
|
+
|
|
395
|
+
```bash
|
|
396
|
+
sudo yum makecache -y
|
|
397
|
+
sudo yum install -y lftp
|
|
398
|
+
```
|
|
399
|
+
|
|
400
|
+
**Problem**: "Repository 'X' is failing" errors
|
|
401
|
+
|
|
402
|
+
**Solution**: Clear the DNF cache and retry:
|
|
403
|
+
|
|
404
|
+
```bash
|
|
405
|
+
sudo dnf clean all
|
|
406
|
+
sudo dnf install -y lftp
|
|
407
|
+
```
|
|
408
|
+
|
|
409
|
+
**Problem**: SSL/TLS errors on older systems
|
|
410
|
+
|
|
411
|
+
**Solution**: Older versions of LFTP may have outdated SSL libraries. Update the system:
|
|
412
|
+
|
|
413
|
+
```bash
|
|
414
|
+
sudo dnf update -y
|
|
415
|
+
```
|
|
416
|
+
|
|
417
|
+
---
|
|
418
|
+
|
|
419
|
+
### Windows (Chocolatey)
|
|
420
|
+
|
|
421
|
+
#### Prerequisites
|
|
422
|
+
|
|
423
|
+
- Windows 10 version 1809 or later, or Windows 11
|
|
424
|
+
- Administrator PowerShell or Command Prompt
|
|
425
|
+
- Chocolatey package manager installed
|
|
426
|
+
|
|
427
|
+
If Chocolatey is not installed, install it by running this command in an Administrator PowerShell:
|
|
428
|
+
|
|
429
|
+
```powershell
|
|
430
|
+
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))
|
|
431
|
+
```
|
|
432
|
+
|
|
433
|
+
Close and reopen PowerShell after installation.
|
|
434
|
+
|
|
435
|
+
**Note**: LFTP is not available in winget. The Chocolatey package provides unofficial Windows builds from the LFTP4WIN project.
|
|
436
|
+
|
|
437
|
+
#### Installation Steps
|
|
438
|
+
|
|
439
|
+
Run the following command in an Administrator PowerShell or Command Prompt:
|
|
440
|
+
|
|
441
|
+
```powershell
|
|
442
|
+
choco install lftp -y
|
|
443
|
+
```
|
|
444
|
+
|
|
445
|
+
The `-y` flag automatically confirms all prompts, enabling fully non-interactive installation.
|
|
446
|
+
|
|
447
|
+
#### Verification
|
|
448
|
+
|
|
449
|
+
Open a new Command Prompt or PowerShell window (required to pick up PATH changes), then run:
|
|
450
|
+
|
|
451
|
+
```powershell
|
|
452
|
+
lftp --version
|
|
453
|
+
```
|
|
454
|
+
|
|
455
|
+
Expected output (version numbers may vary):
|
|
456
|
+
|
|
457
|
+
```
|
|
458
|
+
LFTP | Version 4.9.2 | Copyright (c) 1996-2021 Alexander V. Lukyanov
|
|
459
|
+
```
|
|
460
|
+
|
|
461
|
+
Test LFTP connectivity:
|
|
462
|
+
|
|
463
|
+
```powershell
|
|
464
|
+
lftp -c "open ftp.gnu.org; ls; bye"
|
|
465
|
+
```
|
|
466
|
+
|
|
467
|
+
#### Troubleshooting
|
|
468
|
+
|
|
469
|
+
**Problem**: `lftp: command not found` or `'lftp' is not recognized`
|
|
470
|
+
|
|
471
|
+
**Solution**: The PATH may not have been updated. Close and reopen your terminal, or run:
|
|
472
|
+
|
|
473
|
+
```powershell
|
|
474
|
+
refreshenv
|
|
475
|
+
```
|
|
476
|
+
|
|
477
|
+
If still not working, verify Chocolatey shim exists:
|
|
478
|
+
|
|
479
|
+
```powershell
|
|
480
|
+
where.exe lftp
|
|
481
|
+
```
|
|
482
|
+
|
|
483
|
+
**Problem**: SSL certificate errors
|
|
484
|
+
|
|
485
|
+
**Solution**: Create or edit the LFTP configuration file. The location depends on your home directory:
|
|
486
|
+
|
|
487
|
+
```powershell
|
|
488
|
+
echo set ssl:verify-certificate no >> %USERPROFILE%\.lftprc
|
|
489
|
+
```
|
|
490
|
+
|
|
491
|
+
**Problem**: "MSYS fork" or "cygwin" related errors
|
|
492
|
+
|
|
493
|
+
**Solution**: The Windows LFTP build uses Cygwin libraries. Ensure no conflicting Cygwin installations exist. Try running from a standard Command Prompt rather than PowerShell.
|
|
494
|
+
|
|
495
|
+
**Problem**: Interactive mode issues in PowerShell
|
|
496
|
+
|
|
497
|
+
**Solution**: LFTP works better in Command Prompt on Windows. For scripting, use the `-c` flag:
|
|
498
|
+
|
|
499
|
+
```powershell
|
|
500
|
+
lftp -c "open ftp://user:pass@host; get file.txt; bye"
|
|
501
|
+
```
|
|
502
|
+
|
|
503
|
+
---
|
|
504
|
+
|
|
505
|
+
### WSL (Ubuntu)
|
|
506
|
+
|
|
507
|
+
#### Prerequisites
|
|
508
|
+
|
|
509
|
+
- Windows 10 version 2004 or later, or Windows 11
|
|
510
|
+
- WSL 2 enabled with Ubuntu distribution installed
|
|
511
|
+
- sudo privileges within WSL
|
|
512
|
+
|
|
513
|
+
If WSL is not installed, install it from an Administrator PowerShell:
|
|
514
|
+
|
|
515
|
+
```powershell
|
|
516
|
+
wsl --install -d Ubuntu
|
|
517
|
+
```
|
|
518
|
+
|
|
519
|
+
Restart your computer if prompted, then complete the Ubuntu setup.
|
|
520
|
+
|
|
521
|
+
#### Installation Steps
|
|
522
|
+
|
|
523
|
+
Run these commands in your WSL Ubuntu terminal:
|
|
524
|
+
|
|
525
|
+
```bash
|
|
526
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get update -y
|
|
527
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y lftp
|
|
528
|
+
```
|
|
529
|
+
|
|
530
|
+
The installation is identical to native Ubuntu because WSL runs a full Ubuntu userspace.
|
|
531
|
+
|
|
532
|
+
#### Verification
|
|
533
|
+
|
|
534
|
+
Confirm the installation succeeded:
|
|
535
|
+
|
|
536
|
+
```bash
|
|
537
|
+
lftp --version
|
|
538
|
+
```
|
|
539
|
+
|
|
540
|
+
Expected output (version numbers may vary based on your Ubuntu version):
|
|
541
|
+
|
|
542
|
+
```
|
|
543
|
+
LFTP | Version 4.9.2 | Copyright (c) 1996-2021 Alexander V. Lukyanov
|
|
544
|
+
```
|
|
545
|
+
|
|
546
|
+
Test LFTP connectivity:
|
|
547
|
+
|
|
548
|
+
```bash
|
|
549
|
+
lftp -c "open ftp.gnu.org; ls; bye"
|
|
550
|
+
```
|
|
551
|
+
|
|
552
|
+
#### Troubleshooting
|
|
553
|
+
|
|
554
|
+
**Problem**: DNS resolution fails in WSL
|
|
555
|
+
|
|
556
|
+
**Solution**: WSL sometimes has DNS issues. Create or edit `/etc/wsl.conf`:
|
|
557
|
+
|
|
558
|
+
```bash
|
|
559
|
+
sudo tee /etc/wsl.conf > /dev/null <<'EOF'
|
|
560
|
+
[network]
|
|
561
|
+
generateResolvConf = false
|
|
562
|
+
EOF
|
|
563
|
+
```
|
|
564
|
+
|
|
565
|
+
Then set a DNS server:
|
|
566
|
+
|
|
567
|
+
```bash
|
|
568
|
+
sudo rm /etc/resolv.conf
|
|
569
|
+
echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf
|
|
570
|
+
```
|
|
571
|
+
|
|
572
|
+
Restart WSL from PowerShell:
|
|
573
|
+
|
|
574
|
+
```powershell
|
|
575
|
+
wsl --shutdown
|
|
576
|
+
```
|
|
577
|
+
|
|
578
|
+
**Problem**: Cannot access Windows files from LFTP
|
|
579
|
+
|
|
580
|
+
**Solution**: Windows drives are mounted under `/mnt/`. Access files using:
|
|
581
|
+
|
|
582
|
+
```bash
|
|
583
|
+
lftp -c "put /mnt/c/Users/YourName/file.txt"
|
|
584
|
+
```
|
|
585
|
+
|
|
586
|
+
**Problem**: Slow network performance
|
|
587
|
+
|
|
588
|
+
**Solution**: WSL 2 uses a virtual network adapter. Large transfers may be slower than native Linux. For better performance with large files, consider using LFTP from native Windows (Chocolatey installation).
|
|
589
|
+
|
|
590
|
+
**Problem**: Permission denied when saving files
|
|
591
|
+
|
|
592
|
+
**Solution**: Ensure you have write permissions to the target directory. Within WSL, your home directory (`~`) is always writable:
|
|
593
|
+
|
|
594
|
+
```bash
|
|
595
|
+
cd ~
|
|
596
|
+
lftp -c "open ftp://server; get file.txt; bye"
|
|
597
|
+
```
|
|
598
|
+
|
|
599
|
+
---
|
|
600
|
+
|
|
601
|
+
### Git Bash (Cygwin/LFTP4WIN)
|
|
602
|
+
|
|
603
|
+
#### Prerequisites
|
|
604
|
+
|
|
605
|
+
- Windows 10 or Windows 11 (64-bit)
|
|
606
|
+
- Git Bash installed (comes with Git for Windows)
|
|
607
|
+
- Internet connection for downloading LFTP4WIN
|
|
608
|
+
|
|
609
|
+
**Important**: LFTP is not natively available in Git Bash because Git Bash uses MinGW, which does not include LFTP. The solution is to install LFTP4WIN, a portable Cygwin-based distribution that includes LFTP.
|
|
610
|
+
|
|
611
|
+
#### Installation Steps
|
|
612
|
+
|
|
613
|
+
**Step 1: Download LFTP4WIN**
|
|
614
|
+
|
|
615
|
+
Open Git Bash and create an installation directory:
|
|
616
|
+
|
|
617
|
+
```bash
|
|
618
|
+
mkdir -p /c/tools/lftp4win
|
|
619
|
+
cd /c/tools/lftp4win
|
|
620
|
+
```
|
|
621
|
+
|
|
622
|
+
Download the LFTP4WIN installer:
|
|
623
|
+
|
|
624
|
+
```bash
|
|
625
|
+
curl -fsSL -o LFTP4WIN-installer.cmd https://raw.githubusercontent.com/userdocs/LFTP4WIN/master/LFTP4WIN-installer.cmd
|
|
626
|
+
```
|
|
627
|
+
|
|
628
|
+
**Step 2: Run the Installer**
|
|
629
|
+
|
|
630
|
+
The installer must be run from Windows Command Prompt or PowerShell (not Git Bash). Open Command Prompt as Administrator and run:
|
|
631
|
+
|
|
632
|
+
```cmd
|
|
633
|
+
cd C:\tools\lftp4win
|
|
634
|
+
LFTP4WIN-installer.cmd
|
|
635
|
+
```
|
|
636
|
+
|
|
637
|
+
The installer downloads and configures a portable Cygwin installation with LFTP and related tools. This process takes several minutes.
|
|
638
|
+
|
|
639
|
+
**Note**: The LFTP4WIN installer does not support silent installation. It runs non-interactively but displays output during the download and configuration process.
|
|
640
|
+
|
|
641
|
+
**Step 3: Add LFTP to Git Bash PATH**
|
|
642
|
+
|
|
643
|
+
After installation completes, add LFTP to your Git Bash PATH. Edit your `~/.bashrc`:
|
|
644
|
+
|
|
645
|
+
```bash
|
|
646
|
+
echo 'export PATH="/c/tools/lftp4win/bin:$PATH"' >> ~/.bashrc
|
|
647
|
+
source ~/.bashrc
|
|
648
|
+
```
|
|
649
|
+
|
|
650
|
+
Alternatively, create an alias to run LFTP through the Cygwin environment:
|
|
651
|
+
|
|
652
|
+
```bash
|
|
653
|
+
echo 'alias lftp="/c/tools/lftp4win/bin/lftp.exe"' >> ~/.bashrc
|
|
654
|
+
source ~/.bashrc
|
|
655
|
+
```
|
|
656
|
+
|
|
657
|
+
#### Verification
|
|
658
|
+
|
|
659
|
+
Test LFTP is accessible from Git Bash:
|
|
660
|
+
|
|
661
|
+
```bash
|
|
662
|
+
/c/tools/lftp4win/bin/lftp --version
|
|
663
|
+
```
|
|
664
|
+
|
|
665
|
+
Or if you added the PATH/alias:
|
|
666
|
+
|
|
667
|
+
```bash
|
|
668
|
+
lftp --version
|
|
669
|
+
```
|
|
670
|
+
|
|
671
|
+
Expected output (version numbers may vary):
|
|
672
|
+
|
|
673
|
+
```
|
|
674
|
+
LFTP | Version 4.9.2 | Copyright (c) 1996-2021 Alexander V. Lukyanov
|
|
675
|
+
```
|
|
676
|
+
|
|
677
|
+
Test LFTP connectivity:
|
|
678
|
+
|
|
679
|
+
```bash
|
|
680
|
+
/c/tools/lftp4win/bin/lftp -c "open ftp.gnu.org; ls; bye"
|
|
681
|
+
```
|
|
682
|
+
|
|
683
|
+
#### Troubleshooting
|
|
684
|
+
|
|
685
|
+
**Problem**: "cygwin1.dll not found" or similar DLL errors
|
|
686
|
+
|
|
687
|
+
**Solution**: LFTP4WIN includes its own Cygwin DLLs. Ensure you are running the lftp.exe from the LFTP4WIN installation directory, not a conflicting version.
|
|
688
|
+
|
|
689
|
+
**Problem**: LFTP works in LFTP4WIN terminal but not Git Bash
|
|
690
|
+
|
|
691
|
+
**Solution**: Git Bash and Cygwin are separate environments. You need to either:
|
|
692
|
+
|
|
693
|
+
1. Add the LFTP4WIN bin directory to your Git Bash PATH (as shown above)
|
|
694
|
+
2. Use the full path to lftp.exe
|
|
695
|
+
3. Use the LFTP4WIN-terminal.cmd to access LFTP
|
|
696
|
+
|
|
697
|
+
**Problem**: Path conversion issues (paths starting with `/c/` converted incorrectly)
|
|
698
|
+
|
|
699
|
+
**Solution**: Use Windows-style paths when running LFTP from Git Bash:
|
|
700
|
+
|
|
701
|
+
```bash
|
|
702
|
+
/c/tools/lftp4win/bin/lftp -c "lcd C:/Users/YourName; open ftp://server; put file.txt; bye"
|
|
703
|
+
```
|
|
704
|
+
|
|
705
|
+
**Problem**: SSH/SFTP connections fail
|
|
706
|
+
|
|
707
|
+
**Solution**: LFTP4WIN includes its own SSH. For SFTP, ensure your SSH keys are accessible. Copy keys to the LFTP4WIN home directory:
|
|
708
|
+
|
|
709
|
+
```bash
|
|
710
|
+
cp ~/.ssh/id_rsa /c/tools/lftp4win/home/$USER/.ssh/
|
|
711
|
+
cp ~/.ssh/id_rsa.pub /c/tools/lftp4win/home/$USER/.ssh/
|
|
712
|
+
```
|
|
713
|
+
|
|
714
|
+
**Problem**: Installer fails partway through
|
|
715
|
+
|
|
716
|
+
**Solution**: The installer may have been blocked by firewall or antivirus. Rerun the installer - it will resume from where it stopped:
|
|
717
|
+
|
|
718
|
+
```cmd
|
|
719
|
+
cd C:\tools\lftp4win
|
|
720
|
+
LFTP4WIN-installer.cmd
|
|
721
|
+
```
|
|
722
|
+
|
|
723
|
+
---
|
|
724
|
+
|
|
725
|
+
## Post-Installation Configuration
|
|
726
|
+
|
|
727
|
+
After installing LFTP on any platform, consider these optional but recommended configurations.
|
|
728
|
+
|
|
729
|
+
### Configuration File Locations
|
|
730
|
+
|
|
731
|
+
LFTP reads configuration from these files in order:
|
|
732
|
+
|
|
733
|
+
1. `/etc/lftp.conf` - System-wide configuration (Linux/macOS)
|
|
734
|
+
2. `~/.lftprc` - User-specific configuration
|
|
735
|
+
3. `~/.lftp/rc` - Alternative user configuration location
|
|
736
|
+
|
|
737
|
+
On Windows (Chocolatey/LFTP4WIN), the user configuration is typically at `%USERPROFILE%\.lftprc`.
|
|
738
|
+
|
|
739
|
+
### Recommended Configuration
|
|
740
|
+
|
|
741
|
+
Create a `~/.lftprc` file with commonly useful settings:
|
|
742
|
+
|
|
743
|
+
```bash
|
|
744
|
+
cat > ~/.lftprc << 'EOF'
|
|
745
|
+
# Use passive mode by default (works better with firewalls/NAT)
|
|
746
|
+
set ftp:passive-mode on
|
|
747
|
+
|
|
748
|
+
# Set connection timeout to 30 seconds
|
|
749
|
+
set net:timeout 30
|
|
750
|
+
|
|
751
|
+
# Retry failed operations up to 5 times
|
|
752
|
+
set net:max-retries 5
|
|
753
|
+
|
|
754
|
+
# Delay between retries (in seconds)
|
|
755
|
+
set net:reconnect-interval-base 5
|
|
756
|
+
|
|
757
|
+
# Use encryption when available
|
|
758
|
+
set ftp:ssl-allow yes
|
|
759
|
+
set ftp:ssl-protect-data yes
|
|
760
|
+
|
|
761
|
+
# Show transfer progress
|
|
762
|
+
set cmd:trace no
|
|
763
|
+
EOF
|
|
764
|
+
```
|
|
765
|
+
|
|
766
|
+
### Bookmark Management
|
|
767
|
+
|
|
768
|
+
LFTP supports bookmarks for frequently accessed servers. Add a bookmark:
|
|
769
|
+
|
|
770
|
+
```bash
|
|
771
|
+
lftp -c "bookmark add myserver ftp://user@ftp.example.com"
|
|
772
|
+
```
|
|
773
|
+
|
|
774
|
+
List bookmarks:
|
|
775
|
+
|
|
776
|
+
```bash
|
|
777
|
+
lftp -c "bookmark list"
|
|
778
|
+
```
|
|
779
|
+
|
|
780
|
+
Connect using a bookmark:
|
|
781
|
+
|
|
782
|
+
```bash
|
|
783
|
+
lftp myserver
|
|
784
|
+
```
|
|
785
|
+
|
|
786
|
+
Bookmarks are stored in `~/.lftp/bookmarks`.
|
|
787
|
+
|
|
788
|
+
### Setting Default Credentials
|
|
789
|
+
|
|
790
|
+
For frequently accessed servers, you can store credentials (use with caution):
|
|
791
|
+
|
|
792
|
+
```bash
|
|
793
|
+
cat >> ~/.netrc << 'EOF'
|
|
794
|
+
machine ftp.example.com
|
|
795
|
+
login myusername
|
|
796
|
+
password mypassword
|
|
797
|
+
EOF
|
|
798
|
+
chmod 600 ~/.netrc
|
|
799
|
+
```
|
|
800
|
+
|
|
801
|
+
LFTP respects the standard `.netrc` file format.
|
|
802
|
+
|
|
803
|
+
---
|
|
804
|
+
|
|
805
|
+
## Common Issues
|
|
806
|
+
|
|
807
|
+
### Issue: "Login failed" or "530 Login incorrect"
|
|
808
|
+
|
|
809
|
+
**Symptoms**: LFTP connects but authentication fails
|
|
810
|
+
|
|
811
|
+
**Solutions**:
|
|
812
|
+
|
|
813
|
+
- Verify username and password are correct
|
|
814
|
+
- Check if the server requires a specific authentication method:
|
|
815
|
+
```bash
|
|
816
|
+
lftp -e "set ftp:ssl-auth TLS; open ftp://user@server"
|
|
817
|
+
```
|
|
818
|
+
- Some servers require email address as password for anonymous access
|
|
819
|
+
|
|
820
|
+
### Issue: "Connection refused" or "Connection timed out"
|
|
821
|
+
|
|
822
|
+
**Symptoms**: LFTP cannot establish a connection to the server
|
|
823
|
+
|
|
824
|
+
**Solutions**:
|
|
825
|
+
|
|
826
|
+
- Verify the hostname and port are correct
|
|
827
|
+
- Check if a firewall is blocking the connection
|
|
828
|
+
- Try passive mode if behind NAT:
|
|
829
|
+
```bash
|
|
830
|
+
lftp -e "set ftp:passive-mode on; open ftp://server"
|
|
831
|
+
```
|
|
832
|
+
- Verify the server is running and accepting connections
|
|
833
|
+
|
|
834
|
+
### Issue: "SSL certificate problem"
|
|
835
|
+
|
|
836
|
+
**Symptoms**: Connection fails with certificate verification errors
|
|
837
|
+
|
|
838
|
+
**Solutions**:
|
|
839
|
+
|
|
840
|
+
- For testing only, disable certificate verification:
|
|
841
|
+
```bash
|
|
842
|
+
lftp -e "set ssl:verify-certificate no; open ftps://server"
|
|
843
|
+
```
|
|
844
|
+
- For production, install the CA certificate or update CA certificates:
|
|
845
|
+
```bash
|
|
846
|
+
# Ubuntu/Debian
|
|
847
|
+
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y ca-certificates
|
|
848
|
+
sudo update-ca-certificates
|
|
849
|
+
```
|
|
850
|
+
|
|
851
|
+
### Issue: Transfers stall or timeout
|
|
852
|
+
|
|
853
|
+
**Symptoms**: File transfers start but hang partway through
|
|
854
|
+
|
|
855
|
+
**Solutions**:
|
|
856
|
+
|
|
857
|
+
- Increase timeout values:
|
|
858
|
+
```bash
|
|
859
|
+
lftp -e "set net:timeout 60; set net:max-retries 10; open ftp://server"
|
|
860
|
+
```
|
|
861
|
+
- Try disabling data connection reuse:
|
|
862
|
+
```bash
|
|
863
|
+
lftp -e "set ftp:use-site-idle no; open ftp://server"
|
|
864
|
+
```
|
|
865
|
+
- Check available disk space on source and destination
|
|
866
|
+
|
|
867
|
+
### Issue: "Permission denied" when writing files
|
|
868
|
+
|
|
869
|
+
**Symptoms**: Downloads or uploads fail with permission errors
|
|
870
|
+
|
|
871
|
+
**Solutions**:
|
|
872
|
+
|
|
873
|
+
- Verify you have write permission to the local directory
|
|
874
|
+
- Verify you have write permission on the remote server
|
|
875
|
+
- On Linux/macOS, check file ownership:
|
|
876
|
+
```bash
|
|
877
|
+
ls -la /path/to/directory
|
|
878
|
+
```
|
|
879
|
+
|
|
880
|
+
### Issue: Mirror command skips files
|
|
881
|
+
|
|
882
|
+
**Symptoms**: `mirror` does not transfer all expected files
|
|
883
|
+
|
|
884
|
+
**Solutions**:
|
|
885
|
+
|
|
886
|
+
- By default, mirror only transfers newer/changed files. Force full transfer:
|
|
887
|
+
```bash
|
|
888
|
+
lftp -e "mirror --only-newer=no /remote/path /local/path; bye" ftp://server
|
|
889
|
+
```
|
|
890
|
+
- Check for hidden files (files starting with `.`):
|
|
891
|
+
```bash
|
|
892
|
+
lftp -e "set ftp:list-options -a; mirror /remote /local; bye" ftp://server
|
|
893
|
+
```
|
|
894
|
+
|
|
895
|
+
---
|
|
896
|
+
|
|
897
|
+
## References
|
|
898
|
+
|
|
899
|
+
- [LFTP Official Website](https://lftp.yar.ru/)
|
|
900
|
+
- [LFTP Manual Page](https://lftp.yar.ru/lftp-man.html)
|
|
901
|
+
- [LFTP Source Code on GitHub](https://github.com/lavv17/lftp)
|
|
902
|
+
- [Homebrew LFTP Formula](https://formulae.brew.sh/formula/lftp)
|
|
903
|
+
- [Chocolatey LFTP Package](https://community.chocolatey.org/packages/lftp)
|
|
904
|
+
- [LFTP4WIN Project](https://github.com/userdocs/LFTP4WIN)
|
|
905
|
+
- [Ubuntu LFTP Package](https://packages.ubuntu.com/search?keywords=lftp)
|
|
906
|
+
- [Debian LFTP Package](https://packages.debian.org/search?keywords=lftp)
|
|
907
|
+
- [Fedora LFTP Package](https://packages.fedoraproject.org/pkgs/lftp/lftp/)
|