Difference between revisions of "Dropbox"
m (→Dropbox on laptops: move links, the hackish solution is not NetworkManager specific) |
|||
(23 intermediate revisions by 9 users not shown) | |||
Line 2: | Line 2: | ||
[[de:Dropbox]] | [[de:Dropbox]] | ||
[[it:Dropbox]] | [[it:Dropbox]] | ||
+ | [[ru:Dropbox]] | ||
[[zh-TW:Dropbox]] | [[zh-TW:Dropbox]] | ||
− | + | [https://www.dropbox.com Dropbox] is a file sharing system that recently introduced a GNU/Linux client. Use it to transparently sync files across computers and architectures. Simply drop files into your {{ic|~/Dropbox}} folder, and they will automatically sync to your centralized repository. | |
− | [https://www.dropbox.com Dropbox] is a file sharing system that recently introduced a GNU/Linux client. Use it to transparently sync files across computers and architectures. | ||
− | ==Installation== | + | == Installation == |
{{AUR|dropbox}} can be installed from the [[Arch User Repository|AUR]]. Alternatively, {{AUR|dropbox-experimental}} is also available. | {{AUR|dropbox}} can be installed from the [[Arch User Repository|AUR]]. Alternatively, {{AUR|dropbox-experimental}} is also available. | ||
Line 18: | Line 18: | ||
For [[KDE]] users, no further steps are required (it is enough to install the above {{AUR|dropbox}} package from the AUR), as KDE saves running applications when logging out and restarts them automatically. Similarly for [[Xfce]] users, dropbox will be restarted automatically next time you login since the {{ic|dropbox.desktop}} file be placed in {{ic|~/.config/autostart}}. | For [[KDE]] users, no further steps are required (it is enough to install the above {{AUR|dropbox}} package from the AUR), as KDE saves running applications when logging out and restarts them automatically. Similarly for [[Xfce]] users, dropbox will be restarted automatically next time you login since the {{ic|dropbox.desktop}} file be placed in {{ic|~/.config/autostart}}. | ||
− | ===Optional packages=== | + | === Optional packages === |
− | *For a command-line interface, install {{AUR|dropbox-cli}} from the [[ | + | *For a command-line interface, install {{AUR|dropbox-cli}} from the [[AUR]]. |
*For integration with Nautilus, install {{AUR|nautilus-dropbox}} from the AUR. The Nautilus plugin will start Dropbox automatically. | *For integration with Nautilus, install {{AUR|nautilus-dropbox}} from the AUR. The Nautilus plugin will start Dropbox automatically. | ||
*For integration with Nemo, install {{AUR|nemo-dropbox-git}} from the AUR. | *For integration with Nemo, install {{AUR|nemo-dropbox-git}} from the AUR. | ||
Line 26: | Line 26: | ||
*For [[KDE]] users, there is a KDE client available: {{AUR|kfilebox}} from the AUR. | *For [[KDE]] users, there is a KDE client available: {{AUR|kfilebox}} from the AUR. | ||
− | ===Automatically | + | === Automatically starting Dropbox === |
Dropbox can be automatically started by adding {{Ic|dropboxd}} to {{ic|~/.xinitrc}} (or {{ic|~/.config/openbox/autostart}}, depending on your setup). Alternatively, you can [[#Run as daemon with systemd|start it as a daemon]]. | Dropbox can be automatically started by adding {{Ic|dropboxd}} to {{ic|~/.xinitrc}} (or {{ic|~/.config/openbox/autostart}}, depending on your setup). Alternatively, you can [[#Run as daemon with systemd|start it as a daemon]]. | ||
Line 34: | Line 34: | ||
If all you need is basic access to the files in your Dropbox, you can use the web interface at https://www.dropbox.com/ to upload and download files to your Dropbox. This can be a viable alternative to running a Dropbox daemon and mirroring all the files on your own machine. | If all you need is basic access to the files in your Dropbox, you can use the web interface at https://www.dropbox.com/ to upload and download files to your Dropbox. This can be a viable alternative to running a Dropbox daemon and mirroring all the files on your own machine. | ||
− | ==Run as daemon with systemd== | + | == Run as daemon with systemd == |
− | Recent versions of Dropbox come with a systemd service file. By default running Dropbox as a daemon does not give you an icon in the system tray, but syncs your files and folders in the background. If you want to have tray support, | + | Recent versions of Dropbox come with a systemd service file. By default running Dropbox as a daemon does not give you an icon in the system tray, but syncs your files and folders in the background. If you want to have tray support, create {{ic|/etc/systemd/system/dropbox@.service}} to override the provided service file and specify the environment variable {{ic|DISPLAY}}: |
− | + | {{hc|/etc/systemd/system/dropbox@.service|<nowiki> | |
− | + | .include /usr/lib/systemd/system/dropbox@.service | |
− | + | [Service] | |
+ | Environment=DISPLAY=:0 | ||
+ | </nowiki>}} | ||
Finally, to enable the daemon for your user, so that it will start at login: | Finally, to enable the daemon for your user, so that it will start at login: | ||
Line 46: | Line 48: | ||
Note that you have to manually start Dropbox the first time after installation, so that it runs through the login and setup screen. Further, you need to uncheck the option '''Start Dropbox on system startup''' in order to prevent Dropbox from being started twice. The daemon can then be used subsequently. | Note that you have to manually start Dropbox the first time after installation, so that it runs through the login and setup screen. Further, you need to uncheck the option '''Start Dropbox on system startup''' in order to prevent Dropbox from being started twice. The daemon can then be used subsequently. | ||
− | ===Run as a daemon with systemd user=== | + | === Run as a daemon with systemd user === |
If you have followed the [[systemd/User]] wiki page, you probably want to start dropbox only when you log in or launch your WM/DE. The solution in that case is to create a service in your home directory instead of using the sysadmin account: | If you have followed the [[systemd/User]] wiki page, you probably want to start dropbox only when you log in or launch your WM/DE. The solution in that case is to create a service in your home directory instead of using the sysadmin account: | ||
Line 59: | Line 61: | ||
ExecReload=/bin/kill -HUP $MAINPID | ExecReload=/bin/kill -HUP $MAINPID | ||
Environment=DISPLAY=%i | Environment=DISPLAY=%i | ||
− | + | ||
[Install] | [Install] | ||
WantedBy=mystuff.target | WantedBy=mystuff.target | ||
</nowiki>}} | </nowiki>}} | ||
− | They you can start | + | They you can start or enable it with: |
− | systemctl --user {start|enable} dropbox@:0.service | + | $ systemctl --user {start|enable} dropbox@:0.service |
That way you can easily start it in your main display (likely :0) or in another one, without having to hard code it. | That way you can easily start it in your main display (likely :0) or in another one, without having to hard code it. | ||
Line 72: | Line 74: | ||
{{Note|After a lot of trial and error I found that using {{ic|/usr/bin/dropboxd}} didn't start the service and it didn't show any error either (even when running it directly from the terminal worked fine). I believe it has to do that starting it that way systemd doesn't know which user is actually running the daemon.}} | {{Note|After a lot of trial and error I found that using {{ic|/usr/bin/dropboxd}} didn't start the service and it didn't show any error either (even when running it directly from the terminal worked fine). I believe it has to do that starting it that way systemd doesn't know which user is actually running the daemon.}} | ||
− | ==Without Nautilus ( | + | == Without Nautilus (another way)== |
+ | |||
+ | {{Deletion|When nautilus is not found, dropbox calls [[xdg-open]] to open the folder. If you don't use nautilus, you probably don't have it installed, so this ugly hack is quite useless.}} | ||
Another way to use Dropbox without Nautilus but with another file manager like Thunar or Pcmanfm is described below: | Another way to use Dropbox without Nautilus but with another file manager like Thunar or Pcmanfm is described below: | ||
Line 84: | Line 88: | ||
exit 0 | exit 0 | ||
− | 3. Launch Dropbox | + | 3. Launch Dropbox: |
$ dropboxd | $ dropboxd | ||
4. Click on the Dropbox tray icon to open your Dropbox folder in Thunar. | 4. Click on the Dropbox tray icon to open your Dropbox folder in Thunar. | ||
− | {{Note|In this way there is no need to create a Dropbox daemon in {{ic|/etc/rc.d/}} and to start it at boot via {{ic|/etc/rc.conf}} or to make it start via your session manager: just leave the "Start Dropbox on system startup" option flagged in the Preferences window.}} | + | {{Note| |
+ | * In this way there is no need to create a Dropbox daemon in {{ic|/etc/rc.d/}} and to start it at boot via {{ic|/etc/rc.conf}} or to make it start via your session manager: just leave the "Start Dropbox on system startup" option flagged in the Preferences window. | ||
+ | * If you already have Nautilus installed but do not want to use it, don't modify the existing file under {{ic|/usr/bin}}, just change the {{ic|/usr/bin}} for {{ic|/opt/dropbox}} in the step 2 above, like this: {{Ic|$ sudo touch /opt/dropbox/nautilus && sudo chmod +x /opt/dropbox/nautilus && sudo nano /opt/dropbox/nautilus}}. Dropbox will look in this path first! | ||
+ | }} | ||
− | + | == Securing your Dropbox == | |
− | |||
− | ==Securing | ||
If you want to store sensitive data in your Dropbox, you should encrypt it before. Syncing to Dropbox is encrypted, but all files are (for the time being) stored on the server unencrypted just as you put them in your Dropbox. | If you want to store sensitive data in your Dropbox, you should encrypt it before. Syncing to Dropbox is encrypted, but all files are (for the time being) stored on the server unencrypted just as you put them in your Dropbox. | ||
Line 101: | Line 106: | ||
* Another possibility is to use [[EncFS]], which has the advantage that all files are encrypted separately, i.e. you do not have to determine in advance the size of the content you want to encrypt and your encrypted directory grows and shrinks while you add/delete/modify files in it. You can also mount an encrypted volume at startup using the {{ic|-S}} option of {{Ic|encfs}} to avoid having to input the passphrase, but note that your encrypted files are not secure from someone who has direct access to your computer. | * Another possibility is to use [[EncFS]], which has the advantage that all files are encrypted separately, i.e. you do not have to determine in advance the size of the content you want to encrypt and your encrypted directory grows and shrinks while you add/delete/modify files in it. You can also mount an encrypted volume at startup using the {{ic|-S}} option of {{Ic|encfs}} to avoid having to input the passphrase, but note that your encrypted files are not secure from someone who has direct access to your computer. | ||
− | ===Setup EncFS | + | === Setup EncFS with Dropbox === |
+ | |||
Follow the Wiki instructions to install [[EncFS]]. | Follow the Wiki instructions to install [[EncFS]]. | ||
− | Assuming you have set your Dropbox directory as ~/Dropbox: | + | Assuming you have set your Dropbox directory as {{ic|~/Dropbox}}: |
Create a folder. Files you want synced to Dropbox will go in here. | Create a folder. Files you want synced to Dropbox will go in here. | ||
Line 112: | Line 118: | ||
$ encfs ~/Dropbox/Encrypted ~/Private | $ encfs ~/Dropbox/Encrypted ~/Private | ||
− | Your secure folder is ready for use; creating any file inside ~/Private will automatically encrypt it into ~/Dropbox/Encrypted, which will then be synced to your cloud storage. | + | Your secure folder is ready for use; creating any file inside {{ic|~/Private}} will automatically encrypt it into {{ic|~/Dropbox/Encrypted}}, which will then be synced to your cloud storage. |
+ | |||
+ | To mount your EncFS folder on every boot, follow the instructions in the [[EncFS#User_friendly_mounting|EncFS]] wiki page. | ||
− | + | {{Tip|Consider using the {{ic|ENCFS6_CONFIG}} variable and moving the {{ic|.encfs6.xml}} file to another location (like a USB stick), to help ensure that your encrypted data and the means to realistically decrypt it do not exist together online.}} | |
− | |||
− | ==Multiple Dropbox | + | == Multiple Dropbox instances == |
If you need to separate or distinguish your data, personal and work usage for example, you can subscribe to Dropbox with different email addresses and have multiple directories synced to different instances. | If you need to separate or distinguish your data, personal and work usage for example, you can subscribe to Dropbox with different email addresses and have multiple directories synced to different instances. | ||
Line 128: | Line 135: | ||
{{bc|<nowiki> | {{bc|<nowiki> | ||
− | #!/bin/bash | + | #!/bin/bash |
+ | |||
+ | #******************************* | ||
+ | # Multiple dropbox instances | ||
+ | #******************************* | ||
+ | |||
+ | dropboxes=(.dropbox-personal .dropbox-work) | ||
− | + | for dropbox in ${dropboxes[@]}; do | |
− | + | if ! [ -d $HOME/$dropbox ];then | |
− | + | mkdir $HOME/$dropbox | |
− | + | fi | |
− | + | HOME=$HOME/$dropbox/ /opt/dropbox/dropbox start -i & | |
− | + | done | |
− | for dropbox in ${dropboxes[@]} | ||
− | |||
− | if ! [ -d $HOME/$dropbox ];then | ||
− | mkdir $HOME/$dropbox | ||
− | fi | ||
− | HOME=$HOME/$dropbox/ / | ||
− | done | ||
</nowiki>}} | </nowiki>}} | ||
− | ==Dropbox on | + | == Dropbox on laptops == |
− | Dropbox itself is pretty good at dealing with connectivity problems. If you have a laptop and roam between different network environments, Dropbox will have problems reconnecting if you do not restart it. | + | Dropbox itself is pretty good at dealing with connectivity problems. If you have a laptop and roam between different network environments, Dropbox will have problems reconnecting if you do not restart it. '''Try one of the methods described below first,''' if for some reason the problem remains, you may try one of these hackish solutions: [https://bbs.archlinux.org/viewtopic.php?pid=790905], [https://bbs.archlinux.org/viewtopic.php?pid=1012343#p1012343]. |
− | + | {{Note|When using any of these methods, you need to prevent Dropbox from doing a standard autostart by unchecking ''Dropbox - Preferences - General - Start Dropbox on system startup''. This prevents Dropbox from creating the {{ic|~/.config/autostart/dropbox.desktop}} file and thus from starting twice.}} | |
− | {{ | + | |
− | + | === Using netctl === | |
− | + | ||
− | + | For [[netctl]], use {{ic|ExecUpPost}} and {{ic|ExecDownPre}} respectively in every network profile you use, or for example in {{ic|/etc/netctl/interfaces/wlan0}} to start Dropbox automatically whenever profile on {{ic|wlan0}} is active. Add '|| true' to your command to make sure [[netctl]] will bring up your profile, although Dropbox fails to start. | |
− | For [[netctl]], use ExecUpPost and ExecDownPre respectively. Add '|| true' to your command to make sure [[netctl]] will bring up your profile, although Dropbox fails to start. | + | |
− | + | ExecUpPost="''any other code''; su -c 'DISPLAY=:0 /usr/bin/dropboxd &' ''your_user'' || true" | |
− | ExecUpPost="any other code; su -c 'DISPLAY=:0 /usr/bin/dropboxd &' your_user || true" | + | ExecDownPre="''any other code''; killall dropbox" |
− | ExecDownPre="any other code; killall dropbox" | + | |
− | + | Obviously, {{ic|''your_user''}} has to be edited and {{ic|''any other code'';}} can be omitted if you do not have any. The above will make sure that Dropbox is running only if there is a network profile active. | |
− | Obviously, your_user has to be edited and 'any other code; | + | |
+ | === Using NetworkManager === | ||
+ | |||
+ | If you have connectivity problem with [[NetworkManager]], try using a [[NetworkManager#Network services with NetworkManager dispatcher|dispatcher script]]: {{AUR|networkmanager-dispatcher-dropbox}} or {{AUR|networkmanager-dispatcher-dropbox-systemd}}. | ||
+ | |||
+ | == Troubleshooting == | ||
+ | |||
+ | === Dropbox keeps saying Downloading files === | ||
+ | |||
+ | But in fact now files are synced with your box. This problem is likely to appear when your Dropbox folder is located on a NTFS partition whose mount path contains spaces, or permissions are not set for that partition. See more in the [[https://bbs.archlinux.org/viewtopic.php?id=153368 forums]]. To resolve the problem pay attention to your entry in {{ic|/etc/fstab}}. Avoid spaces in the mount path and set write permissions with the "default_permissions" option: | ||
− | + | UUID=01CD2ABB65E17DE0 /run/media/username/Windows ntfs-3g uid=username,gid=users,default_permissions 0 0 | |
− | + | === Change the Dropbox location from the installation wizard === | |
− | ===Dropbox | ||
− | |||
− | + | Some users experience the problem during setting-up Dropbox that they cannot select a Dropbox folder other than {{ic|/home/username/Dropbox}}. In this case when the window for changing the path is shown , hit {{ic|Ctrl+l}}, enter the location (e.g. /mnt/data/Dropbox) and click on the '"Choose" or "Open" button. | |
− | === | + | === Context menu entries in file manager do not work === |
− | |||
− | |||
Several file managers such as Thunar, Nautilus or its fork Nemo come with extensions that provide context menu entries for files and folders inside your Dropbox. Most of them will result in a browser action such as opening the file or folder in dropbox.com or sharing the link. If you experience these entries to not working, then you are likely to have not set the {{ic|$BROWSER}} variable which Dropbox requires. You can check that by | Several file managers such as Thunar, Nautilus or its fork Nemo come with extensions that provide context menu entries for files and folders inside your Dropbox. Most of them will result in a browser action such as opening the file or folder in dropbox.com or sharing the link. If you experience these entries to not working, then you are likely to have not set the {{ic|$BROWSER}} variable which Dropbox requires. You can check that by | ||
− | echo $BROWSER | + | $ echo $BROWSER |
To set your {{ic|$BROWSER}} variable open {{ic|~/.profile}} and replace {{ic|chromium}} with your default browser: | To set your {{ic|$BROWSER}} variable open {{ic|~/.profile}} and replace {{ic|chromium}} with your default browser: | ||
if [ -n "$DISPLAY" ]; then | if [ -n "$DISPLAY" ]; then | ||
− | + | BROWSER=chromium | |
fi | fi | ||
− | ===Connecting...=== | + | === Connecting... === |
− | |||
− | |||
+ | It may happen that Dropbox cannot connect successfully because it was loaded before an internet connection was established. This can happen on wireless connections, or fast loading machines on wired networks. The best solution to this problem, for wired and wireless connections, is [[#Dropbox on laptops]] which will ensure that Dropbox is started only after the connection is established. | ||
− | + | An alternative solution, for those not using netctl or NetworkManager, is to delay the startup of dropbox: | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | * {{ic|cp ~/.config/autostart/dropbox.desktop ~/.config/autostart/dropbox-delayed.desktop}} | |
− | + | * Prevent dropbox from doing a standard autostart by unchecking Dropbox - Preferences - General - Start Dropbox on system startup. This removes {{ic|~/.config/autostart/dropbox.desktop}}. | |
− | + | * Edit {{ic|~/.config/autostart/dropbox-delayed.desktop}} and replace {{ic|1=Exec=dropboxd}} with {{ic|1=Exec=bash -c "sleep ''timeout'' && dropboxd"}}. Tweak the ''timeout'' parameter, the value of {{ic|3}} is a good start. | |
− | + | === Dropbox does not start - "This is usually because of a permission error" === | |
− | + | ==== Check permissions ==== | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
Make sure that you own Dropbox's directories before running the application. This includes | Make sure that you own Dropbox's directories before running the application. This includes | ||
*{{ic|~/.dropbox}} - Dropbox's configuration directory | *{{ic|~/.dropbox}} - Dropbox's configuration directory | ||
Line 305: | Line 215: | ||
This error could also be caused by {{ic|/var}} being full. | This error could also be caused by {{ic|/var}} being full. | ||
− | ====Re-linking your account==== | + | ==== Re-linking your account ==== |
+ | |||
[https://www.dropbox.com/help/72 Dropbox's FAQ] suggests that this error may be caused by misconfiguration and is fixed by (re)moving the current configuration folder | [https://www.dropbox.com/help/72 Dropbox's FAQ] suggests that this error may be caused by misconfiguration and is fixed by (re)moving the current configuration folder | ||
# mv ~/.dropbox ~/.dropbox.old | # mv ~/.dropbox ~/.dropbox.old | ||
and restarting Dropbox. | and restarting Dropbox. | ||
− | ====Errors caused by running out of space==== | + | ==== Errors caused by running out of space ==== |
+ | |||
A common error that might happen is that there is no more available space on your {{ic|/tmp}} and {{ic|/var}} partitions. If this happens, Dropbox will crash on startup with the following error in its log: | A common error that might happen is that there is no more available space on your {{ic|/tmp}} and {{ic|/var}} partitions. If this happens, Dropbox will crash on startup with the following error in its log: | ||
− | + | ||
− | Exception: Not a valid FileCache file | + | Exception: Not a valid FileCache file |
− | + | ||
A detailed story of such an occurrence can be found in the [https://bbs.archlinux.org/viewtopic.php?pid=973458 forums]. Make sure there is enough space available before launching Dropbox. | A detailed story of such an occurrence can be found in the [https://bbs.archlinux.org/viewtopic.php?pid=973458 forums]. Make sure there is enough space available before launching Dropbox. | ||
− | ====Locale caused errors==== | + | ==== Locale caused errors ==== |
+ | |||
Try starting {{Ic|dropboxd}} with this code: | Try starting {{Ic|dropboxd}} with this code: | ||
Line 326: | Line 239: | ||
This helps when running from a Bash script or Bash shell where {{ic|/etc/rc.d/functions}} has been loaded | This helps when running from a Bash script or Bash shell where {{ic|/etc/rc.d/functions}} has been loaded | ||
− | ====Filesystem monitoring problem==== | + | ==== Filesystem monitoring problem ==== |
+ | |||
If you have a lot of files to sync in your Dropbox folder, you might get the following error: | If you have a lot of files to sync in your Dropbox folder, you might get the following error: | ||
Line 336: | Line 250: | ||
fs.inotify.max_user_watches = 100000 | fs.inotify.max_user_watches = 100000 | ||
− | to {{ic|/etc/sysctl.conf}} and then reload the kernel parameters | + | to {{ic|/etc/sysctl.conf}} and then reload the kernel parameters |
− | + | ||
− | + | # sysctl -p | |
+ | |||
+ | === Proxy settings === | ||
− | |||
The easiest way to set Dropbox's proxy settings is by defining them manually in the Proxies tab of the Preferences window. Alternatively, you can also set it to 'Auto-detect' and then export your proxy server to the http_proxy env variable prior to starting Dropbox (HTTP_PROXY is also usable) | The easiest way to set Dropbox's proxy settings is by defining them manually in the Proxies tab of the Preferences window. Alternatively, you can also set it to 'Auto-detect' and then export your proxy server to the http_proxy env variable prior to starting Dropbox (HTTP_PROXY is also usable) | ||
− | + | ||
+ | {{bc|<nowiki>env http_proxy=http://your.proxy.here:port /usr/bin/dropboxd</nowiki>}} | ||
+ | |||
or | or | ||
− | |||
− | |||
− | + | {{bc|<nowiki> | |
+ | export http_proxy=http://your.proxy.here:port | ||
+ | /usr/bin/dropboxd | ||
+ | </nowiki>}} | ||
+ | |||
+ | {{Note|Dropbox will only use proxy settings of the form {{ic|<nowiki>http://your.proxy.here:port</nowiki>}}, not {{ic|<nowiki>your.proxy.here:port</nowiki>}} as some other applications do.}} | ||
+ | |||
+ | == Alternatives == | ||
− | + | * [[Ubuntu One]] - {{Pkg|ubuntuone-client}} | |
− | *[[Ubuntu One]] - {{Pkg|ubuntuone-client}} | + | * [https://spideroak.com/ Spider Oak] - {{AUR|spideroak}} |
− | *[https://spideroak.com/ Spider Oak] - {{AUR|spideroak}} | + | * [http://kdropbox.deuteros.es/ KFileBox] - {{AUR|kfilebox}} |
− | *[http://kdropbox.deuteros.es/ KFileBox] - {{AUR|kfilebox}} | + | * [https://www.wuala.com/ Wuala] - {{AUR|wuala}} |
− | *[https://www.wuala.com/ Wuala] - {{AUR|wuala}} |
Revision as of 20:51, 2 September 2013
zh-TW:Dropbox
Dropbox is a file sharing system that recently introduced a GNU/Linux client. Use it to transparently sync files across computers and architectures. Simply drop files into your ~/Dropbox
folder, and they will automatically sync to your centralized repository.
Contents
- 1 Installation
- 2 Alternative to install: use the web interface
- 3 Run as daemon with systemd
- 4 Without Nautilus (another way)
- 5 Securing your Dropbox
- 6 Multiple Dropbox instances
- 7 Dropbox on laptops
- 8 Troubleshooting
- 9 Alternatives
Installation
dropboxAUR can be installed from the AUR. Alternatively, dropbox-experimentalAUR is also available.
- After installing the package, you can start Dropbox from your application menu or run
dropboxd
from the command-line. The client icon will appear in the system tray. - A pop-up will notify you that Dropbox is running from an unsupported location. Click on Don't ask again since you know that you have installed it from AUR rather than from the official homepage.
- Eventually a pop-up will ask you to log in to your Dropbox account or create a new account. Enter your credentials.
- After some time you will see a "Welcome to Dropbox" pop-up, which will give you the opportunity to view a short tour of Dropbox.
- Press the "Finish and go to My Dropbox".
For KDE users, no further steps are required (it is enough to install the above dropboxAUR package from the AUR), as KDE saves running applications when logging out and restarts them automatically. Similarly for Xfce users, dropbox will be restarted automatically next time you login since the dropbox.desktop
file be placed in ~/.config/autostart
.
Optional packages
- For a command-line interface, install dropbox-cliAUR from the AUR.
- For integration with Nautilus, install nautilus-dropboxAUR from the AUR. The Nautilus plugin will start Dropbox automatically.
- For integration with Nemo, install nemo-dropbox-gitAUR from the AUR.
- For integration with Thunar, install thunar-dropboxAUR from the AUR.
- For KDE users, there is a KDE client available: kfileboxAUR from the AUR.
Automatically starting Dropbox
Dropbox can be automatically started by adding dropboxd
to ~/.xinitrc
(or ~/.config/openbox/autostart
, depending on your setup). Alternatively, you can start it as a daemon.
Alternative to install: use the web interface
If all you need is basic access to the files in your Dropbox, you can use the web interface at https://www.dropbox.com/ to upload and download files to your Dropbox. This can be a viable alternative to running a Dropbox daemon and mirroring all the files on your own machine.
Run as daemon with systemd
Recent versions of Dropbox come with a systemd service file. By default running Dropbox as a daemon does not give you an icon in the system tray, but syncs your files and folders in the background. If you want to have tray support, create /etc/systemd/system/dropbox@.service
to override the provided service file and specify the environment variable DISPLAY
:
/etc/systemd/system/dropbox@.service
.include /usr/lib/systemd/system/dropbox@.service [Service] Environment=DISPLAY=:0
Finally, to enable the daemon for your user, so that it will start at login:
# systemctl enable dropbox@<user>
Note that you have to manually start Dropbox the first time after installation, so that it runs through the login and setup screen. Further, you need to uncheck the option Start Dropbox on system startup in order to prevent Dropbox from being started twice. The daemon can then be used subsequently.
Run as a daemon with systemd user
If you have followed the systemd/User wiki page, you probably want to start dropbox only when you log in or launch your WM/DE. The solution in that case is to create a service in your home directory instead of using the sysadmin account:
$HOME/.config/systemd/user/dropbox@.service
[Unit] Description=Dropbox as a systemd service After=xorg.target [Service] ExecStart=/home/your_user/.dropbox-dist/dropbox ExecReload=/bin/kill -HUP $MAINPID Environment=DISPLAY=%i [Install] WantedBy=mystuff.target
They you can start or enable it with:
$ systemctl --user {start|enable} dropbox@:0.service
That way you can easily start it in your main display (likely :0) or in another one, without having to hard code it.
/usr/bin/dropboxd
didn't start the service and it didn't show any error either (even when running it directly from the terminal worked fine). I believe it has to do that starting it that way systemd doesn't know which user is actually running the daemon.Without Nautilus (another way)
Another way to use Dropbox without Nautilus but with another file manager like Thunar or Pcmanfm is described below:
1. Create a fake Nautilus script that will launch Thunar:
$ sudo touch /usr/bin/nautilus && sudo chmod +x /usr/bin/nautilus && sudo nano /usr/bin/nautilus
2. Insert this text into the file, then save and exit:
#!/bin/bash exec thunar $2 exit 0
3. Launch Dropbox:
$ dropboxd
4. Click on the Dropbox tray icon to open your Dropbox folder in Thunar.
- In this way there is no need to create a Dropbox daemon in
/etc/rc.d/
and to start it at boot via/etc/rc.conf
or to make it start via your session manager: just leave the "Start Dropbox on system startup" option flagged in the Preferences window. - If you already have Nautilus installed but do not want to use it, don't modify the existing file under
/usr/bin
, just change the/usr/bin
for/opt/dropbox
in the step 2 above, like this:$ sudo touch /opt/dropbox/nautilus && sudo chmod +x /opt/dropbox/nautilus && sudo nano /opt/dropbox/nautilus
. Dropbox will look in this path first!
Securing your Dropbox
If you want to store sensitive data in your Dropbox, you should encrypt it before. Syncing to Dropbox is encrypted, but all files are (for the time being) stored on the server unencrypted just as you put them in your Dropbox.
- Dropbox works with TrueCrypt, and after you initially uploaded the TrueCrypt volume to Dropbox, performance is quite okay, because Dropbox has a working binary diff.
- Another possibility is to use EncFS, which has the advantage that all files are encrypted separately, i.e. you do not have to determine in advance the size of the content you want to encrypt and your encrypted directory grows and shrinks while you add/delete/modify files in it. You can also mount an encrypted volume at startup using the
-S
option ofencfs
to avoid having to input the passphrase, but note that your encrypted files are not secure from someone who has direct access to your computer.
Setup EncFS with Dropbox
Follow the Wiki instructions to install EncFS.
Assuming you have set your Dropbox directory as ~/Dropbox
:
Create a folder. Files you want synced to Dropbox will go in here.
$ mkdir ~/Private
Run the following and enter a password when asked:
$ encfs ~/Dropbox/Encrypted ~/Private
Your secure folder is ready for use; creating any file inside ~/Private
will automatically encrypt it into ~/Dropbox/Encrypted
, which will then be synced to your cloud storage.
To mount your EncFS folder on every boot, follow the instructions in the EncFS wiki page.
ENCFS6_CONFIG
variable and moving the .encfs6.xml
file to another location (like a USB stick), to help ensure that your encrypted data and the means to realistically decrypt it do not exist together online.Multiple Dropbox instances
If you need to separate or distinguish your data, personal and work usage for example, you can subscribe to Dropbox with different email addresses and have multiple directories synced to different instances.
The basic principle and general how-to are described in the Dropbox Wiki.
/home/dropbox-personal
, /home/dropbox-work
, and so on.For convenience, here is a script that I use to accomplish the task: just add a dir in the "dropboxes" list to have another instance of Dropbox, referring to the dir, loaded at script startup.
#!/bin/bash #******************************* # Multiple dropbox instances #******************************* dropboxes=(.dropbox-personal .dropbox-work) for dropbox in ${dropboxes[@]}; do if ! [ -d $HOME/$dropbox ];then mkdir $HOME/$dropbox fi HOME=$HOME/$dropbox/ /opt/dropbox/dropbox start -i & done
Dropbox on laptops
Dropbox itself is pretty good at dealing with connectivity problems. If you have a laptop and roam between different network environments, Dropbox will have problems reconnecting if you do not restart it. Try one of the methods described below first, if for some reason the problem remains, you may try one of these hackish solutions: [1], [2].
~/.config/autostart/dropbox.desktop
file and thus from starting twice.Using netctl
For netctl, use ExecUpPost
and ExecDownPre
respectively in every network profile you use, or for example in /etc/netctl/interfaces/wlan0
to start Dropbox automatically whenever profile on wlan0
is active. Add '|| true' to your command to make sure netctl will bring up your profile, although Dropbox fails to start.
ExecUpPost="any other code; su -c 'DISPLAY=:0 /usr/bin/dropboxd &' your_user || true" ExecDownPre="any other code; killall dropbox"
Obviously, your_user
has to be edited and any other code;
can be omitted if you do not have any. The above will make sure that Dropbox is running only if there is a network profile active.
Using NetworkManager
If you have connectivity problem with NetworkManager, try using a dispatcher script: networkmanager-dispatcher-dropboxAUR or networkmanager-dispatcher-dropbox-systemdAUR.
Troubleshooting
Dropbox keeps saying Downloading files
But in fact now files are synced with your box. This problem is likely to appear when your Dropbox folder is located on a NTFS partition whose mount path contains spaces, or permissions are not set for that partition. See more in the [forums]. To resolve the problem pay attention to your entry in /etc/fstab
. Avoid spaces in the mount path and set write permissions with the "default_permissions" option:
UUID=01CD2ABB65E17DE0 /run/media/username/Windows ntfs-3g uid=username,gid=users,default_permissions 0 0
Change the Dropbox location from the installation wizard
Some users experience the problem during setting-up Dropbox that they cannot select a Dropbox folder other than /home/username/Dropbox
. In this case when the window for changing the path is shown , hit Ctrl+l
, enter the location (e.g. /mnt/data/Dropbox) and click on the '"Choose" or "Open" button.
Several file managers such as Thunar, Nautilus or its fork Nemo come with extensions that provide context menu entries for files and folders inside your Dropbox. Most of them will result in a browser action such as opening the file or folder in dropbox.com or sharing the link. If you experience these entries to not working, then you are likely to have not set the $BROWSER
variable which Dropbox requires. You can check that by
$ echo $BROWSER
To set your $BROWSER
variable open ~/.profile
and replace chromium
with your default browser:
if [ -n "$DISPLAY" ]; then BROWSER=chromium fi
Connecting...
It may happen that Dropbox cannot connect successfully because it was loaded before an internet connection was established. This can happen on wireless connections, or fast loading machines on wired networks. The best solution to this problem, for wired and wireless connections, is #Dropbox on laptops which will ensure that Dropbox is started only after the connection is established.
An alternative solution, for those not using netctl or NetworkManager, is to delay the startup of dropbox:
-
cp ~/.config/autostart/dropbox.desktop ~/.config/autostart/dropbox-delayed.desktop
- Prevent dropbox from doing a standard autostart by unchecking Dropbox - Preferences - General - Start Dropbox on system startup. This removes
~/.config/autostart/dropbox.desktop
. - Edit
~/.config/autostart/dropbox-delayed.desktop
and replaceExec=dropboxd
withExec=bash -c "sleep timeout && dropboxd"
. Tweak the timeout parameter, the value of3
is a good start.
Dropbox does not start - "This is usually because of a permission error"
Check permissions
Make sure that you own Dropbox's directories before running the application. This includes
~/.dropbox
- Dropbox's configuration directory~/Dropbox
- Dropbox's download directory (default)
You can ensure this by changing their owner with chown -R
.
This error could also be caused by /var
being full.
Re-linking your account
Dropbox's FAQ suggests that this error may be caused by misconfiguration and is fixed by (re)moving the current configuration folder
# mv ~/.dropbox ~/.dropbox.old
and restarting Dropbox.
Errors caused by running out of space
A common error that might happen is that there is no more available space on your /tmp
and /var
partitions. If this happens, Dropbox will crash on startup with the following error in its log:
Exception: Not a valid FileCache file
A detailed story of such an occurrence can be found in the forums. Make sure there is enough space available before launching Dropbox.
Locale caused errors
Try starting dropboxd
with this code:
LANG=$LOCALE dropboxd
(You can also use a different value for LANG; it must be in the format "en_US.UTF-8")
This helps when running from a Bash script or Bash shell where /etc/rc.d/functions
has been loaded
Filesystem monitoring problem
If you have a lot of files to sync in your Dropbox folder, you might get the following error:
Unable to monitor filesystem Please run: echo 100000 | sudo tee /proc/sys/fs/inotify/max_user_watches and restart Dropbox to correct the problem.
This can be fixed easily by adding
fs.inotify.max_user_watches = 100000
to /etc/sysctl.conf
and then reload the kernel parameters
# sysctl -p
Proxy settings
The easiest way to set Dropbox's proxy settings is by defining them manually in the Proxies tab of the Preferences window. Alternatively, you can also set it to 'Auto-detect' and then export your proxy server to the http_proxy env variable prior to starting Dropbox (HTTP_PROXY is also usable)
env http_proxy=http://your.proxy.here:port /usr/bin/dropboxd
or
export http_proxy=http://your.proxy.here:port /usr/bin/dropboxd
http://your.proxy.here:port
, not your.proxy.here:port
as some other applications do.Alternatives
- Ubuntu One - ubuntuone-client
- Spider Oak - spideroakAUR
- KFileBox - kfileboxAUR
- Wuala - wualaAUR