2017-07-14 11 views
0

迷惑メールを使用してVMを構築するときに、ユーザーレベルでコマンドを実行するのに役立つでしょうか?具体的には、Ubuntuの画面の左側にある「ランチャーアイコン」を更新しようとしています。以下の迷惑メールファイルでは、私はインラインシェルとインラインスクリプトの両方でこれを試みました。あなたが提供できる援助に感謝します。Vagrantがコマンドラインのユーザーレベルを実行する

$script = <<SCRIPT 
    echo "Configuring Launcher Icons..." 
    gsettings set com.canonical.Unity.Launcher favorites "['application://org.gnome.Nautilus.desktop', 'application://chromium-browser.desktop', 'unity://running-apps', 'application://terminator.desktop', 'unity://expo-icon', 'unity://devices']" 
    service lightdm restart 
SCRIPT 

Vagrant.configure(2) do |config| 
    config.vm.box = "box-cutter/ubuntu1604-desktop" 

    config.vm.provider "virtualbox" do |vb| 
     # Display the VirtualBox GUI when booting the machine 
     vb.gui = true 
     vb.name = "UpdateLauncherIcons" 

     # Customize the amount of memory on the VM: 
     vb.memory = "4096" 
    end 

    config.vm.provision "shell", inline: <<-SHELL 
     # Update OS 
     apt-get update 
     apt-get upgrade 
     apt-get --yes install git 
     apt-get --yes install terminator 
     apt-get --yes install chromium-browser 

     gsettings set com.canonical.Unity.Launcher favorites "['application://org.gnome.Nautilus.desktop', 'application://chromium-browser.desktop', 'unity://running-apps', 'application://terminator.desktop', 'unity://expo-icon', 'unity://devices']" 
     service lightdm restart 

    SHELL 

    config.vm.provision "shell", inline: $script 

end 

注、浮浪者は、インラインスクリプトが実行されたときにエラーメッセージを提供し:ターミナルウィンドウ内のゲスト・マシンで実行されたとき

==> default: Running provisioner: shell... 
default: Running: inline script 
==> default: Configuring Launcher Icons... 
==> default: 
==> default: (process:6221): dconf-WARNING **: failed to commit changes to dconf: Cannot autolaunch D-Bus without X11 $DISPLAY 

さらなる試験がうまく以下コマンド作業ことを確認します。ここでも、ホスト上で実行される迷惑メールファイルからこのコマンドを処理するという課題があります。

gsettings set com.canonical.Unity.Launcher favorites "['application://org.gnome.Nautilus.desktop', 'application://chromium-browser.desktop', 'unity://running-apps', 'application://terminator.desktop', 'unity://expo-icon', 'unity://devices']" 
+0

インラインプロビジョナリの 'sudo -u vagrant​​'です。 –

+0

@CodeGnome私はあなたのアドバイスを試み、使用しました: 'sudo -u vagrant gsettingsはcom.canonical.Unity.Launcherを設定しました" ['application://org.gnome.Nautilus.desktop'、 'unity:// running- 「 」vagrantfileを実行しているホスト端末内にまだエラーメッセージが表示されます: ''==>デフォルト:(プロセス:5495):dconf-CRITICAL **:ディレクトリ '/root/.cache/dconf'を作成できません:許可 が見つかりませんでした。 dconfは正常に動作しません。 ' 他に提案はありますか? – Nick

+0

なぜあなたは何かをルートとして作成していますか?迷惑行為のユーザーは通常、「迷惑」または「ubuntu」であり、デフォルトでsudoを使用してrootとして実行されます。私はあなたが扱っているパーミッションとロケーションについてもう少し説明してもらえると思います。これは明らかにパーミッションの問題です。 –

答えて

0

は、長い時間のためのUbuntuデスクトップベイグラントボックスを使用していないが、我々のチームプロジェクトの一つで同様の設定は、「特権:false」を使用し :だけでなく

config.vm.provision "shell", privileged: false, path: "scripts/setup-desktop.sh" 
config.vm.provision "shell", privileged: false, path: "scripts/configure-desktop.sh" 

シェルプロビジョニングのための自動ログイン

echo "autologin-user=vagrant" | sudo tee -a /etc/lightdm/lightdm.conf 

# restart desktop 
sudo service lightdm restart 

を設定する準備スクリプトは、次の準備スクリプトは、それ

を実行するために、いくつかの自動起動機能を使用して
#!/bin/bash 

#modify shortcuts on ubuntu cause that are used in eclipse 
cat <<AUTOSTART_SHORTCUTS | sudo tee /home/vagrant/bin/modify-shortcuts 
#!/bin/sh 
gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-down [] 
gsettings set org.gnome.desktop.wm.keybindings switch-to-workspace-up [] 
#Disable Resize window (Alt + F8) 
gsettings set org.gnome.desktop.wm.keybindings begin-resize [] 
#Disable move window (Alt + F7) 
gsettings set org.gnome.desktop.wm.keybindings begin-move [] 

AUTOSTART_SHORTCUTS 
sudo chmod 777 /home/vagrant/bin/modify-shortcuts 

cat <<GSETTINGS | sudo tee /home/vagrant/bin/setup-unity 
#!/bin/sh 
# set favourites in launcher 
gsettings set com.canonical.Unity.Launcher favorites "['application://nautilus.desktop', 'application://gnome-terminal.desktop', 'application://firefox.desktop', 'application://chromium-browser.desktop', 'application://gvim.desktop', 'application://IDEA.desktop']" 

# set german keyboard 
gsettings set org.gnome.desktop.input-sources sources "[('xkb', 'de'), ('xkb', 'us')]" 

#Disabling screensaver 
#gsettings set org.gnome.desktop.screensaver idle-activation-enabled false 
gsettings set org.gnome.desktop.session idle-delay 0 

# disable screensaver locking desktop 
gsettings set org.gnome.desktop.screensaver lock-enabled false 

# cleanup 
sudo rm -f /home/vagrant/.config/autostart/setup-unity.desktop 
GSETTINGS 
sudo chmod 777 /home/vagrant/bin/setup-unity 

mkdir -p .config/autostart 

cat <<AUTOSTART_SHORTCUTS_DT | sudo tee /home/vagrant/.config/autostart/modify-shortcuts.desktop 
[Desktop Entry] 
Type=Application 
Exec=/home/vagrant/bin/modify-shortcuts 
Hidden=false 
NoDisplay=false 
X-GNOME-Autostart-enabled=true 
Name[en_US]=modify-shortcuts 
Name=modify-shortcuts 
Comment[en_US]= 
Comment= 
AUTOSTART_SHORTCUTS_DT 
cat <<GSETTINGS_DT | sudo tee /home/vagrant/.config/autostart/setup-unity.desktop 
[Desktop Entry] 
Type=Application 
Exec=/home/vagrant/bin/setup-unity 
Hidden=false 
NoDisplay=false 
X-GNOME-Autostart-enabled=true 
Name[en_US]=setup-unity 
Name=setup-unity 
Comment[en_US]= 
Comment=setup-unity 
GSETTINGS_DT 

# restart desktop 
sudo service lightdm restart 
+0

この情報の検索と投稿に時間をいただき、ありがとうございます。私はすべてのあなたの提案を成功せずに使ってみました。私は、シェルプロビジョナーにとって「特権:偽」が重要だと考えましたが、まだ何かが欠けているようです。 – Nick

関連する問題