更改标记为乙
以下情况:我是一名大学生,显然几乎每天都需要去大学,在那里我有很多休息时间。目前,我拥有一台非常强大的电脑,配备 4k 显示屏,这显然对我来说太大了,无法随身携带,所以我会买一台笔记本电脑。
然而,这就是我的麻烦开始的地方,我绝对鄙视必须搞乱多个系统,这些系统基本上完成相同的工作,我可以避免它。我知道通常的做法是拥有一台带有自己的系统和文件的笔记本电脑,并在需要时复制所需的任何内容,但笔记本电脑上的所有内容基本上只是我必须复制的计算机上的内容的副本单独维护。乙我特别谈论的是我目前正在运行的几个 IDE,它们都需要设置,并且所有项目我都需要下载并运行两次,而不是仅仅已经准备好了。我知道,大多数情况下您可以为每个软件复制一个配置目录,但是本地测试数据库呢?那些未存储在主目录中且不易找到的游戏保存又如何呢?
总而言之,我有更好的事情要做,所以我正在寻找解决方案。以下是我到目前为止提出的一些想法,我希望有经验的用户能够提供一些想法,他们可能对如下设置有宝贵的意见或经验。走之前补充几点:
- 我不会同时使用这些机器。绝不。如果我这样做,我只会读取文件,不会更改任何内容
- 我还没有笔记本电脑,所以我可以在那里自由选择
- 电池寿命对我来说很重要,这将在稍后的移动优先想法中出现
- 我上线了Linux这仅适用于 Linux 的解决方案。我不会切换,因为我现在拥有的系统太多了
- 乙由于这是我的私人计算机,我会进行通常的浏览、有限的游戏(但不必是便携式的)和文档编辑
- 我也是一名程序员,但他(必须运行)/(正在运行)定期运行 4 个不同的 IDE,加上本地网络服务器、数据库等等
乙最后一点:我是一个好奇的人,这是我想尝试这个的主要原因,不一定是因为它比仅运行两个系统并根据需要进行复制带来了很多好处。我想看看在不破坏任何重大内容的情况下如何提高效率,并测试目前可行的极限。我的部分灵感来自于我不记得来源的一篇文章,他们在哪里谈到了你在哪里工作并不重要,你应该总是得到你最后所做的事情(这显然不是完全可行的,对吧)现在,但这只是朝着这种感觉迈出的一步)。
共享驱动器
在两台计算机上安装单独的系统,然后设置某种共享驱动器来同步主文件夹。如果您使用滚动发布系统,您可以让系统非常相似,而无需手动同步,只需初始设置时间即可完成这两件事。
优点
- 没有太多的设置时间
- 没有实验,这个已经用过很多次了
缺点
- 系统维护必须进行两次
- 我猜共享驱动器将位于计算机上,因此当我没有良好的互联网连接(在火车上)时,我无法访问笔记本电脑上的文件
X-转发
老实说,我没有对此进行过深入研究,但我想我已经了解了基本概念。人们建议使用 xpra,我测试后会立即更新。
优点
- 你绝对完全只在一个系统上工作,笔记本电脑系统或多或少只是连接到计算机的一种权宜之计
- 你可以买一台非常便宜的笔记本电脑
缺点
- 嗯,这是远程会话,速度可能很慢
- 没有互联网,无法工作。使用共享驱动器,您至少可以在临时目录中执行某些操作
棒上的系统
这里的想法是将此处列出的任何技术与可移动系统相结合。您在一根 16GB 的存储棒上安装一个系统,然后从其他地方获取文件(也许只是挂载主目录并将其他所有内容保留在该存储棒上,或者只使用一个包含大文件和备份的远程目录)。
优点
- 嗯,这只是一个系统。欢呼。
- 从技术上讲,如果您要去的地方有计算机,您甚至不需要笔记本电脑
缺点
- 愚蠢的事情总是挂在一个 USB 端口上并堵塞它。我工作的时候你怎么敢把它拔出来。我怎么敢把它忘记在某个地方并且永远无法恢复我的系统。
- 您仍然需要在两台计算机上都有一个备份系统,以防这台计算机丢失或发生其他情况
“移动优先”
购买一台功能强大的笔记本电脑,只需购买一台显示器,或许还可以购买一些外围设备,以便在家中更舒适地工作。完全没有第二台机器。
优点
- 可能比较便宜
- 非常酷的解决方案,几乎没有技术问题
缺点
- 如果你已经拥有一台像我一样的好电脑,你可能不想再花 1000 多美元买一台笔记本电脑,以免降级太多
- 嗯,好的笔记本电脑的电池寿命很差。那不适合我
文件系统的 VCS(部分)
这可能需要某种版本控制系统来控制哪些文件发生了更改。一旦您位于同一网络中或一旦您有足够的可用带宽,这些文件就会“提交”(同步)。乙答案中的人说,使用 git 服务器/ ownclowd 结合适当的 cronjob 是非常可行的,而不必担心它。
优点
- 完整的镜像,随身携带一切,即使没有网络,您也可以稍后同步
- 没有双重维护,只有 git repo
缺点
- 好吧,你必须来回同步很多次。
- git 服务器设置、git 存储库维护
虚拟机
将您需要的软件放在虚拟机中的所有计算机上(或每台计算机),然后在计算机之间移动它们或在线托管它们。
优点
- 对软件版本控制非常精细
- 几乎保证数据完整性
缺点
- 大量的开销(不仅是磁盘空间,而且主要是磁盘空间),因为您至少在每台计算机上安装 2 个系统 - 主机和虚拟机。此外,还有额外的启动时间,具体取决于您的设置方式
- 如果我可以相信我的经验,如果您要在手机上进行实时调试,这将需要一些时间来设置,例如,因为您需要转发 USB 端口和其他东西
Sooo,感谢您到目前为止的阅读。这四个想法按我认为可能是最佳模型的顺序排列。在我看来,所有这些都不是完美的,但是,嘿,这个世界上有什么是完美的。正如我所说,我对任何意见都很高兴。
答案1
我的建议是首先确定(并为我们说明)您的实际需求,而不是感知到的问题。
那么最重要的是您的预期用途是什么?你是程序员吗?计算机科学专业的学生?在另一个领域?您想使用什么程序?您对简单的 shell 脚本编写感到满意吗?这将对好的推荐产生巨大的影响。
如果您是一名程序员,我建议您使用设置文件单独维护系统,例如.bashrc
通过 github 存储库维护。这将是您的镜像文件系统选项。
如果您不是程序员,我建议您使用远程计算机,无论您身在何处都可以连接到该计算机。您仍然需要一台功能相当强大的计算机来帮助最大限度地减少始终存在的延迟。
归根结底,没有完美的解决方案,正确的方法取决于您向我们提供的更多细节。自动化让生活变得更轻松和过度自动化之间总是存在平衡,以至于当事情发生故障时(它们总是如此),你不知道如何修复它。不过我不会在这上面花太多时间。尝试一种解决方案,看看它是否适合您,如果不适合,请进行更改或调整。
正如评论中提到的,我必须让 .bashrc 在 max 和 ubuntu 以及我尚未安装工具的系统上运行。这里是:
HISTCONTROL=ignoreboth:erasedups HISTSIZE=100000 HISTFILESIZE=200000
shopt -s histappend checkwinsize
PROMPT_COMMAND='history -a'
test -f ~/.bash_functions.sh && . $_
test -f ~/.bash_aliases && . $_
test -f ~/.eq_aliases && . $_
test -f ~/.git-completion.bash && . $_
test -f /etc/bash_completion && ! shopt -oq posix && . /etc/bash_completion
test -f ~/.autojump/etc/profile.d/autojump.sh && . $_
ls --color=al > /dev/null 2>&1 && alias ls='ls -F --color=al' || alias ls='ls -G'
HOST='\[\033[02;36m\]\h'; HOST=' '$HOST
TIME='\[\033[01;31m\]\t \[\033[01;32m\]'
LOCATION=' \[\033[01;34m\]`pwd | sed "s#\(/[^/]\{1,\}/[^/]\{1,\}/[^/]\{1,\}/\).*\(/[^/]\{1,\}/[^/]\{1,\}\)/\{0,1\}#\1_\2#g"`'
BRANCH=' \[\033[00;33m\]$(git_branch)\[\033[00m\]\n\$ '
PS1=$TIME$USER$HOST$LOCATION$BRANCH
PS2='\[\033[01;36m\]>'
set -o vi # vi at command line
export EDITOR=vim
export PATH="/usr/local/heroku/bin:$PATH" # Added by the Heroku Toolbelt
export PYTHONPATH=/usr/local/lib/python2.7/site-packages/ # for meld mdd 4/19/2014
[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)" # friendly for non-text files
[ ${BASH_VERSINFO[0]} -ge 4 ] && shopt -s autocd
tmux
export PATH="$PATH:$HOME/.rvm/bin" # Add RVM to PATH for scripting
export PATH=$HOME/.node/bin:$PATH
答案2
您可能还应该查看虚拟机和云解决方案。 VM 现在很常见,并用于解决许多问题。您可以有很多,比如每个都有特定的 IDE、它的版本或不同的操作系统。您可以拍摄快照,以便在犯错误时可以及时返回,当然您可以将它们从一个硬件移动到另一个硬件。他们可以通过 nfs 或云等共享文件系统。您甚至可以偶尔在提供 ubuntu 实例的 amazon EC2 等服务上购买额外的 CPU 能力。
答案3
又短又甜
您可以设置 git 存储库和 owncloud 的混合体,例如添加 virtualbox / USB 存储(也许使用 lvm),设置应该可以完成这项工作。
答案4
对于很多东西,在 Linux 上,您可以安装到一个小型 USB3 棒上(例如,我使用 SanDisk ultrafits,我常用的发行版是 Ubuntu Studio)。这就是我对笔记本电脑所做的事情。然后我可以毫无问题地将其从一台机器移动到另一台机器,包括在笔记本电脑和台式机之间移动。事实上,我的桌面工作站还可以启动虚拟机中的 USB 驱动器,将工作备份到工作站上的硬盘上,等等。这取决于您是否需要更快的系统驱动器或更多的存储空间。 (它们非常便宜,所以当一件穿坏了时,就换一件新的。)