嘿,我想知道,在全新安装 Ubuntu 后,如何使用 shell 脚本安装所有必需的软件(vlc、apache、MySQL、PHP、java、Netbeans 等)。
我还希望使用相同的 shell 脚本来配置我的静态网络 IP,包括 IPv4 的地址、网关、网络掩码和 DNS 服务器 IP...可以吗?
并非不可能,对吧?
答案1
我大约一周前就这样做了,因为我的 SSD 坏了,我不得不使用 LiveCD,而且我不想重复这些步骤:
我使用的变量应该是解释性的:
ifconfig eth0 $address netmask $netmask
ip route add default via $gateway
echo "nameserver $dns_server" > /etc/resolv.conf
这假设脚本将以 root 身份运行。如果不是,您需要sudo
在前两个命令前面添加,并>
在第三个命令中替换为| sudo tee
。请注意,这些命令绕过了网络管理器,但对我来说有效。YMMV
要安装程序,你可以使用 apt:
apt-get install vlc apache2 mysql-server php5 [other packages here]
接下来是从我在 LiveCD 上安装软件的代码中检索到的(将通过 sudo 请求 root 权限):
try_install_yes_to_all=false
try_install () {
# Usage: try_install 'apt_options' package1 package2 ... packageN
# You'll be prompted whether you want to install a (set of) package(s) or not
# Y=Yes, N=No, A=All (do not ask in future)
local opts="$1"
shift
if [ $(dpkg -l "$@" 2>/dev/null | grep '^ii' | wc -l) != $# ]; then
while true; do
$try_install_yes_to_all || printf 'install %s ? [Y/N/A] ' "$*"
$try_install_yes_to_all && yn=Y || read yn
case "$yn" in
[YyAa])
[[ $yn == [Aa] ]] && try_install_yes_to_all=true
sudo apt-get install -y $opts "$@"
break
;;
[Nn])
break
;;
esac
done
fi
}
# install language packs
try_install '' language-pack-kde-nl language-support-nl
# install Firefox without "Recommended:" packages (like firefox-globalmenu)
try_install '--no-install-recommends' firefox
因为某些软件包需要重新登录(语言包),所以我通过在内核选项中添加下一行来编辑启动选项:
init=/bin/bash
modprobe usb-storage
这将加载 shell,而不是执行正常启动。使用这个 shell,如果装有脚本的 USB 记忆棒未插入系统,则可能需要运行。
接下来,挂载包含脚本的分区并运行它:
mount /dev/sdc1 /mnt
/mnt/script-to-run
请注意,您不能使用Ctrl+C或文件描述符。如果您需要终止包括脚本在内的所有程序,请发出Alt+ SysRq+E快捷方式。如果脚本仍在运行,请使用 Alt+ SysRq+强制终止所有进程i。
脚本完成后,卸载分区:
umount /mnt
要继续正常启动,请运行:
exec init
答案2
要从命令行使用您的网络连接,您可以使用 NetworkManager 命令行界面 (cnetworkmanager) 包:
封装信息:http://packages.ubuntu.com/natty/cnetworkmanager
使用信息:http://vidner.net/martin/software/cnetworkmanager/
连接到名为 YOURSSID 的网络的示例调用:
cnetworkmanager --connect=YOURSSID
至于从命令行安装软件,您可以使用 apt-get 和 apt-cache 命令来完成。首先,您需要找到要安装的确切软件包名称(通常包括您列出的服务的版本号)。您可以使用 apt-cache search 来查找这些。例如:
apt-cache search apache
查看这些结果并找到软件包名称后,您可以使用 apt-get 安装它们:
apt-get install vlc apache mysql etc