<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Ubuntu &#8211; 開発記録</title>
	<atom:link href="https://www.kthksgy.com/tag/ubuntu/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.kthksgy.com</link>
	<description>開発メモです。現在レイアウトが一部崩れている箇所があります。</description>
	<lastBuildDate>Sun, 17 Oct 2021 13:42:05 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.2.2</generator>
	<item>
		<title>【Ubuntu 20.04】2021年10月17日に行ったセットアップ</title>
		<link>https://www.kthksgy.com/linux/ubuntu-20-04-setup-2021-10-17/</link>
					<comments>https://www.kthksgy.com/linux/ubuntu-20-04-setup-2021-10-17/#respond</comments>
		
		<dc:creator><![CDATA[kthksgy]]></dc:creator>
		<pubDate>Sun, 17 Oct 2021 13:42:05 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[環境構築]]></category>
		<guid isPermaLink="false">https://www.kthksgy.com/?p=39</guid>

					<description><![CDATA[KAGOYA CLOUD VPSを新たに契約した時に行ったセットアップのメモです。 簡単な初期設定とDocker及びDocker Composeのインストールを行いました。 ちなみにKAGOYA CLOUD VPSではイ&#8230;]]></description>
										<content:encoded><![CDATA[<p>KAGOYA CLOUD VPSを新たに契約した時に行ったセットアップのメモです。<br />
簡単な初期設定とDocker及びDocker Composeのインストールを行いました。</p>
<p>ちなみにKAGOYA CLOUD VPSではインスタンス作成時にDockerのインストールオプションが提供されているので、Dockerのインストール部分はそれを選んで省略するのも良いと思います。<br />
他にもGitLabやRedmine、Minecraft等のインストールオプションもありました。</p>
<h2>環境</h2>
<ul>
<li>KAGOYA CLOUD VPS (2021-10-17)
<ul>
<li>OSテンプレート: Ubuntu 20.04 LTS</li>
</ul>
</li>
</ul>
<h2>パッケージの更新</h2>
<p>最初は<code>root</code>で実行します。</p>
<h3>更新と再起動</h3>
<pre><code class="language-bash line-numbers">$ apt update &amp;&amp; apt upgrade -y &amp;&amp; reboot
</code></pre>
<h3>クリーンアップと再起動</h3>
<pre><code class="language-bash line-numbers">$ apt autoremove -y &amp;&amp; apt autoclean -y &amp;&amp; reboot
</code></pre>
<h3>Vimのインストール</h3>
<p>今回、初期状態ではTiny Vimがインストールされていたので、通常のVimをインストールし直します。<br />
Tiny Vimだと<a class="wp-editor-md-post-content-link" href="https://www.kthksgy.com/vps/kagoya-cloud-vps-vim-fix-ubuntu-20-04">この記事</a>にまとめたように、入力が少々不便になります。</p>
<pre><code class="language-bash line-numbers">$ apt install -y vim
</code></pre>
<h2>タイムゾーンの確認</h2>
<p><code>date</code>コマンドで簡単にタイムゾーンの確認を行います。<br />
今回はJSTだったのでタイムゾーンの変更は不要でした。</p>
<pre><code class="language-bash line-numbers">$ date
2021年 10月 17日 日曜日 11:43:19 JST
</code></pre>
<h2>作業ユーザーの追加</h2>
<pre><code class="language-bash line-numbers"># ユーザーを追加
<span class="katex math inline">useradd -m -s /bin/bash ユーザー名
# sudoが使えるように</span> usermod -aG sudo ユーザー名
# ユーザーのパスワードを設定
$ passwd ユーザー名
# 2回同じパスワードを入力
</code></pre>
<h3>SSH接続確認</h3>
<pre><code class="language-bash line-numbers">$ ssh ユーザー名@ホスト名
</code></pre>
<h3>公開鍵認証で使用する公開鍵のコピー</h3>
<pre><code class="language-bash line-numbers">$ ssh-copy-id -i ~/.ssh/id_ed25519.pub ユーザー名@ホスト名
</code></pre>
<h3>公開鍵認証でSSH接続確認</h3>
<pre><code class="language-bash line-numbers">$ ssh -i ~/.ssh/id_ed25519 ユーザー名@ホスト名
</code></pre>
<h2>SSHのパスワード認証の無効化</h2>
<p>以降は作成したユーザーで作業を行います。</p>
<pre><code class="language-bash line-numbers">$ sudo vi /etc/ssh/sshd_config
# - #PasswordAuthentication yes
# + PasswordAuthentication no
</code></pre>
<h2>Dockerのインストール</h2>
<p><a class="wp-editor-md-post-content-link" href="https://docs.docker.com/engine/install/ubuntu/">公式のUbuntu用インストールドキュメント</a>を参考にインストールを行います。<br />
今回は新規のUbuntuなので、<strong>Uninstall old versions</strong>は省略して、<strong>Install using the repository</strong>から始めます。</p>
<pre><code class="language-bash line-numbers"># 前提パッケージのインストール
<span class="katex math inline">sudo apt install -y apt-transport-https ca-certificates curl gnupg lsb-release

# GPG鍵の追加</span> curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

# リポジトリ(stable)のセットアップ
<span class="katex math inline">echo "deb [arch=</span>(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu <span class="katex math inline">(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list>/dev/null

# Dockerのインストール</span> sudo apt update &amp;&amp; sudo apt install -y docker-ce docker-ce-cli containerd.io

# Dockerのバージョン確認
$ docker --version
Docker version 20.10.9, build c2ea9bc
</code></pre>
<h2>Docker Composeのインストール</h2>
<p><a class="wp-editor-md-post-content-link" href="https://docs.docker.com/compose/install/">公式のLinux用インストールドキュメント</a>を参考にインストールを行います。</p>
<pre><code class="language-bash line-numbers"># Docker Composeのダウンロードと配置
<span class="katex math inline">sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-</span>(uname -s)-<span class="katex math inline">(uname -m)" -o /usr/local/bin/docker-compose

# 実行権限を与える</span> sudo chmod +x /usr/local/bin/docker-compose

# Docker Composeのバージョン確認
$ docker-compose --version
docker-compose version 1.29.2, build 5becea4c
</code></pre>
<h2>終わりに</h2>
<p>後はDockerでWebサーバーだったりデータベースだったり必要な物を色々入れます。<br />
ホストOSを汚さずに色々出来るのは本当にDocker様様です。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.kthksgy.com/linux/ubuntu-20-04-setup-2021-10-17/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>UbuntuにDockerとDocker-Composeをインストールする【Ubuntu 18.04 LTS】</title>
		<link>https://www.kthksgy.com/linux/ubuntu-docker/</link>
					<comments>https://www.kthksgy.com/linux/ubuntu-docker/#respond</comments>
		
		<dc:creator><![CDATA[kthksgy]]></dc:creator>
		<pubDate>Tue, 21 Apr 2020 23:07:12 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<guid isPermaLink="false">https://www.kthksgy.com/?p=3</guid>

					<description><![CDATA[中々学習コストが高くて気が進まなかったのですが、やっと重い腰を上げてDockerを学ぶ事にして、早速Ubuntuにインストールしました。 Dockerとは Dockerとは仮想化技術の1つで、Hyper-VやVMWare&#8230;]]></description>
										<content:encoded><![CDATA[<p>中々学習コストが高くて気が進まなかったのですが、やっと重い腰を上げてDockerを学ぶ事にして、早速Ubuntuにインストールしました。</p>
<h2>Dockerとは</h2>
<p>Dockerとは仮想化技術の1つで、Hyper-VやVMWare等の完全仮想化技術とは異なりホストOSとカーネルを共有するコンテナ仮想化技術です。</p>
<p>完全仮想化に比べ手軽に仮想環境を構築可能で、開発・テスト・実行環境の分離に役立ちます。</p>
<p>また、OSを丸ごとインストールするわけではないため効率的に資源を利用でき、失敗した時の破棄が容易です。</p>
<p>上記の機能に加えて、<code>Dockerfile</code>に環境に関する設定を記述する事でInfrastructure as Code(IaC)のメリットも受けられます。</p>
<p>DockerはLinux上で動作するのですが、それ以外のOS向けであるDocker for WindowsやDocker for Macも存在していて、主要なOSであればどれでも利用が可能です。</p>
<p>動作にLinuxカーネルを要するため、WindowsやMacでは内部的に仮想環境を作ってその上で動作しています。</p>
<h2>環境</h2>
<p>以下の環境で作業を行います。</p>
<pre><code class="language-shell line-numbers">$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu    
DISTRIB_RELEASE=18.04
DISTRIB_CODENAME=bionic
DISTRIB_DESCRIPTION="Ubuntu 18.04.4 LTS"
</code></pre>
<h2>作業内容</h2>
<p><a class="wp-editor-md-post-content-link" href="https://docs.docker.com/engine/install/ubuntu/">Docker公式のインストールガイド</a>を参考に作業しました。</p>
<h3>リポジトリを追加する</h3>
<p>まずは前提となるパッケージをインストールします。</p>
<pre><code class="line-numbers">$ sudo apt-get update &amp;&amp; sudo apt-get install -y apt-transport-https ca-certificates curl gnupg-agent software-properties-common
</code></pre>
<p>リポジトリキーを追加します。追加した後、指紋が<code>9DC8 5822 9FC7 DD38 854A  E2D8 8D81 803C 0EBF CD88</code>と一致しているか確認します。</p>
<pre><code class="language-shell line-numbers">$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
$ sudo apt-key fingerprint 0EBFCD88
pub   rsa4096 2017-02-22 [SCEA]
      9DC8 5822 9FC7 DD38 854A  E2D8 8D81 803C 0EBF CD88
uid           [ unknown] Docker Release (CE deb) &lt;docker@docker.com&gt;
sub   rsa4096 2017-02-22 [S]
</code></pre>
<p>ここまで終わったらリポジトリを追加できるので、以下のコマンドで追加します。</p>
<pre><code class="language-shell line-numbers">$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic stable"
</code></pre>
<p>これで、<code>apt-get</code>でのDockerをインストールする事が出来るようになりました。</p>
<h3>Docker CEのインストール</h3>
<p>無料版のDocker Community Editionと<code>containerd</code>をインストールします。</p>
<pre><code class="language-shell line-numbers">$ sudo apt-get update &amp;&amp; sudo apt-get install -y docker-ce docker-ce-cli containerd.io
</code></pre>
<p>インストール出来ました。</p>
<pre><code class="language-shell line-numbers">$ docker --version
Docker version 19.03.8, build afacb8b7f0
</code></pre>
<h3>Docker-Composeのインストール</h3>
<p>Docker-Composeは複数のDockerコンテナを取り扱うのに便利なツールです。</p>
<p><code>curl</code>でGitHubから拾ってきて自分で配置して、実行可能にします。この時の最新バージョンは<code>1.25.5</code>でした。リリース情報は<a class="wp-editor-md-post-content-link" href="https://github.com/docker/compose/releases">docker/compose Releases | GitHub</a>から確認できます。</p>
<pre><code class="line-numbers">$ export VERSION="1.25.5"
$ sudo curl -L "https://github.com/docker/compose/releases/download/${VERSION}/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
$ sudo chmod +x /usr/local/bin/docker-compose
</code></pre>
<p>インストール出来ました。</p>
<pre><code class="language-shell line-numbers">$ docker-compose --version
docker-compose version 1.25.5, build 8a1c60f6
</code></pre>
<h3>Dockerを試す</h3>
<p>DockerでのHello, World!として<code>docker run --rm hello-world</code>をしてみます。</p>
<pre><code class="language-shell line-numbers">$ sudo docker run --rm hello-world

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/
</code></pre>
<p>上手くインストール出来たようです。</p>
<h3>一般ユーザーでも実行できるようにする</h3>
<p>インストール直後の状態では、<code>sudo</code>を使わないと<code>docker</code>コマンドは使用する事が出来ません。</p>
<p>一般ユーザーで<code>docker</code>コマンドを使うためには、ユーザーを<code>docker</code>グループに追加する必要があります。</p>
<pre><code class="language-shell line-numbers">$ sudo usermod -aG docker $USER
$ sudo reboot
</code></pre>
<p>再起動して変更を反映したら、<code>sudo</code>無しで実行出来るようになったはずです。</p>
<pre><code class="language-shell line-numbers">$ docker run --rm hello-world

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (amd64)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/
</code></pre>
<p>これで、<code>docker</code>グループに所属しているユーザーは自由に<code>docker</code>コマンドが使えるようになりました。</p>
<h2>まとめ</h2>
<p>DockerとDocker-Composeをインストールしたので、様々な環境を依存を気にせず試せるようになりました。</p>
<p>Dockerに関しては覚える事が多いですが、かなり便利なので使えるようになりたいです。</p>
<p>また、一般ユーザーでもDockerを利用する方法として、Rootless Dockerという物もあります。これはまた後で触ろうと思います。</p>
<h2>参考文献</h2>
<ul>
<li><a class="wp-editor-md-post-content-link" href="https://docs.docker.com/engine/install/ubuntu/">Install Docker Engine on Ubuntu | Docker Documentation</a></li>
<li><a class="wp-editor-md-post-content-link" href="https://docs.docker.com/compose/install/">Install Docker Compose | Docker Documentation</a></li>
<li><a class="wp-editor-md-post-content-link" href="https://github.com/docker/compose/releases">docker/compose Releases | GitHub</a></li>
</ul>
]]></content:encoded>
					
					<wfw:commentRss>https://www.kthksgy.com/linux/ubuntu-docker/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Ubuntu上にMinecraftサーバーを建てる【Ubuntu 18.04 LTS】</title>
		<link>https://www.kthksgy.com/linux/ubuntu-minecraft-server/</link>
					<comments>https://www.kthksgy.com/linux/ubuntu-minecraft-server/#respond</comments>
		
		<dc:creator><![CDATA[kthksgy]]></dc:creator>
		<pubDate>Thu, 09 Jan 2020 09:29:48 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<guid isPermaLink="false">https://www.kthksgy.com/?p=12</guid>

					<description><![CDATA[Ubuntu 18.04 LTS上にSpigotMCを用いてMinecraftサーバーを構築します． 2020/11/11 記事内に原因不明の改行バグが起きています……。 環境 以下の環境でサーバー構築を行います． 項目&#8230;]]></description>
										<content:encoded><![CDATA[<p>Ubuntu 18.04 LTS上にSpigotMCを用いてMinecraftサーバーを構築します．<br />
<span id="more-12"></span></p>
<p><strong>2020/11/11 記事内に原因不明の改行バグが起きています……。</strong></p>
<h1>環境</h1>
<p>以下の環境でサーバー構築を行います．</p>
<table>
<thead>
<tr>
<th align="center">項目</th>
<th align="center">内容</th>
</tr>
</thead>
<tbody>
<tr>
<td align="center">OS</td>
<td align="center">Ubuntu 18.04 LTS</td>
</tr>
<tr>
<td align="center">Java</td>
<td align="center">OpenJDK 8</td>
</tr>
<tr>
<td align="center">Minecraft</td>
<td align="center">1.15.1</td>
</tr>
<tr>
<td align="center">SpigotMC</td>
<td align="center">BuildTools &#35;105</td>
</tr>
</tbody>
</table>
<p>今回は<code>/srv/minecraft/</code>(以下<code>minecraft/</code>)にサーバーを構築します．</p>
<pre><code class="language-bash line-numbers"># 管理権限が必要
<span class="katex math inline">sudo mkdir /srv/minecraft</span> cd /srv/minecraft
</code></pre>
<h1>必要物のダウンロードとインストール</h1>
<p>JavaのインストールとSpigotMCのビルドを行います．</p>
<h2>Javaのインストール</h2>
<p>以下のコマンドでJDKをインストールします．</p>
<pre><code class="language-bash line-numbers">$ sudo apt install openjdk-8-jdk-headless
</code></pre>
<p>インストールの確認を取られた場合は<code>Y</code>で次へ進みます．</p>
<h2>SpigotMCのビルド</h2>
<p>以下のコマンドで<code>BuildTools.jar</code>をダウンロードします．</p>
<pre><code class="language-bash line-numbers">$ curl -o BuildTools.jar https://hub.spigotmc.org/jenkins/job/BuildTools/105/artifact/target/BuildTools.jar
</code></pre>
<p>ダウンロードが終わったら以下のコマンドでビルドします．</p>
<pre><code class="language-bash line-numbers"># 前準備としてgitの設定を変更
<span class="katex math inline">git config --global --unset core.autocrlf

# Minecraft 1.15.1用のサーバーをビルド</span> java -jar BuildTools.jar --rev 1.15.1

# jarのリネーム
$ mv spigot-1.15.1.jar spigot.jar
</code></pre>
<p>暫く待つとビルドが完了して，諸々のファイルやディレクトリと<code>spigot-1.15.1.jar</code>が<code>BuildTools.jar</code>と同じディレクトリに生成されます．</p>
<h1>サーバー起動用スクリプトの作成</h1>
<p><code>minecraft/start.sh</code>にサーバーを起動するためのスクリプトを記述します． <code>-Xmx12G</code>でサーバーが使用出来るメモリの最大容量を12GBに設定しています．</p>
<pre><code class="language-bash line-numbers">#!/bin/sh
java -Xmx12G -XX:+UseConcMarkSweepGC -jar spigot.jar
</code></pre>
<p>以下のコマンドで先ほど作ったスクリプトを実行出来るようにします．</p>
<pre><code class="language-bash line-numbers"># 実行権限を付与
<span class="katex math inline">chmod +x start.sh
# 一度起動しておく</span> ./start.sh
</code></pre>
<p>初回起動時はEULAへの同意を求められます． <code>minecraft/eula.txt</code>を開いて最後の行の<code>eula=false</code>を<code>eula=true</code>に変更します．</p>
<h1>SpigotMCのサービス化</h1>
<p>先ほど作成したスクリプトをサービス化してPC起動時に一緒に起動するようにします．</p>
<pre><code class="language-bash line-numbers">$ cd /lib/systemd/system
$ sudo vi minecraft.service
</code></pre>
<p>サービス情報として以下を記述します． <code>User=</code>と<code>Group=</code>は専用のユーザーやグループが用意されている場合は書き換えます．</p>
<pre><code class="language-plaintext line-numbers">[Unit]
Description=Minecraft Server

[Service]
Type=simple
WorkingDirectory=/srv/minecraft/
ExecStart=/srv/minecraft/start.sh
User=root
Group=root
Restart=always

[Install]
WantedBy=multi-user.target
</code></pre>
<pre><code class="language-bash line-numbers"># 現在のMinecraftサービスの状態を確認
<span class="katex math inline">sudo systemctl list-unit-files --type=service | grep minecraft.service

# Minecraftサービスの有効化</span> sudo systemctl enable minecraft
</code></pre>
<h1>SpigotMCサービスの開始</h1>
<p>以下のコマンドで起動と状態の確認を行います．</p>
<pre><code class="language-bash line-numbers"># 起動
<span class="katex math inline">sudo systemctl start minecraft
# 状態の確認</span> sudo systemctl status minecraft
</code></pre>
<p>起動している事が確認出来たら作業は完了です． デフォルトでは25565番のTCPポートにサーバーが開かれているので，接続テストを行います．</p>
<p>終了する場合やサービスを削除する場合は以下のコマンドで終了します．</p>
<pre><code class="language-bash line-numbers"># 終了
<span class="katex math inline">sudo systemctl stop minecraft

# Minecraftサービスの無効化</span> sudo systemctl disable minecraft
</code></pre>
<h1>ポート開放</h1>
<p>外部に開放する場合はポート開放が必要になります．</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.kthksgy.com/linux/ubuntu-minecraft-server/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
