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.
安装
AUR
- 安装完毕,您就可以从程序菜单中的图标或者是在命令行中输入
dropboxd
启动 Dropbox。 您将会在系统托盘中看到程序的图标。 - Dropbox 也许会有弹窗提示(此程序非官网下载等等),你知道这个程序是从 AUR 下载安装的就好啦,然后你可以放心大胆的点击“Don't ask again”来忽视这个提示。
- 然后会看到一个要求您输入账户信息的窗口,您可以输入已有账户或者是新建一个账户。
- 再然后您会看到 Dropbox 的欢迎页面,此处将会有一个关于如何使用 Dropbox 的简短的介绍。
- 点击 "Finish and go to My Dropbox"。
手动安装
以下的内容将介绍 从命令行下手动安装 Dropbox。以 64 位系统为例,运行:
$ cd ~ $ wget -O - "https://www.dropbox.com/download?plat=lnx.x86_64" | tar xzf -
然后,启动 Dropbox:
$ ~/.dropbox-dist/dropboxd
可选软件包
- 纯命令行界面,从 AUR 安装 dropbox-cliAUR。
- GNOME 集成,从 AUR 安装 nautilus-dropboxAUR,此插件将会自动启动 Dropbox。
- Nemo 集成,从 AUR 安装 nemo-dropbox-gitAUR。
- Thunar 集成, 从 AUR 安装 thunar-dropboxAUR。
- 对于 KDE 用户,也可以在 AUR 中找到 KDE 下的应用:kfileboxAUR。
启动
自动启动 Dropbox
对于 KDE 用户来说,在注销用户或者是重启机器后,之前正在运行的程序将会自动重新启动。Xfce 稍有不同,将 dropbox.desktop
放置在 {ic|~/.config/autostart}} 下,Dropbox 在下次启动时就会自动启动了。
如果这些都不能正常的工作,那您也可以将 ~/.dropbox-dist/dropboxd &
添加到 ~/.xinitrc
来让窗口管理器控制它的启动(也有可能在 ~/.config/openbox/autostart
,看你的设置了)。当然,您也可以将 Dropbox 作为服务启动.
作为 systemd 的服务启动
当前的 Dropbox 版本已经包含了 systemd 服务文件。默认的 systemd 服务文件并不能在系统托盘中显示软件的图标,但是依旧在后台默默的为您同步您的文件。如果您需要托盘图标支持,那么建立 /etc/systemd/system/dropbox@.service
,修改环境变量 DISPLAY
后替换默认的 systemd 服务文件:
/etc/systemd/system/dropbox@.service
.include /usr/lib/systemd/system/dropbox@.service [Service] Environment=DISPLAY=:0
最后,启动此服务,在登录时 Dropbox 将能够自动运行:
# 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/<user>/.dropbox-dist/dropboxd ExecReload=/bin/kill -HUP $MAINPID Environment=DISPLAY=%i [Install] WantedBy=default.target
Then 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
did not start the service and it did not 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 does not know which user is actually running the daemon.不安装 Dropbox 而访问文件
如果您仅需要基本的访问文件的功能,那么您可以访问 https://www.dropbox.com/ 来上传或者是下载您的文件。此方法不需要安装 Dropbox 。
另外,您也可以尝试从 AUR 安装 droxiAUR ,此终端工具提供了类似于 GNU ftp
客户端的功能。
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 their directories synced by different Dropbox instances running on a single machine.
The basic principle and general how-to are described in the Dropbox Wiki.
To summarize, you can setup new or additional instances with:
mkdir /path/to/.dropbox-alt-1 HOME=/path/to/.dropbox-alt-1 /usr/bin/dropbox start -i
Once that is done, stop any Dropbox instance still running and start them like this:
HOME=/path/to/.dropbox-alt-1 /path/to/.dropbox-alt-1/.dropbox-dist/dropboxd HOME=/path/to/.dropbox-alt-2 /path/to/.dropbox-alt-2/.dropbox-dist/dropboxd
Pay attention to use different .../.dropbox-dist/dropboxd
binaries. Even when setting a custom HOME value, the /opt/dropbox/dropbox
or /opt/dropbox/dropboxd
wrappers allow only one instance and when started they will kill the one already running.
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[损坏的链接:package not found] or networkmanager-dispatcher-dropbox-systemdAUR[损坏的链接:package not found].
Using wicd
Create /etc/wicd/scripts/postconnect/dropbox:
#!/usr/bin/env bash su -c 'DISPLAY=:0 /usr/bin/dbus-launch dropboxd &' your_username
or, if you use dropbox with systemd:
#!/usr/bin/env bash systemctl restart dropbox@<user>
Create /etc/wicd/scripts/postdisconnect/dropbox:
#!/usr/bin/env bash killall dropbox
or, if you use dropbox with systemd:
#!/usr/bin/env bash systemctl stop dropbox@<user>
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, GNOME Files 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 not working, then it is likely you have not set the $BROWSER
variable which Dropbox requires. See Environment variables for details.
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.
Another case is when the root partition is full:
OperationalError: database or disk is full
Check to see the available space on partitions with df
.
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.d/99-sysctl.conf
and then reload the kernel parameters
# sysctl --system
代理设置
最简单的方法是在 Dropbox 的首选项页面设置代理。另外也可以设置为自动选择代理,它将会读取 http_proxy 的变量而使用合适的代理。
env http_proxy=http://your.proxy.here:port /usr/bin/dropboxd
或者
export http_proxy=http://your.proxy.here:port /usr/bin/dropboxd
http://your.proxy.here:port
代理表示方法, 此表示方法不被支持 your.proxy.here:port
(大部分程序都不支持此方法) 。不要让它自动升级
rm -rf ~/.dropbox-dist install -dm0 ~/.dropbox-dist