<?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>開発 | ITとガジェットあれこれ</title>
	<atom:link href="https://sandambara.com/category/%E9%96%8B%E7%99%BA/feed" rel="self" type="application/rss+xml" />
	<link>https://sandambara.com</link>
	<description>sandambara.com</description>
	<lastBuildDate>Thu, 25 Dec 2025 13:41:18 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9</generator>

<image>
	<url>https://sandambara.com/wp-content/uploads/2021/03/icon.ico</url>
	<title>開発 | ITとガジェットあれこれ</title>
	<link>https://sandambara.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>【動画あり】Ryzen搭載Copilot+ PCでついにローカルLLMが簡単に動く日が来た！</title>
		<link>https://sandambara.com/local-llm-with-copilotpluspc-on-ryzen?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=local-llm-with-copilotpluspc-on-ryzen</link>
					<comments>https://sandambara.com/local-llm-with-copilotpluspc-on-ryzen#respond</comments>
		
		<dc:creator><![CDATA[sandambara]]></dc:creator>
		<pubDate>Sat, 15 Nov 2025 05:14:33 +0000</pubDate>
				<category><![CDATA[AI]]></category>
		<category><![CDATA[AMD]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[ThinkPad]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[開発]]></category>
		<guid isPermaLink="false">https://sandambara.com/?p=2334</guid>

					<description><![CDATA[<p>目次 私とCopilot+ PC諦めたらそこで終わり検証機スペック構築手順いよいよローカルLLMとご対面！他と比べてどうかまとめ 私とCopilot+ PC 前回レッツノートSCのレビューで「今のところ、なんとしても手に [&#8230;]</p>
The post <a href="https://sandambara.com/local-llm-with-copilotpluspc-on-ryzen">【動画あり】Ryzen搭載Copilot+ PCでついにローカルLLMが簡単に動く日が来た！</a> first appeared on <a href="https://sandambara.com">ITとガジェットあれこれ</a>.]]></description>
										<content:encoded><![CDATA[<div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-2" checked><label class="toc-title" for="toc-checkbox-2">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">私とCopilot+ PC</a></li><li><a href="#toc2" tabindex="0">諦めたらそこで終わり</a></li><li><a href="#toc3" tabindex="0">検証機スペック</a></li><li><a href="#toc4" tabindex="0">構築手順</a></li><li><a href="#toc5" tabindex="0">いよいよローカルLLMとご対面！</a></li><li><a href="#toc6" tabindex="0">他と比べてどうか</a></li><li><a href="#toc7" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">私とCopilot+ PC</span></h2>



<p>前回レッツノートSCのレビューで「今のところ、なんとしても手に入れたいCopilot+ PCの機能が一つも無いので困っていません」と書いたばかりなのですが、NPU活用という観点では、ローカルLLMには以前から大きな関心を寄せていました。</p>



<p>Copilot+ PCを手に入れたのが去年の今頃・・・CPUでもGPUでもなくNPUが搭載され、その性能が40TOPS以上。セキュリティやプライバシーを気にせず大手を振ってAI三昧と聞けば、嫌でも期待は大きくなります。<strong>これが実現できてこそAIの夜明け</strong>です。</p>



<p>しかし、実機を手にして早速トライしたものの、NPUを活用したローカルLLMに関する実用的な情報にはなかなかたどり着けませんでした。技術バリバリの方であれば実現できたのかもしれませんが、私のようなただのオッサンにはかなりハードルが高く感じられました。</p>



<p>「Copilot+ PCでローカルLLMが動く」という記事をまれに見かけても、その内容はLM StudioやVS Codeの拡張機能で動かすといったもので、対象はARMアーキテクチャのみ。</p>



<p>OSで提供されるCopilot+ PC向けの機能はどれも（私には）不要なものばかり。<strong><span class="marker-red">正直に言って「だまされた」と思いました</span>。</strong></p>



<p>来る日も来る日もCopilotさんに尋ね続けました。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>Ryzen AI 7 PRO 360搭載のラップトップ、NPUを使ってローカルLLMできるようになりましたか？</p>
</blockquote>



<p>こんなことを繰り返しながら「もう疲れたよ、パトラッシュ」と化した私は、身辺が慌ただしくなった時期と重なったこともあって、ローカルLLMという言葉からしばし遠ざかることになりました。</p>



<h2 class="wp-block-heading"><span id="toc2">諦めたらそこで終わり</span></h2>



<p>状況が一転したのは今月で、たまたま見つけた先人の記事。</p>



<p><a rel="noopener" href="https://qiita.com/yoheier/items/8ca764b0b95ab5b9d51e" target="_blank" title="">AMDの第２世代NPUで動作するLLM基盤に衝撃を受けて興奮が止まらないお話 #Windows &#8211; Qiita</a></p>



<p>記事の公開日は8月。なんと！私が別件で右往左往していた夏の間に状況が変わっていたようで、鼻息荒く早速やってみました。</p>



<h2 class="wp-block-heading"><span id="toc3">検証機スペック</span></h2>



<p>ThinkPad T14s Gen6、OSはWindows 11 Pro 24H2です。セールのタイミングだったのと、営業さんとの交渉でかなり安価に入手できました。</p>



<figure class="wp-block-image size-full"><img fetchpriority="high" decoding="async" width="826" height="476" src="https://sandambara.com/wp-content/uploads/2025/11/image-14.png" alt="" class="wp-image-2351" srcset="https://sandambara.com/wp-content/uploads/2025/11/image-14.png 826w, https://sandambara.com/wp-content/uploads/2025/11/image-14-300x173.png 300w, https://sandambara.com/wp-content/uploads/2025/11/image-14-768x443.png 768w, https://sandambara.com/wp-content/uploads/2025/11/image-14-120x68.png 120w" sizes="(max-width: 826px) 100vw, 826px" /></figure>



<p>余談ですが、このマシンはアイキャッチ画像にしているもので、スキンシールはPDA工房さま製です。パームレスト部分もオーダーで作っていただいた同素材のものを貼っていて、とても気に入っています。</p>



<ul class="wp-block-list">
<li></li>
</ul>



<h2 class="wp-block-heading"><span id="toc4">構築手順</span></h2>



<p>まずはNPUドライバーのバージョンを確認しましょう。「FastFlowLM」のQuick Startにはこのようにあります。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>Important</p>



<p>⚠️&nbsp;Ensure NPU driver verison is&nbsp;<strong>&gt;= 32.0.203.311</strong>&nbsp;(check via Task Manager→Performance→NPU or Device Manager).</p>
</blockquote>



<p>デバイスマネージャーをチェックしましょう。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="504" height="267" src="https://sandambara.com/wp-content/uploads/2025/11/image-1.png" alt="" class="wp-image-2338" srcset="https://sandambara.com/wp-content/uploads/2025/11/image-1.png 504w, https://sandambara.com/wp-content/uploads/2025/11/image-1-300x159.png 300w" sizes="(max-width: 504px) 100vw, 504px" /></figure>



<p>こちらはアップデート後のキャプチャです。</p>



<figure class="wp-block-image size-full"><img decoding="async" width="572" height="312" src="https://sandambara.com/wp-content/uploads/2025/11/image-2.png" alt="" class="wp-image-2339" srcset="https://sandambara.com/wp-content/uploads/2025/11/image-2.png 572w, https://sandambara.com/wp-content/uploads/2025/11/image-2-300x164.png 300w" sizes="(max-width: 572px) 100vw, 572px" /></figure>



<p>FLMのインストーラーをダウンロードします。なお、FLMはライセンスが2つに分かれており、ランタイム部分はMIT、バイナリ部分は「FastFlowLM Proprietary Binary License Agreement」となっています。年間収益1000万米ドルまでは商用ライセンス不要で、米国デラウェア州法が適用されます。利用前に必ずご自身で内容を確認ください。</p>



<p>FastFlowLMのインストーラーをダウンロードしましょう。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="444" height="121" src="https://sandambara.com/wp-content/uploads/2025/11/image-15.png" alt="" class="wp-image-2352" srcset="https://sandambara.com/wp-content/uploads/2025/11/image-15.png 444w, https://sandambara.com/wp-content/uploads/2025/11/image-15-300x82.png 300w" sizes="(max-width: 444px) 100vw, 444px" /></figure>



<p>インストーラーを実行します。ボタンポチポチだけで大丈夫です。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="575" height="475" src="https://sandambara.com/wp-content/uploads/2025/11/image-16.png" alt="" class="wp-image-2353" srcset="https://sandambara.com/wp-content/uploads/2025/11/image-16.png 575w, https://sandambara.com/wp-content/uploads/2025/11/image-16-300x248.png 300w" sizes="(max-width: 575px) 100vw, 575px" /></figure>



<p>↑いうまでもありませんが、I accept the agreementを選んでくださいね・・・</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="576" height="472" src="https://sandambara.com/wp-content/uploads/2025/11/image-17.png" alt="" class="wp-image-2354" srcset="https://sandambara.com/wp-content/uploads/2025/11/image-17.png 576w, https://sandambara.com/wp-content/uploads/2025/11/image-17-300x246.png 300w" sizes="(max-width: 576px) 100vw, 576px" /></figure>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="579" height="472" src="https://sandambara.com/wp-content/uploads/2025/11/image-18.png" alt="" class="wp-image-2355" srcset="https://sandambara.com/wp-content/uploads/2025/11/image-18.png 579w, https://sandambara.com/wp-content/uploads/2025/11/image-18-300x245.png 300w" sizes="(max-width: 579px) 100vw, 579px" /></figure>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="576" height="471" src="https://sandambara.com/wp-content/uploads/2025/11/image-19.png" alt="" class="wp-image-2356" srcset="https://sandambara.com/wp-content/uploads/2025/11/image-19.png 576w, https://sandambara.com/wp-content/uploads/2025/11/image-19-300x245.png 300w" sizes="(max-width: 576px) 100vw, 576px" /></figure>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="576" height="473" src="https://sandambara.com/wp-content/uploads/2025/11/image-20.png" alt="" class="wp-image-2357" srcset="https://sandambara.com/wp-content/uploads/2025/11/image-20.png 576w, https://sandambara.com/wp-content/uploads/2025/11/image-20-300x246.png 300w" sizes="(max-width: 576px) 100vw, 576px" /></figure>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="576" height="473" src="https://sandambara.com/wp-content/uploads/2025/11/image-24.png" alt="" class="wp-image-2361" srcset="https://sandambara.com/wp-content/uploads/2025/11/image-24.png 576w, https://sandambara.com/wp-content/uploads/2025/11/image-24-300x246.png 300w" sizes="(max-width: 576px) 100vw, 576px" /></figure>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="575" height="469" src="https://sandambara.com/wp-content/uploads/2025/11/image-25.png" alt="" class="wp-image-2362" srcset="https://sandambara.com/wp-content/uploads/2025/11/image-25.png 575w, https://sandambara.com/wp-content/uploads/2025/11/image-25-300x245.png 300w" sizes="(max-width: 575px) 100vw, 575px" /></figure>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="575" height="475" src="https://sandambara.com/wp-content/uploads/2025/11/image-23.png" alt="" class="wp-image-2360" srcset="https://sandambara.com/wp-content/uploads/2025/11/image-23.png 575w, https://sandambara.com/wp-content/uploads/2025/11/image-23-300x248.png 300w" sizes="(max-width: 575px) 100vw, 575px" /></figure>



<p>ここまででFLMを使う準備は整っていますが、Lemonadeがあるとさらに簡単に使えますのでインストールしましょう。GitHubのリポジトリは<a rel="noopener" href="https://github.com/lemonade-sdk" target="_blank" title="">こちら</a>。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="452" src="https://sandambara.com/wp-content/uploads/2025/11/image-3-1024x452.png" alt="" class="wp-image-2340" srcset="https://sandambara.com/wp-content/uploads/2025/11/image-3-1024x452.png 1024w, https://sandambara.com/wp-content/uploads/2025/11/image-3-300x133.png 300w, https://sandambara.com/wp-content/uploads/2025/11/image-3-768x339.png 768w, https://sandambara.com/wp-content/uploads/2025/11/image-3.png 1075w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>NPU、AMD Ryzen AI 300 series。この文字が見られる日を待ちわびておりました。</p>



<p>では、インストーラーをダウンロードしましょう。</p>



<p><a href="https://github.com/lemonade-sdk/lemonade?tab=readme-ov-file#getting-started">GitHub &#8211; lemonade-sdk/lemonade: Lemonade helps users run local LLMs with the highest performance by configuring state-of-the-art inference engines for their NPUs and GPUs. Join our discord: https://discord.gg/5xXzkMu8Zk</a></p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="439" height="165" src="https://sandambara.com/wp-content/uploads/2025/11/image-4.png" alt="" class="wp-image-2341" srcset="https://sandambara.com/wp-content/uploads/2025/11/image-4.png 439w, https://sandambara.com/wp-content/uploads/2025/11/image-4-300x113.png 300w" sizes="(max-width: 439px) 100vw, 439px" /></figure>



<p>こちらもボタンポチポチで進めていきます。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="617" height="480" src="https://sandambara.com/wp-content/uploads/2025/11/image-5.png" alt="" class="wp-image-2342" srcset="https://sandambara.com/wp-content/uploads/2025/11/image-5.png 617w, https://sandambara.com/wp-content/uploads/2025/11/image-5-300x233.png 300w" sizes="(max-width: 617px) 100vw, 617px" /></figure>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="622" height="479" src="https://sandambara.com/wp-content/uploads/2025/11/image-7.png" alt="" class="wp-image-2344" srcset="https://sandambara.com/wp-content/uploads/2025/11/image-7.png 622w, https://sandambara.com/wp-content/uploads/2025/11/image-7-300x231.png 300w" sizes="(max-width: 622px) 100vw, 622px" /></figure>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="616" height="475" src="https://sandambara.com/wp-content/uploads/2025/11/image-9.png" alt="" class="wp-image-2346" srcset="https://sandambara.com/wp-content/uploads/2025/11/image-9.png 616w, https://sandambara.com/wp-content/uploads/2025/11/image-9-300x231.png 300w" sizes="(max-width: 616px) 100vw, 616px" /></figure>



<p>ポップアップが見えたらLemonade起動完了です。これで準備が整いました。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="467" height="185" src="https://sandambara.com/wp-content/uploads/2025/11/image-10.png" alt="" class="wp-image-2347" srcset="https://sandambara.com/wp-content/uploads/2025/11/image-10.png 467w, https://sandambara.com/wp-content/uploads/2025/11/image-10-300x119.png 300w" sizes="(max-width: 467px) 100vw, 467px" /></figure>



<h2 class="wp-block-heading"><span id="toc5">いよいよローカルLLMとご対面！</span></h2>



<p>せっかくなら少しでも性能の良いモデルを試してみたいので、ここではgpt-oss-20bを動作させることを目標に進めていきます。</p>



<p>FLMのインストールが終わったときに、デスクトップへアイコンが2つ作られています。このうち「flm serve」をダブルクリックして実行します。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="334" height="135" src="https://sandambara.com/wp-content/uploads/2025/11/image-26.png" alt="" class="wp-image-2363" srcset="https://sandambara.com/wp-content/uploads/2025/11/image-26.png 334w, https://sandambara.com/wp-content/uploads/2025/11/image-26-300x121.png 300w" sizes="(max-width: 334px) 100vw, 334px" /></figure>



<p>コマンドプロンプトが起動し、デフォルトモデルのllama3.2:1bのダウンロードが始まります。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="792" height="642" src="https://sandambara.com/wp-content/uploads/2025/11/image-27.png" alt="" class="wp-image-2364" srcset="https://sandambara.com/wp-content/uploads/2025/11/image-27.png 792w, https://sandambara.com/wp-content/uploads/2025/11/image-27-300x243.png 300w, https://sandambara.com/wp-content/uploads/2025/11/image-27-768x623.png 768w" sizes="(max-width: 792px) 100vw, 792px" /></figure>



<p>軽量モデルですので直ぐにダウンロードは終了し、FLMの準備が整います。このコマンドプロンプトは開いたままにしておきましょう。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="729" height="100" src="https://sandambara.com/wp-content/uploads/2025/11/image-28.png" alt="" class="wp-image-2365" srcset="https://sandambara.com/wp-content/uploads/2025/11/image-28.png 729w, https://sandambara.com/wp-content/uploads/2025/11/image-28-300x41.png 300w" sizes="(max-width: 729px) 100vw, 729px" /></figure>



<p>次に、タスクトレイにあるLemonadeのアイコンを右クリック→Model Managerを選択します。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="234" height="259" src="https://sandambara.com/wp-content/uploads/2025/11/image-11.png" alt="" class="wp-image-2348"/></figure>



<p>ブラウザが起動しlocalhost:8000/webapp.html#model-managementが表示された、左ペインにある「FastFlowLM NPU」を選択します。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="934" height="863" src="https://sandambara.com/wp-content/uploads/2025/11/image-12.png" alt="" class="wp-image-2349" srcset="https://sandambara.com/wp-content/uploads/2025/11/image-12.png 934w, https://sandambara.com/wp-content/uploads/2025/11/image-12-300x277.png 300w, https://sandambara.com/wp-content/uploads/2025/11/image-12-768x710.png 768w" sizes="(max-width: 934px) 100vw, 934px" /></figure>



<p>右ペインからgpt-oss-20b-FLMを探し、下向き矢印のアイコンをクリックしてモデルをダウンロードしましょう。インストーラーをデオフォルトで進めた場合はドキュメントにモデルが保存されます。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="123" src="https://sandambara.com/wp-content/uploads/2025/11/image-13-1024x123.png" alt="" class="wp-image-2350" srcset="https://sandambara.com/wp-content/uploads/2025/11/image-13-1024x123.png 1024w, https://sandambara.com/wp-content/uploads/2025/11/image-13-300x36.png 300w, https://sandambara.com/wp-content/uploads/2025/11/image-13-768x92.png 768w, https://sandambara.com/wp-content/uploads/2025/11/image-13.png 1145w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>ダウンロードが完了するとモデルを起動するロケット？のアイコン、モデルを削除するゴミ箱のアイコンが表示されます。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="111" src="https://sandambara.com/wp-content/uploads/2025/11/image-30-1024x111.png" alt="" class="wp-image-2367" srcset="https://sandambara.com/wp-content/uploads/2025/11/image-30-1024x111.png 1024w, https://sandambara.com/wp-content/uploads/2025/11/image-30-300x32.png 300w, https://sandambara.com/wp-content/uploads/2025/11/image-30-768x83.png 768w, https://sandambara.com/wp-content/uploads/2025/11/image-30.png 1130w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>参考までに、llama-3.2-1B-NPU2が保存されたフォルダのサイズが1.21GBに対し、GPT-OSS-20B-NPU2が保存されたフォルダのサイズは13.4GBでした。脳ミソは大きい方が高性能ということでしょうか。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="475" height="371" src="https://sandambara.com/wp-content/uploads/2025/11/image-31.png" alt="" class="wp-image-2368" srcset="https://sandambara.com/wp-content/uploads/2025/11/image-31.png 475w, https://sandambara.com/wp-content/uploads/2025/11/image-31-300x234.png 300w" sizes="(max-width: 475px) 100vw, 475px" /></figure>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="477" height="366" src="https://sandambara.com/wp-content/uploads/2025/11/image-32.png" alt="" class="wp-image-2369" srcset="https://sandambara.com/wp-content/uploads/2025/11/image-32.png 477w, https://sandambara.com/wp-content/uploads/2025/11/image-32-300x230.png 300w" sizes="(max-width: 477px) 100vw, 477px" /></figure>



<p>では、先ほどのロケット？のアイコンをクリックしてからLLM Chatへ移動します。右上のモデルがgpt-oss-20b-FLMになっています。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="545" src="https://sandambara.com/wp-content/uploads/2025/11/image-33-1024x545.png" alt="" class="wp-image-2370" srcset="https://sandambara.com/wp-content/uploads/2025/11/image-33-1024x545.png 1024w, https://sandambara.com/wp-content/uploads/2025/11/image-33-300x160.png 300w, https://sandambara.com/wp-content/uploads/2025/11/image-33-768x409.png 768w, https://sandambara.com/wp-content/uploads/2025/11/image-33-1536x818.png 1536w, https://sandambara.com/wp-content/uploads/2025/11/image-33.png 1880w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>ここでは「あなたはローカルLLMで、利用時はインターネット接続不要ですか？また、あなたはどのように私を助けてくれますか？できるだけ正確に答えてください。」と聞いてみます。タスクマネージャーでNPUのゲージが動くことも見逃せません。</p>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe loading="lazy" title="gpt-oss-20b on Copilot+ PC with Ryzen AI 7 PRO 360" width="1256" height="707" src="https://www.youtube.com/embed/PuYxONHRM0I?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div></figure>



<p>いかがでしょうか。大規模言語モデルが目の前のラップトップで動いている・・・なんたるロマン。ようやく<strong>AIの夜明けを迎えた気分</strong>です。</p>



<h2 class="wp-block-heading"><span id="toc6">他と比べてどうか</span></h2>



<p>性能や応答速度をChatGPTやClaude、CopilotといったクラウドAIと比べるのは、そもそもの機材スペックがどれだけ違うかという話なので、比べること自体がナンセンスであります。</p>



<p>では、たとえばMacと比べるとどうかと言われれば、同じ質問で試して4倍弱時間がかかっています。ollama+gpt-oss-20bをメモリ24GBのM4 Proで動作させるとこんな感じです（こちらはCLIで動かしていますので、比較では無く参考ということで）。アクティビティモニタの値もなんとなく見てみます。</p>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe loading="lazy" title="gpt-oss-20b on MacBook Pro with M4 Pro" width="1256" height="707" src="https://www.youtube.com/embed/VutXlRyz6lw?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div></figure>



<p>個人的に思うことは以下の通りです。</p>



<ul class="wp-block-list">
<li>出力速度は確かに速いが、速すぎて見づらい感ある</li>



<li>Copilot+ PCはNPUのさらなる高性能化を期待</li>



<li>Appleシリコンすごい</li>
</ul>



<h2 class="wp-block-heading"><span id="toc7">まとめ</span></h2>



<p>比べれば遅いとはいえCopilot+ PCでNPUを使ったローカルLLM、十分実用的な速度で動作していると思います。ちなみに、先ほどの動画収録時の電源とバッテリー設定は「最適な電力効率」で、ファンもほぼ回らず静かなまま。NPUってやっぱりすごいんだなあと思います。餅は餅屋です。</p>



<p>かつてと比べればMac環境も増えたけれど、世の中のシェアでいえば圧倒的に多いWindowsユーザーの選択肢が増えたこと、これは普通にうれしいです。もっともっとこういうことが簡単にできるようになると良いですね。夜は明けたので、陽が昇るのはこれからかな？</p>The post <a href="https://sandambara.com/local-llm-with-copilotpluspc-on-ryzen">【動画あり】Ryzen搭載Copilot+ PCでついにローカルLLMが簡単に動く日が来た！</a> first appeared on <a href="https://sandambara.com">ITとガジェットあれこれ</a>.]]></content:encoded>
					
					<wfw:commentRss>https://sandambara.com/local-llm-with-copilotpluspc-on-ryzen/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ドメインをお名前ドットコムからCloudflareへ移管したらサイトが死んだ話（復旧済み）</title>
		<link>https://sandambara.com/domaintransfer-oname-to-cloudflare?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=domaintransfer-oname-to-cloudflare</link>
					<comments>https://sandambara.com/domaintransfer-oname-to-cloudflare#respond</comments>
		
		<dc:creator><![CDATA[sandambara]]></dc:creator>
		<pubDate>Tue, 31 Dec 2024 03:00:45 +0000</pubDate>
				<category><![CDATA[開発]]></category>
		<category><![CDATA[Cloudflare]]></category>
		<category><![CDATA[お名前ドットコム]]></category>
		<category><![CDATA[ドメイン移管]]></category>
		<guid isPermaLink="false">https://sandambara.com/?p=2235</guid>

					<description><![CDATA[<p>更新頻度が年一になりつつある今、ぶっちゃけどこがドメインを管理していてもなんら影響無いわけですが、Cloudflareが気になり始めたきっかけはこちらでした。 歴史的な円安となっては価格的なメリットはあまり無い気もします [&#8230;]</p>
The post <a href="https://sandambara.com/domaintransfer-oname-to-cloudflare">ドメインをお名前ドットコムからCloudflareへ移管したらサイトが死んだ話（復旧済み）</a> first appeared on <a href="https://sandambara.com">ITとガジェットあれこれ</a>.]]></description>
										<content:encoded><![CDATA[<p>更新頻度が年一になりつつある今、ぶっちゃけどこがドメインを管理していてもなんら影響無いわけですが、Cloudflareが気になり始めたきっかけはこちらでした。</p>



<figure class="wp-block-embed is-type-rich is-provider-twitter wp-block-embed-twitter"><div class="wp-block-embed__wrapper">
<blockquote class="twitter-tweet" data-width="550" data-dnt="true"><p lang="ja" dir="ltr">Cloudflare、破格(無料)でサーバーレス環境提供してるわドメイン原価で売ってるわどこから収益湧いてるのか分からなくて怖い<br><br>いつもありがとうございます</p>&mdash; こまもか🦊 (@Comamoca_) <a href="https://twitter.com/Comamoca_/status/1857408196014727499?ref_src=twsrc%5Etfw">November 15, 2024</a></blockquote><script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
</div><figcaption class="wp-element-caption">私はいつまでもツイッターと呼びたい属性</figcaption></figure>



<p>歴史的な円安となっては価格的なメリットはあまり無い気もしますが、「ドメイン原価」が変な角度で突き刺さって「Cloudflare使ってるんだよね」と言いたいだけでドメイン移管しました。</p>



<p>お名前ドットコムでの更新日は1月25日。移管したのは12月31日で（comドメインだと15日以上残日数があればOK）、サポートが手薄な時期に切り込むあたり後先考えない性分が如実に表れていると言えます。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-4" checked><label class="toc-title" for="toc-checkbox-4">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">やる事のまとめ</a></li><li><a href="#toc2" tabindex="0">ハマりポイント</a></li><li><a href="#toc3" tabindex="0">準備が必要なこと</a></li><li><a href="#toc4" tabindex="0">なぜ弊サイトが死んだか</a></li><li><a href="#toc5" tabindex="0">管理画面にアクセスできない</a></li><li><a href="#toc6" tabindex="0">意外だったこと</a></li><li><a href="#toc7" tabindex="0">学び</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">やる事のまとめ</span></h2>



<p>全体の流れをつかみ辛い気がしたのでまとめておきます。</p>



<ul class="wp-block-list">
<li>Cloudflareにアカウント作成（FreeプランでOK）</li>



<li>Cloudflareにクレジットカード登録</li>



<li>対象ドメインのネームサーバーをCloudflareに変更（重要！）</li>



<li>お名前ドットコムでwhois情報公開代行設定解除</li>



<li>お名前ドットコムでAuthCode取得</li>



<li>Cloudflareで移管手続き開始</li>



<li>お名前ドットコムからトランスファー申請確認メールが届く</li>



<li>移管完了</li>
</ul>



<h2 class="wp-block-heading"><span id="toc2">ハマりポイント</span></h2>



<p>サイトが日本語化対応してくれているので難易度はそう高くないと思いますが、分かり辛かったのはあらかじめ対象ドメインのネームサーバーをCloudflareへ切り替えが必要なことです。これを後回しにするといつまでもステータスが保留のまま先へ進まないので、移管に関係なく先にアカウントを作ってCloudflareへ向けておくのがいいかもしれません。</p>



<h2 class="wp-block-heading"><span id="toc3">準備が必要なこと</span></h2>



<p>お名前ドットコムのサイト内全般、何がどこにあるか分かりにくいうえ広告が邪魔で作業を進めにくいですから、あらかじめ目的となるページを抑えておくのがよいかもしれないと感じました。マストとなるアクションはwhois情報公開代行の無効化とAuthCodeの取得です。</p>



<p>あと、ドメイン移管をやろうとするような人には大した問題ではないと思いますが、お名前ドットコムのネームサーバーをそのまま使っていた人はCloudflareへ切り替えが必要ですので、そこも確認しておきましょう。</p>



<p>もう一つ、お名前ドットコムのサイト内で他社への移管状況を確認できるページがありますが、ステータスが変わるタイミングでメールが届きます。逆の言い方をすればメールが来ないうちはステータスが変わりませんので、リロードするだけ無駄ですからここを見る必要は無いと思いました。</p>



<h2 class="wp-block-heading"><span id="toc4">なぜ弊サイトが死んだか</span></h2>



<p>下調べなしで作業突入する方が悪いのですが、移管手続きが終わってめでたしめでたしではありませんでした。弊サイトにアクセスできなくなってしまいました。</p>



<p>最初に出たエラーは「リダイレクト回数が多すぎます」です。これを解決するには2つのアクションが必要でした。</p>



<p>Cloudflareのダッシュボード→SSL/TLS→概要をたどると「暗号化モードを設定する」という画面が表示され、初期値は「自動SSL/TLS」です。これを「カスタムSSL/TLS」へ変更し、さらにその中から「フル（厳密）」を選択する必要がありました。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="682" height="322" src="https://sandambara.com/wp-content/uploads/2024/12/image.png" alt="" class="wp-image-2239" srcset="https://sandambara.com/wp-content/uploads/2024/12/image.png 682w, https://sandambara.com/wp-content/uploads/2024/12/image-300x142.png 300w" sizes="(max-width: 682px) 100vw, 682px" /></figure>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="622" height="83" src="https://sandambara.com/wp-content/uploads/2024/12/image-1.png" alt="" class="wp-image-2240" srcset="https://sandambara.com/wp-content/uploads/2024/12/image-1.png 622w, https://sandambara.com/wp-content/uploads/2024/12/image-1-300x40.png 300w" sizes="(max-width: 622px) 100vw, 622px" /></figure>



<p>もう一つはDNSのプロキシステータスを「DNSのみ」に変更が必要でした。同じくダッシュボード→DNS→レコードを確認します。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="464" src="https://sandambara.com/wp-content/uploads/2024/12/image-2-1024x464.png" alt="" class="wp-image-2241" srcset="https://sandambara.com/wp-content/uploads/2024/12/image-2-1024x464.png 1024w, https://sandambara.com/wp-content/uploads/2024/12/image-2-300x136.png 300w, https://sandambara.com/wp-content/uploads/2024/12/image-2-768x348.png 768w, https://sandambara.com/wp-content/uploads/2024/12/image-2.png 1323w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>この部分、初期値ではこうなっています。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="200" height="75" src="https://sandambara.com/wp-content/uploads/2024/12/image-3.png" alt="" class="wp-image-2242"/></figure>



<p>この2つを変更することで無事サイトが表示されるようになりました。</p>



<h2 class="wp-block-heading"><span id="toc5">管理画面にアクセスできない</span></h2>



<p>念のためにと管理画面へアクセスしたら403で死んでおり、ここは直感的にWAFの影響を受けているのだろうと思いました。</p>



<p>ダッシュボード→WAF→セキュリティ→ツールへ移動し、自宅のグローバルアドレスをホワイトリストに登録しました。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1013" height="285" src="https://sandambara.com/wp-content/uploads/2024/12/image-4.png" alt="" class="wp-image-2243" srcset="https://sandambara.com/wp-content/uploads/2024/12/image-4.png 1013w, https://sandambara.com/wp-content/uploads/2024/12/image-4-300x84.png 300w, https://sandambara.com/wp-content/uploads/2024/12/image-4-768x216.png 768w" sizes="(max-width: 1013px) 100vw, 1013px" /></figure>



<p>移管手続き開始からここまで約1.5時間、ようやくメデタシメデタシです。</p>



<h2 class="wp-block-heading"><span id="toc6">意外だったこと</span></h2>



<p>Cloudflareはデフォルトでwhois情報公開代行が有効となりますが、Registrant CountryとRegistrant State/Provinceは公開されます。私の場合は特に問題ありませんが、完全匿名ということにはならないようです。</p>



<h2 class="wp-block-heading"><span id="toc7">学び</span></h2>



<p>色々ちゃんと下調べしましょう。</p>The post <a href="https://sandambara.com/domaintransfer-oname-to-cloudflare">ドメインをお名前ドットコムからCloudflareへ移管したらサイトが死んだ話（復旧済み）</a> first appeared on <a href="https://sandambara.com">ITとガジェットあれこれ</a>.]]></content:encoded>
					
					<wfw:commentRss>https://sandambara.com/domaintransfer-oname-to-cloudflare/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>certutil 同じファイルかどうか調べる（小ネタ）</title>
		<link>https://sandambara.com/tips-certutil?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=tips-certutil</link>
					<comments>https://sandambara.com/tips-certutil#respond</comments>
		
		<dc:creator><![CDATA[sandambara]]></dc:creator>
		<pubDate>Sat, 30 Mar 2024 10:00:00 +0000</pubDate>
				<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[開発]]></category>
		<guid isPermaLink="false">https://sandambara.com/?p=2220</guid>

					<description><![CDATA[<p>共有フォルダ内のファイルをデスクトップへコピーし、あれこれしている間に「あれ？これとオリジナルって一緒だっけ？？」みたいなことがあると思います。私は特にコンフィグファイルなんかでやらかすことが多いです。 WinMerge [&#8230;]</p>
The post <a href="https://sandambara.com/tips-certutil">certutil 同じファイルかどうか調べる（小ネタ）</a> first appeared on <a href="https://sandambara.com">ITとガジェットあれこれ</a>.]]></description>
										<content:encoded><![CDATA[<p>共有フォルダ内のファイルをデスクトップへコピーし、あれこれしている間に「あれ？これとオリジナルって一緒だっけ？？」みたいなことがあると思います。私は特にコンフィグファイルなんかでやらかすことが多いです。</p>



<p><a rel="noopener" href="https://winmerge.org/?lang=ja" target="_blank" title="">WinMerge</a>のような優れものもありますが、手っ取り早く複数のファイルの中身が同じか確認できるコマンドがあります。</p>



<p>テスト用に2つのテキストファイルを用意しました。いずれも中身は「sandambara」とだけ書かれたファイルです。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="371" height="224" src="https://sandambara.com/wp-content/uploads/2024/03/image.png" alt="" class="wp-image-2222" srcset="https://sandambara.com/wp-content/uploads/2024/03/image.png 371w, https://sandambara.com/wp-content/uploads/2024/03/image-300x181.png 300w" sizes="(max-width: 371px) 100vw, 371px" /><figcaption class="wp-element-caption">中身は「sandambara」とだけ書かれたテキストファイル</figcaption></figure>



<p>コマンドプロンプトを起動し、以下のコマンドを実行します。</p>



<pre class="wp-block-code"><code>certutil -hashfile &lt;filename></code></pre>



<p>先ほどのsandambara-1.txtを&lt;filename>の箇所に入力します。</p>



<pre class="wp-block-code"><code>C:\>certutil -hashfile C:\sandambara-1.txt
SHA1 ハッシュ (対象 C:\sandambara-1.txt):
f3e1ad4bd2dcb9489d34ac96318c228bea4aa5e8
CertUtil: -hashfile コマンドは正常に完了しました。</code></pre>



<p>続いてsandambara-2.txtのハッシュ値を調べてみましょう。</p>



<pre class="wp-block-code"><code>C:\>certutil -hashfile C:\sandambara-2.txt
SHA1 ハッシュ (対象 C:\sandambara-2.txt):
f3e1ad4bd2dcb9489d34ac96318c228bea4aa5e8
CertUtil: -hashfile コマンドは正常に完了しました。</code></pre>



<p>sandambara-1.txtとsandambara-2.txtのハッシュ値を比べてみます。</p>



<pre class="wp-block-code"><code>sandambara-1.txt:f3e1ad4bd2dcb9489d34ac96318c228bea4aa5e8
sandambara-2.txt:f3e1ad4bd2dcb9489d34ac96318c228bea4aa5e8</code></pre>



<p>ファイル名は異なりますがハッシュ値は同じですので同一ファイルと言えます。では、sandambara-1.txtをコピーして別ディレクトリへ保存し、sandambaraの文字列の後ろに半角スペースを一つ足したものと比べてみましょう。</p>



<pre class="wp-block-code"><code>C:\>certutil -hashfile C:\sandambara\sandambara-1.txt
SHA1 ハッシュ (対象 C:\sandambara\sandambara-1.txt):
ec875200f766256704b685ab48fe14d5d1ba6eb5
CertUtil: -hashfile コマンドは正常に完了しました。</code></pre>



<p>ハッシュ値を見てみます。</p>



<pre class="wp-block-code"><code>オリジナル　　　：f3e1ad4bd2dcb9489d34ac96318c228bea4aa5e8
半角スペースあり：ec875200f766256704b685ab48fe14d5d1ba6eb5</code></pre>



<p>ファイル名は同じですが半角スペースを付与したものはハッシュ値が異なります。また、ハッシュ値を求める際にディレクトリの違いは影響しませんので、2つのファイルの中身は異なると言えます。</p>



<p>このコマンドは&lt;filename>の後ろに引数でアルゴリズムを指定できます。これは先ほどの半角スーペースありファイルをsha256でハッシュ化した値です。</p>



<pre class="wp-block-code"><code>sha256:9f3684650a4bbb2f9547c44d9291ac0476592863566cafa6e4d298d014fa36f1</code></pre>



<p>当たり前ですが先ほどのハッシュ値(sha1)とは値が異なります。</p>



<pre class="wp-block-code"><code>sha1  :ec875200f766256704b685ab48fe14d5d1ba6eb5
sha256:9f3684650a4bbb2f9547c44d9291ac0476592863566cafa6e4d298d014fa36f1</code></pre>



<p>何かの時に役立つかもしれないので、知っておいて損は無いコマンドです。あと、certutilは他にもたくさん引数がありますので、是非深掘りしてみてください！</p>



<pre class="wp-block-code"><code>C:\>certutil -?

動詞:
  -dump             -- 構成情報またはファイルをダンプします
  -dumpPFX          -- PFX 構造をダンプします
  -asn              -- ASN.1 ファイルの解析

  -decodehex        -- 16 進エンコード ファイルをデコードします
  -decode           -- Base 64 エンコード ファイルをデコードします
  -encode           -- ファイルを Base 64 にエンコードします

  -deny             -- 保留中の要求を拒否します
  -resubmit         -- 保留中の要求を再送信します
  -setattributes    -- 保留中の要求の属性を設定します
  -setextension     -- 保留中の要求の拡張機能を設定します
  -revoke           -- 証明書を失効します
  -isvalid          -- 現在の証明書のディスポジションを表示します

  -getconfig        -- 既定の構成の文字列を取得します
  -ping             -- Active Directory 証明書サービスの要求インターフェイスを PING します
  -pingadmin        -- Active Directory 証明書サービスの管理者インターフェイスを PING します
  -CAInfo           -- CA 情報を表示します
  -ca.cert          -- CA の証明書を取得します
  -ca.chain         -- CA の証明書チェーンを取得します
  -GetCRL           -- CRL を取得します
  -CRL              -- 新しい CRL を公開します &#91;または Delta CRL のみ]
  -shutdown         -- Active Directory 証明書サービスをシャットダウンします

  -installCert      -- 証明機関の証明書をインストールします
  -renewCert        -- 証明機関の証明書を更新します

  -schema           -- 証明書スキーマをダンプします
  -view             -- 証明書の表示をダンプします
  -db               -- 未処理データベースをダンプします
  -deleterow        -- サーバー データベースの行を削除します

  -backup           -- Active Directory 証明書サービスのバックアップを作成します
  -backupDB         -- Active Directory 証明書サービス データベースのバックアップを作成します
  -backupKey        -- Active Directory 証明書サービスの証明書と秘密キーのバックアップを作成します
  -restore          -- Active Directory 証明書サービスを復元します
  -restoreDB        -- Active Directory 証明書サービス データベースを復元します
  -restoreKey       -- Active Directory 証明書サービスの証明書と秘密キーを復元します
  -importPFX        -- 証明書および秘密キーをインポートします
  -dynamicfilelist  -- ダイナミック ファイル リストを表示します
  -databaselocations -- データベースの場所を表示します
  -hashfile         -- ファイルに暗号化ハッシュを生成し表示します

  -store            -- 証明書ストアをダンプします
  -enumstore        -- 証明書ストアを列挙する
  -addstore         -- 証明書をストアに追加します
  -delstore         -- 証明書をストアから削除します
  -verifystore      -- ストアの証明書を確認します
  -repairstore      -- キーの関連付けの修復、または証明書プロパティやキーのセキュリティ記述子の更新を行います
  -viewstore        -- 証明書ストアをダンプします
  -viewdelstore     -- 証明書をストアから削除します
  -UI               -- CryptUI を呼び出します
  -attest           -- キーの構成証明要求を確認します

  -dsPublish        -- 証明書または CRL を Active Directory に公開します

  -ADTemplate       -- AD テンプレートの表示
  -Template         -- 登録ポリシー テンプレートの表示
  -TemplateCAs      -- テンプレートの CA を表示します
  -CATemplates      -- CA のテンプレートを表示します
  -SetCASites       -- CA のサイト名の管理
  -enrollmentServerURL -- CA に関連付けられた登録サーバーの URL を表示、追加、または削除します
  -ADCA             -- AD CA の表示
  -CA               -- 登録ポリシー CA の表示
  -Policy           -- 登録ポリシーの表示
  -PolicyCache      -- 登録ポリシー キャッシュ エントリを表示または削除します
  -CredStore        -- 資格情報ストアのエントリを表示、追加または削除します
  -InstallDefaultTemplates -- 既定の証明書テンプレートをインストールする
  -URLCache         -- URL キャッシュ エントリを表示または削除します
  -pulse            -- パルス自動登録イベントまたは NGC タスク
  -MachineInfo      -- Active Directory コンピューター オブジェクト情報を表示します
  -DCInfo           -- ドメイン コントローラー情報を表示します
  -EntInfo          -- エンタープライズ情報を表示します
  -TCAInfo          -- CA 情報を表示します
  -SCInfo           -- スマート カード情報を表示します

  -SCRoots          -- スマート カード ルート証明書の管理

  -DeleteHelloContainer -- Hello ログオン コンテナーを削除します。
     ** このオプションを使用した後、削除を完了するには、サインアウトする必要があります。**
  -verifykeys       -- 公開/秘密キー セットを確認します
  -verify           -- 証明書、CRL、またはチェーンを確認します
  -verifyCTL        -- AuthRoot または Disallowed Certificates CTL を検証します
  -syncWithWU       -- Windows Update と同期します
  -generateSSTFromWU -- Windows Update から SST を生成します
  -generatePinRulesCTL -- 暗証番号ルールの CTL を生成します
  -downloadOcsp     -- OCSP 応答をダウンロードし、ディレクトリに書き込みます
  -generateHpkpHeader -- 指定されたファイルまたはディレクトリの証明書を使用して HPKP ヘッダーを生成します
  -flushCache       -- lsass.exe などの選択したプロセスで、指定したキャッシュをフラッシュします
  -addEccCurve      -- ECC 曲線を追加します
  -deleteEccCurve   -- ECC 曲線を削除します
  -displayEccCurve  -- ECC 曲線を表示します
  -sign             -- CRL または証明書に再び署名します

  -vroot            -- Web 仮想ルートとファイルの共有を作成または削除します
  -vocsproot        -- OCSP Web プロキシの Web 仮想ルートを作成または削除します
  -addEnrollmentServer -- 登録サーバー アプリケーションを追加します
  -deleteEnrollmentServer -- 登録サーバー アプリケーションを削除します
  -addPolicyServer  -- ポリシー サーバー アプリケーションを追加
  -deletePolicyServer -- ポリシー サーバー アプリケーションを削除
  -oid              -- ObjectId の表示、または表示名の設定をします
  -error            -- エラー コード メッセージ テキストを表示します
  -getreg           -- レジストリ値を表示します
  -setreg           -- レジストリ値を設定します
  -delreg           -- レジストリ値を削除します

  -ImportKMS        -- キーのアーカイブのユーザー キーおよび証明書をサーバー データベースにインポートします
  -ImportCert       -- データベースに証明書ファイルをインポートします
  -GetKey           -- アーカイブされた秘密キーの回復 BLOB の取得、回復スクリプトの生成、
      またはアーカイブされたキーの回復を行います
  -RecoverKey       -- アーカイブされた秘密キーを回復します
  -MergePFX         -- PFX ファイルの結合
  -ConvertEPF       -- PFX ファイルを EPF ファイルに変換します

  -add-chain        -- (-AddChain) 証明書チェーンの追加
  -add-pre-chain    -- (-AddPrechain) 前証明書チェーンの追加
  -get-sth          -- (-GetSTH) 署名付きツリー ヘッドの取得
  -get-sth-consistency -- (-GetSTHConsistency) 署名付きツリー ヘッド変更の取得
  -get-proof-by-hash -- (-GetProofByHash) ハッシュによる照明を取得する
  -get-entries      -- (-GetEntries) エントリを取得する
  -get-roots        -- (-GetRoots) ルートを取得する
  -get-entry-and-proof -- (-GetEntryAndProof) エントリと照明を取得する
  -VerifyCT         -- 証明書の SCT を検証する
  -?                -- この使用法のメッセージを表示します


CertUtil -?              -- 動詞の一覧 (コマンドの一覧) を表示します
CertUtil -dump -?        -- "dump" 動詞のヘルプ テキストを表示します
CertUtil -v -?           -- すべての動詞のヘルプ テキストをすべて表示します

CertUtil: -? コマンドは正常に完了しました。</code></pre>The post <a href="https://sandambara.com/tips-certutil">certutil 同じファイルかどうか調べる（小ネタ）</a> first appeared on <a href="https://sandambara.com">ITとガジェットあれこれ</a>.]]></content:encoded>
					
					<wfw:commentRss>https://sandambara.com/tips-certutil/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>PostgreSQLバージョンアップ（9.6→14.7）</title>
		<link>https://sandambara.com/versionup-postgresql-from9-6to14-7?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=versionup-postgresql-from9-6to14-7</link>
					<comments>https://sandambara.com/versionup-postgresql-from9-6to14-7#respond</comments>
		
		<dc:creator><![CDATA[sandambara]]></dc:creator>
		<pubDate>Sun, 26 Mar 2023 12:00:00 +0000</pubDate>
				<category><![CDATA[database]]></category>
		<category><![CDATA[PostgreSQL]]></category>
		<category><![CDATA[開発]]></category>
		<guid isPermaLink="false">https://sandambara.com/?p=2195</guid>

					<description><![CDATA[<p>自宅の開発環境を漸くバージョンアップしたので備忘録として書きました。 目次 環境新バージョンのPostgreSQLインストールpg_hba.conの編集作業用ディレクトリ作成pg_upgrade実行update_exte [&#8230;]</p>
The post <a href="https://sandambara.com/versionup-postgresql-from9-6to14-7">PostgreSQLバージョンアップ（9.6→14.7）</a> first appeared on <a href="https://sandambara.com">ITとガジェットあれこれ</a>.]]></description>
										<content:encoded><![CDATA[<p>自宅の開発環境を漸くバージョンアップしたので備忘録として書きました。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-8" checked><label class="toc-title" for="toc-checkbox-8">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">環境</a></li><li><a href="#toc2" tabindex="0">新バージョンのPostgreSQLインストール</a></li><li><a href="#toc3" tabindex="0">pg_hba.conの編集</a></li><li><a href="#toc4" tabindex="0">作業用ディレクトリ作成</a></li><li><a href="#toc5" tabindex="0">pg_upgrade実行</a></li><li><a href="#toc6" tabindex="0">update_extensions.sql実行</a></li><li><a href="#toc7" tabindex="0">vacuumdb実行</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">環境</span></h2>



<ul class="wp-block-list">
<li>Windows11(22H2)</li>



<li>Windws Server 2022 Standard(21H2)</li>
</ul>



<p>いずれもDebian11で動かしているVirtual Box上の仮想マシンです。</p>



<h2 class="wp-block-heading"><span id="toc2">新バージョンのPostgreSQLインストール</span></h2>



<p>今回私は14.7を選択しました（15はスキーマの取り扱いが変わるのでまたの機会に）。いずれのプラットフォームでもこちらから入手できます。</p>



<div class="wp-block-cocoon-blocks-blogcard blogcard-type bct-none">

<a rel="noopener" href="https://www.postgresql.jp/download" title="ダウンロード" class="blogcard-wrap external-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://s.wordpress.com/mshots/v1/https%3A%2F%2Fwww.postgresql.jp%2Fdownload?w=160&#038;h=90" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="160" height="90" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">ダウンロード</div><div class="blogcard-snippet external-blogcard-snippet">ダウンロードリンク PostgreSQLのWindows インストーラ、Linux ディストリビューション・パッケージ、ソースアーカイブ等のサイトへのリンク集です。</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://www.postgresql.jp/download" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">www.postgresql.jp</div></div></div></div></a>
</div>



<p>この後の作業で新旧両方のDBを並行稼働させますから、新DBのポート番号は旧DBと異なるポート番号を指定しましょう。</p>



<h2 class="wp-block-heading"><span id="toc3">pg_hba.conの編集</span></h2>



<p>移行元・移行先ともpg_hba.confのMETHODを全てtrustに変更します。変更前にオリジナルのバックアップを忘れないようにしましょう。あと、サービスの再起動もお忘れなく。</p>



<h2 class="wp-block-heading"><span id="toc4">作業用ディレクトリ作成</span></h2>



<p>旧DBの内容を取り出し保存する先を作成します。今回私はCドライブ直下にworkというフォルダを作りEveryoneフルコントロールとしました。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="439" height="397" src="https://sandambara.com/wp-content/uploads/2023/03/image-1.png" alt="" class="wp-image-2202" srcset="https://sandambara.com/wp-content/uploads/2023/03/image-1.png 439w, https://sandambara.com/wp-content/uploads/2023/03/image-1-300x271.png 300w" sizes="(max-width: 439px) 100vw, 439px" /></figure>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="715" height="413" src="https://sandambara.com/wp-content/uploads/2023/03/image-2.png" alt="" class="wp-image-2203" srcset="https://sandambara.com/wp-content/uploads/2023/03/image-2.png 715w, https://sandambara.com/wp-content/uploads/2023/03/image-2-300x173.png 300w, https://sandambara.com/wp-content/uploads/2023/03/image-2-120x68.png 120w" sizes="(max-width: 715px) 100vw, 715px" /></figure>



<h2 class="wp-block-heading"><span id="toc5">pg_upgrade実行</span></h2>



<p>ここまでの準備だけで引っ越し作業をまるっと行ってくれるpg_upgrade.exeという非常に便利なツールがあります。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="954" height="645" src="https://sandambara.com/wp-content/uploads/2023/03/image-3.png" alt="" class="wp-image-2205" srcset="https://sandambara.com/wp-content/uploads/2023/03/image-3.png 954w, https://sandambara.com/wp-content/uploads/2023/03/image-3-300x203.png 300w, https://sandambara.com/wp-content/uploads/2023/03/image-3-768x519.png 768w" sizes="(max-width: 954px) 100vw, 954px" /><figcaption class="wp-element-caption">pg_upgrade.exe</figcaption></figure>



<p>あとはこれを実行するだけです。</p>



<div class="wp-block-cocoon-blocks-blogcard blogcard-type bct-none">

<a rel="noopener" href="https://www.postgresql.jp/document/14/html/pgupgrade.html" title="pg_upgrade" class="blogcard-wrap external-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://s.wordpress.com/mshots/v1/https%3A%2F%2Fwww.postgresql.jp%2Fdocument%2F14%2Fhtml%2Fpgupgrade.html?w=160&#038;h=90" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="160" height="90" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">pg_upgrade</div><div class="blogcard-snippet external-blogcard-snippet"></div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://www.postgresql.jp/document/14/html/pgupgrade.html" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">www.postgresql.jp</div></div></div></div></a>
</div>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="97" src="https://sandambara.com/wp-content/uploads/2023/03/image-4-1024x97.png" alt="" class="wp-image-2206" srcset="https://sandambara.com/wp-content/uploads/2023/03/image-4-1024x97.png 1024w, https://sandambara.com/wp-content/uploads/2023/03/image-4-300x28.png 300w, https://sandambara.com/wp-content/uploads/2023/03/image-4-768x73.png 768w, https://sandambara.com/wp-content/uploads/2023/03/image-4-1536x146.png 1536w, https://sandambara.com/wp-content/uploads/2023/03/image-4-2048x194.png 2048w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>公式ドキュメントでは上記のように記述されていますが、コマンドプロンプトを管理者として実行し、下記要領でユーザー名を指定して実行すればうまくいきました。</p>



<pre class="wp-block-code"><code>pg_upgrade -U postgres -d 旧データベースクラスタのパス -D 新データベースクラスタのパス -b 旧データベースbinディレクトリのパス -B 新データベースbinディレクトリのパス</code></pre>



<p>その際、先ほど作成した作業用ディレクトリへ移動してから実行します。私の環境ではこんな感じです。</p>



<pre class="wp-block-code"><code>cd C:\work
"C:\Program Files\PostgreSQL\14\bin\pg_upgrade.exe" -U postgres -d "C:\Program Files\PostgreSQL\9.6\data" -D "C:\Program Files\PostgreSQL\14\data" -b "C:\Program Files\PostgreSQL\9.6\bin" -B "C:\Program Files\PostgreSQL\14\bin"</code></pre>



<p>ターンッ（Enterキー）</p>



<pre class="wp-block-code"><code>整合性チェックを実行しています。
-----------------------------
Checking cluster versions                                   ok
Checking database user is the install user                  ok
Checking database connection settings                       ok
Checking for prepared transactions                          ok
Checking for system-defined composite types in user tables  ok
Checking for reg* data types in user tables                 ok
Checking for contrib/isn with bigint-passing mismatch       ok
Checking for user-defined encoding conversions              ok
Checking for user-defined postfix operators                 ok
Checking for incompatible polymorphic functions             ok
Checking for tables WITH OIDS                               ok
Checking for invalid "sql_identifier" user columns          ok
Checking for invalid "unknown" user columns                 ok
Creating dump of global objects                             ok
Creating dump of database schemas
                                                            ok
Checking for presence of required libraries                 ok
Checking database user is the install user                  ok
Checking for prepared transactions                          ok
Checking for new cluster tablespace directories             ok

この後pg_upgradeが失敗した場合は、続ける前に新しいクラスタを
initdbで再作成する必要があります。

アップグレードを実行しています。
------------------
Analyzing all rows in the new cluster                       ok
Freezing all rows in the new cluster                        ok
Deleting files from new pg_xact                             ok
Copying old pg_clog to new server                           ok
Setting oldest XID for new cluster                          ok
Setting next transaction ID and epoch for new cluster       ok
Deleting files from new pg_multixact/offsets                ok
Copying old pg_multixact/offsets to new server              ok
Deleting files from new pg_multixact/members                ok
Copying old pg_multixact/members to new server              ok
Setting next multixact ID and offset for new cluster        ok
Resetting WAL archives                                      ok
Setting frozenxid and minmxid counters in new cluster       ok
Restoring global objects in the new cluster                 ok
Restoring database schemas in the new cluster
                                                            ok
ユーザーリレーションのファイルをコピーしています
                                                            ok
Setting next OID for new cluster                            ok
Sync data directory to disk                                 ok
Creating script to delete old cluster                       ok
Checking for hash indexes                                   ok
Checking for extension updates                              notice

環境にALTER EXTENSIONコマンドで更新すべき機能拡張があります。以下のファイル
    update_extensions.sql
を、psqlを使用してデータベースのスーパーユーザーとして実行することで、これらの機能拡張
が更新されます。


アップグレードが完了しました
----------------
オプティマイザーの統計情報は、pg_upgrade では転送されません。
新サーバーを起動した後、以下のコマンドを実行することを検討してください:
    C:/Program Files/PostgreSQL/14/bin/vacuumdb -U postgres --all --analyze-in-stages

このスクリプトを実行すると、旧クラスタのデータファイル delete_old_cluster.batが削除されます:


c:\work></code></pre>



<p>後はupdate_extensions.sqlとvacuumdbの実行だけですが、これらを実行する前に新DBのpostgresql.confを編集してポートを5432へ戻しておきます。このタイミングでpg_hba.confを修正しても問題ありませんが、他から繋ぎに来られる可能性があるのであれば後回しにしましょう。</p>



<h2 class="wp-block-heading"><span id="toc6">update_extensions.sql実行</span></h2>



<p>ここまでの作業でサービスは停止していますので、ポートを変更したらサービスを起動します。update_extensions.sqlの中身は「ALTER EXTENSION &#8220;adminpack&#8221; UPDATE;」だけですのでpostgresでログインして直接実行しても構いません。</p>



<h2 class="wp-block-heading"><span id="toc7">vacuumdb実行</span></h2>



<p>後はvacuumdbの実行です（DB名を***で伏せています）。</p>



<pre class="wp-block-code"><code>c:\work>"C:/Program Files/PostgreSQL/14/bin/vacuumdb" -U postgres --all --analyze-in-stages
vacuumdb: データベース"***"の処理中です: 最適化のための情報を最小限生成します(1対象)
vacuumdb: データベース"***"の処理中です: 最適化のための情報を最小限生成します(1対象)
vacuumdb: データベース"***"の処理中です: 最適化のための情報を最小限生成します(1対象)
vacuumdb: データベース"***"の処理中です: 最適化のための情報を最小限生成します(1対象)
vacuumdb: データベース"***"の処理中です: 最適化のための情報を最小限生成します(1対象)
vacuumdb: データベース"postgres"の処理中です: 最適化のための情報を最小限生成します(1対象)
vacuumdb: データベース"template1"の処理中です: 最適化のための情報を最小限生成します(1対象)
vacuumdb: データベース"***"の処理中です: 最適化のための情報を複数生成します(10対象)
vacuumdb: データベース"***"の処理中です: 最適化のための情報を複数生成します(10対象)
vacuumdb: データベース"***"の処理中です: 最適化のための情報を複数生成します(10対象)
vacuumdb: データベース"***"の処理中です: 最適化のための情報を複数生成します(10対象)
vacuumdb: データベース"***"の処理中です: 最適化のための情報を複数生成します(10対象)
vacuumdb: データベース"postgres"の処理中です: 最適化のための情報を複数生成します(10対象)
vacuumdb: データベース"template1"の処理中です: 最適化のための情報を複数生成します(10対象)
vacuumdb: データベース"***"の処理中です: 最適化のための情報をデフォルト数(全て)生成します
vacuumdb: データベース"***"の処理中です: 最適化のための情報をデフォルト数(全て)生成します
vacuumdb: データベース"***"の処理中です: 最適化のための情報をデフォルト数(全て)生成します
vacuumdb: データベース"***"の処理中です: 最適化のための情報をデフォルト数(全て)生成します
vacuumdb: データベース"***"の処理中です: 最適化のための情報をデフォルト数(全て)生成します
vacuumdb: データベース"postgres"の処理中です: 最適化のための情報をデフォルト数(全て)生成します
vacuumdb: データベース"template1"の処理中です: 最適化のための情報をデフォルト数(全て)生成します

c:\work>

</code></pre>



<p>この作業は旧DBのデータベースクラスタ削除を含んでいます。「このスクリプトを実行すると、旧クラスタのデータファイル delete_old_cluster.batが削除されます:」の日本語は微妙で「このスクリプトを実行すると、delete_old_cluster.batが旧クラスタのデータファイルを削除します:」と書きたかったのでしょうね。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="789" height="396" src="https://sandambara.com/wp-content/uploads/2023/03/image-5.png" alt="" class="wp-image-2207" srcset="https://sandambara.com/wp-content/uploads/2023/03/image-5.png 789w, https://sandambara.com/wp-content/uploads/2023/03/image-5-300x151.png 300w, https://sandambara.com/wp-content/uploads/2023/03/image-5-768x385.png 768w" sizes="(max-width: 789px) 100vw, 789px" /><figcaption class="wp-element-caption">dataが削除されています</figcaption></figure>



<p>後は動作確認を済ませて終了です！</p>The post <a href="https://sandambara.com/versionup-postgresql-from9-6to14-7">PostgreSQLバージョンアップ（9.6→14.7）</a> first appeared on <a href="https://sandambara.com">ITとガジェットあれこれ</a>.]]></content:encoded>
					
					<wfw:commentRss>https://sandambara.com/versionup-postgresql-from9-6to14-7/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>WSL2でPostgreSQLとApacheとPHPを使えるようにする（OracleLinux8.5 systemd対策あり）</title>
		<link>https://sandambara.com/oraclelinux85-with-postgresql-apache-php-using-wsl2?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=oraclelinux85-with-postgresql-apache-php-using-wsl2</link>
					<comments>https://sandambara.com/oraclelinux85-with-postgresql-apache-php-using-wsl2#respond</comments>
		
		<dc:creator><![CDATA[sandambara]]></dc:creator>
		<pubDate>Sun, 20 Nov 2022 09:00:00 +0000</pubDate>
				<category><![CDATA[database]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[PostgreSQL]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[開発]]></category>
		<guid isPermaLink="false">https://sandambara.com/?p=2158</guid>

					<description><![CDATA[<p>webシステムの勉強を始めようと環境構築に勤しんだ記録です。今回はVirtualBoxやHyper-VではなくWSL2で挑戦しました（作業機のOSはWindows11 Pro 22H2です）。 目次 WSL2インストール [&#8230;]</p>
The post <a href="https://sandambara.com/oraclelinux85-with-postgresql-apache-php-using-wsl2">WSL2でPostgreSQLとApacheとPHPを使えるようにする（OracleLinux8.5 systemd対策あり）</a> first appeared on <a href="https://sandambara.com">ITとガジェットあれこれ</a>.]]></description>
										<content:encoded><![CDATA[<p>webシステムの勉強を始めようと環境構築に勤しんだ記録です。今回はVirtualBoxやHyper-VではなくWSL2で挑戦しました（作業機のOSはWindows11 Pro 22H2です）。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-10" checked><label class="toc-title" for="toc-checkbox-10">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">WSL2インストール</a></li><li><a href="#toc2" tabindex="0">要るものを最初に入れる</a></li><li><a href="#toc3" tabindex="0">最初にやること（systemdを使えるようにする）</a></li><li><a href="#toc4" tabindex="0">PostgreSQL15のインストール</a></li><li><a href="#toc5" tabindex="0">Apacheのインストール</a></li><li><a href="#toc6" tabindex="0">PHP8のインストール</a></li><li><a href="#toc7" tabindex="0">動作テスト</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">WSL2インストール</span></h2>



<p>PowerShellを起動しコマンド一発です。拍子抜けするほど簡単でした。</p>



<pre class="wp-block-code"><code>wsl --install</code></pre>



<p>このコマンドですとUbuntuがインストールされます。Ubuntuで良い場合はこれでOKなのですが、私はPostgreSQLを慣れた環境で使いたかったのでRHEL系を探してみました。</p>



<pre class="wp-block-code"><code>wsl --list -o</code></pre>



<p>利用可能な一覧が表示されます。</p>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" src="https://sandambara.com/wp-content/uploads/2022/11/image-1024x402.png" alt="" class="wp-image-2160" width="840" height="329" srcset="https://sandambara.com/wp-content/uploads/2022/11/image-1024x402.png 1024w, https://sandambara.com/wp-content/uploads/2022/11/image-300x118.png 300w, https://sandambara.com/wp-content/uploads/2022/11/image-768x301.png 768w, https://sandambara.com/wp-content/uploads/2022/11/image.png 1317w" sizes="(max-width: 840px) 100vw, 840px" /><figcaption>wsl &#8211;list -o</figcaption></figure>



<p>OracleLinux8.5で作ることにしました。</p>



<pre class="wp-block-code"><code>wsl --install -d OracleLinux_8_5</code></pre>



<p>インストールが始まり少し待つと別ウインドウでOracleLinuxが表示されます。ユーザー名とパスワードを入力するとインストール完了です。なんとも簡単です。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="243" src="https://sandambara.com/wp-content/uploads/2022/11/001installwsl-1-1024x243.png" alt="" class="wp-image-2162" srcset="https://sandambara.com/wp-content/uploads/2022/11/001installwsl-1-1024x243.png 1024w, https://sandambara.com/wp-content/uploads/2022/11/001installwsl-1-300x71.png 300w, https://sandambara.com/wp-content/uploads/2022/11/001installwsl-1-768x182.png 768w, https://sandambara.com/wp-content/uploads/2022/11/001installwsl-1-1536x364.png 1536w, https://sandambara.com/wp-content/uploads/2022/11/001installwsl-1.png 2031w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption>OracleLinux8.5 on WSL</figcaption></figure>



<h2 class="wp-block-heading"><span id="toc2">要るものを最初に入れる</span></h2>



<p>後の作業で必要になるものや自分が使いやすいエディタを忘れないうちに入れておきます。キャプチャは取っていませんがdnf updateもやっておきましょう。この記事を作ったときはやり忘れていました（あはっ）。</p>



<pre class="wp-block-code"><code>sudo dnf install epel-release</code></pre>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="544" src="https://sandambara.com/wp-content/uploads/2022/11/002dnf-install-epel-release-1024x544.png" alt="" class="wp-image-2163" srcset="https://sandambara.com/wp-content/uploads/2022/11/002dnf-install-epel-release-1024x544.png 1024w, https://sandambara.com/wp-content/uploads/2022/11/002dnf-install-epel-release-300x159.png 300w, https://sandambara.com/wp-content/uploads/2022/11/002dnf-install-epel-release-768x408.png 768w, https://sandambara.com/wp-content/uploads/2022/11/002dnf-install-epel-release.png 1438w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption>epel-release</figcaption></figure>



<pre class="wp-block-code"><code>sudo dnf install nano htop neofetch</code></pre>



<p>neofetchは完全に個人的な趣味ですw</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="684" src="https://sandambara.com/wp-content/uploads/2022/11/004dnf-install-nano-htop-neofetch-1024x684.png" alt="" class="wp-image-2164" srcset="https://sandambara.com/wp-content/uploads/2022/11/004dnf-install-nano-htop-neofetch-1024x684.png 1024w, https://sandambara.com/wp-content/uploads/2022/11/004dnf-install-nano-htop-neofetch-300x200.png 300w, https://sandambara.com/wp-content/uploads/2022/11/004dnf-install-nano-htop-neofetch-768x513.png 768w, https://sandambara.com/wp-content/uploads/2022/11/004dnf-install-nano-htop-neofetch.png 1416w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption>nano htop neofetch</figcaption></figure>



<h2 class="wp-block-heading"><span id="toc3">最初にやること（systemdを使えるようにする）</span></h2>



<p>WSL環境ではsystemctlを使おうとすると「System has not been booted with systemd as init system (PID 1).」とお𠮟りを受けます。そのまんまで「systemdがPID1じゃない」ということなのですが、これを恒久的に解消するための作業を最初に行います。出でよ、ジェニー！</p>



<pre class="wp-block-code"><code>wget https://github.com/arkane-systems/genie/releases/download/v1.36/genie-1.36-1.fc33.x86_64.rpm</code></pre>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" src="https://sandambara.com/wp-content/uploads/2022/11/006systemd-wget-946x1024.png" alt="" class="wp-image-2165" width="841" height="910" srcset="https://sandambara.com/wp-content/uploads/2022/11/006systemd-wget-946x1024.png 946w, https://sandambara.com/wp-content/uploads/2022/11/006systemd-wget-277x300.png 277w, https://sandambara.com/wp-content/uploads/2022/11/006systemd-wget-768x831.png 768w, https://sandambara.com/wp-content/uploads/2022/11/006systemd-wget-1420x1536.png 1420w, https://sandambara.com/wp-content/uploads/2022/11/006systemd-wget.png 1426w" sizes="(max-width: 841px) 100vw, 841px" /><figcaption>genie1.36-1</figcaption></figure>



<pre class="wp-block-code"><code>sudo dnf install genie-1.36-1.fc33.x86_64.rpm</code></pre>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" src="https://sandambara.com/wp-content/uploads/2022/11/007dnf-install-genie-1024x819.png" alt="" class="wp-image-2166" width="840" height="671" srcset="https://sandambara.com/wp-content/uploads/2022/11/007dnf-install-genie-1024x819.png 1024w, https://sandambara.com/wp-content/uploads/2022/11/007dnf-install-genie-300x240.png 300w, https://sandambara.com/wp-content/uploads/2022/11/007dnf-install-genie-768x614.png 768w, https://sandambara.com/wp-content/uploads/2022/11/007dnf-install-genie.png 1406w" sizes="(max-width: 840px) 100vw, 840px" /><figcaption>genie1.36-2</figcaption></figure>



<p>ここでpsコマンドを使って状況を見てみましょう。</p>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" src="https://sandambara.com/wp-content/uploads/2022/11/009ps-ef-before-genie-1024x263.png" alt="" class="wp-image-2167" width="840" height="215" srcset="https://sandambara.com/wp-content/uploads/2022/11/009ps-ef-before-genie-1024x263.png 1024w, https://sandambara.com/wp-content/uploads/2022/11/009ps-ef-before-genie-300x77.png 300w, https://sandambara.com/wp-content/uploads/2022/11/009ps-ef-before-genie-768x198.png 768w, https://sandambara.com/wp-content/uploads/2022/11/009ps-ef-before-genie.png 1411w" sizes="(max-width: 840px) 100vw, 840px" /><figcaption>before</figcaption></figure>



<p>では、genieを初期化→開始します。</p>



<pre class="wp-block-code"><code>genie -i
</code></pre>



<p>ちょっと時間がかかるので気長に待ちましょう。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="124" src="https://sandambara.com/wp-content/uploads/2022/11/010genie-installed-1024x124.png" alt="" class="wp-image-2168" srcset="https://sandambara.com/wp-content/uploads/2022/11/010genie-installed-1024x124.png 1024w, https://sandambara.com/wp-content/uploads/2022/11/010genie-installed-300x36.png 300w, https://sandambara.com/wp-content/uploads/2022/11/010genie-installed-768x93.png 768w, https://sandambara.com/wp-content/uploads/2022/11/010genie-installed.png 1415w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>そして・・・</p>



<pre class="wp-block-code"><code>genie -s</code></pre>



<p>再度psコマンドを実行してみましょう。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="474" src="https://sandambara.com/wp-content/uploads/2022/11/011ps-ef-after-genie-1-1024x474.png" alt="" class="wp-image-2170" srcset="https://sandambara.com/wp-content/uploads/2022/11/011ps-ef-after-genie-1-1024x474.png 1024w, https://sandambara.com/wp-content/uploads/2022/11/011ps-ef-after-genie-1-300x139.png 300w, https://sandambara.com/wp-content/uploads/2022/11/011ps-ef-after-genie-1-768x355.png 768w, https://sandambara.com/wp-content/uploads/2022/11/011ps-ef-after-genie-1.png 1442w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption>systemdがPID1になりました</figcaption></figure>



<p>これでめでたくsystemctlを使えるようになったのですが、このままではwslを再起動するとまた元に戻ってしまいますので対処します。</p>



<pre class="wp-block-code"><code>nano ~/.bashrc</code></pre>



<p>ここの末尾へ追記します。</p>



<pre class="wp-block-code"><code>if &#91; "`ps -eo pid,lstart,cmd | grep systemd | grep -v -e grep -e systemd- | sort -n -k2 | awk 'NR==1 { print $1 }'`" != "1" ]; then
  genie -s
fi</code></pre>



<p>こんなふうにしておきます。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="646" src="https://sandambara.com/wp-content/uploads/2022/11/012bashrc-1024x646.png" alt="" class="wp-image-2171" srcset="https://sandambara.com/wp-content/uploads/2022/11/012bashrc-1024x646.png 1024w, https://sandambara.com/wp-content/uploads/2022/11/012bashrc-300x189.png 300w, https://sandambara.com/wp-content/uploads/2022/11/012bashrc-768x484.png 768w, https://sandambara.com/wp-content/uploads/2022/11/012bashrc.png 1416w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption>.bashrc</figcaption></figure>



<p>と、ここまで来て「WSLの再起動ってどうするんだろ？」と思ったら一度wslを落としてしまうんですね。PowerShellに戻って実行してください。</p>



<pre class="wp-block-code"><code>wsl --shutdown</code></pre>



<p>これで再度WSLを起動させればOKです。genie -iのときと同じように「！」がいっぱい表示されます。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="100" src="https://sandambara.com/wp-content/uploads/2022/11/013wslrestarted-1024x100.png" alt="" class="wp-image-2172" srcset="https://sandambara.com/wp-content/uploads/2022/11/013wslrestarted-1024x100.png 1024w, https://sandambara.com/wp-content/uploads/2022/11/013wslrestarted-300x29.png 300w, https://sandambara.com/wp-content/uploads/2022/11/013wslrestarted-768x75.png 768w, https://sandambara.com/wp-content/uploads/2022/11/013wslrestarted.png 1404w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption>WSL再起動直後</figcaption></figure>



<p>これで何を意識しなくてもsystemctlを使えるようになりました。先人たちの記事がとても参考になりました。感謝！です。</p>



<h2 class="wp-block-heading"><span id="toc4">PostgreSQL15のインストール</span></h2>



<p>以前の記事ではソースコードからコンパイルしました(PostgeSQL10)。</p>



<figure class="wp-block-embed is-type-wp-embed is-provider-itとガジェットあれこれ wp-block-embed-itとガジェットあれこれ"><div class="wp-block-embed__wrapper">

<a href="https://sandambara.com/install-postgresql-with-sourcecode" title="コピペ対応！PostgreSQLをソースコードからインストールする" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img loading="lazy" decoding="async" width="80" height="66" src="https://sandambara.com/wp-content/uploads/2020/05/5DAAAC95-7A4C-45C2-9ABC-C0E25CB98346.jpeg" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">コピペ対応！PostgreSQLをソースコードからインストールする</div><div class="blogcard-snippet internal-blogcard-snippet">今日は私が愛用するデータベース、PostgreSQLをソースコードからインストールしていこうと思います。インストーラーがある時代になぜソースコードからと思われるかもしれませんが、makeしているときの画面がカッコイイからです（単純）注意事項...</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://sandambara.com" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">sandambara.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2020.08.12</div></div></div></div></a>
</div></figure>



<p>今回は最新バージョンの15をdnfでインストールしていきます。そのままだと15が入ってくれないので準備を行います。</p>



<pre class="wp-block-code"><code>sudo dnf install https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm
</code></pre>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="579" src="https://sandambara.com/wp-content/uploads/2022/11/014dnf-install-postgresql-1-1024x579.png" alt="" class="wp-image-2174" srcset="https://sandambara.com/wp-content/uploads/2022/11/014dnf-install-postgresql-1-1024x579.png 1024w, https://sandambara.com/wp-content/uploads/2022/11/014dnf-install-postgresql-1-300x170.png 300w, https://sandambara.com/wp-content/uploads/2022/11/014dnf-install-postgresql-1-768x434.png 768w, https://sandambara.com/wp-content/uploads/2022/11/014dnf-install-postgresql-1-120x68.png 120w, https://sandambara.com/wp-content/uploads/2022/11/014dnf-install-postgresql-1-160x90.png 160w, https://sandambara.com/wp-content/uploads/2022/11/014dnf-install-postgresql-1-320x180.png 320w, https://sandambara.com/wp-content/uploads/2022/11/014dnf-install-postgresql-1.png 1413w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption>pgdg-redhat-repo</figcaption></figure>



<pre class="wp-block-code"><code>sudo dnf -qy module disable postgresql
</code></pre>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" src="https://sandambara.com/wp-content/uploads/2022/11/016disable-postgresql-1024x62.png" alt="" class="wp-image-2175" width="824" height="49" srcset="https://sandambara.com/wp-content/uploads/2022/11/016disable-postgresql-1024x62.png 1024w, https://sandambara.com/wp-content/uploads/2022/11/016disable-postgresql-300x18.png 300w, https://sandambara.com/wp-content/uploads/2022/11/016disable-postgresql-768x47.png 768w, https://sandambara.com/wp-content/uploads/2022/11/016disable-postgresql.png 1395w" sizes="(max-width: 824px) 100vw, 824px" /><figcaption>module disable</figcaption></figure>



<pre class="wp-block-code"><code>sudo dnf install postgresql15-server
</code></pre>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="583" src="https://sandambara.com/wp-content/uploads/2022/11/017-dnf-install-postgresql15-1024x583.png" alt="" class="wp-image-2176" srcset="https://sandambara.com/wp-content/uploads/2022/11/017-dnf-install-postgresql15-1024x583.png 1024w, https://sandambara.com/wp-content/uploads/2022/11/017-dnf-install-postgresql15-300x171.png 300w, https://sandambara.com/wp-content/uploads/2022/11/017-dnf-install-postgresql15-768x437.png 768w, https://sandambara.com/wp-content/uploads/2022/11/017-dnf-install-postgresql15-120x68.png 120w, https://sandambara.com/wp-content/uploads/2022/11/017-dnf-install-postgresql15-160x90.png 160w, https://sandambara.com/wp-content/uploads/2022/11/017-dnf-install-postgresql15.png 1407w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption>postgresql15</figcaption></figure>



<p>これでPostgreSQL15のインストールが終わりました。折角なので設定もしてしまいましょう。</p>



<pre class="wp-block-code"><code>sudo -i -u postgres
/usr/pgsql-15/bin/initdb -D /var/lib/pgsql/15/data
</code></pre>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" src="https://sandambara.com/wp-content/uploads/2022/11/019-initdb-1-1024x283.png" alt="" class="wp-image-2178" width="840" height="232" srcset="https://sandambara.com/wp-content/uploads/2022/11/019-initdb-1-1024x283.png 1024w, https://sandambara.com/wp-content/uploads/2022/11/019-initdb-1-300x83.png 300w, https://sandambara.com/wp-content/uploads/2022/11/019-initdb-1-768x212.png 768w, https://sandambara.com/wp-content/uploads/2022/11/019-initdb-1.png 1408w" sizes="(max-width: 840px) 100vw, 840px" /><figcaption>initdb</figcaption></figure>



<p>実ははじめWSLをUbuntuで組んだのですが、Ubuntuのポスグレではinitdbが見当たらなくて焦りました。Ubuntuは先日10年サポートの発表もあったので、使い勝手が揃っていると嬉しいですね。</p>



<p>さて、環境変数を設定しましょう。</p>



<pre class="wp-block-code"><code>nano ~/.bash_profile</code></pre>



<p>末尾に加筆します。</p>



<pre class="wp-block-code"><code>export PATH=/usr/pgsql-15/bin/:$PATH
export LD_LIBRARY_PATH=/usr/pgsql-15/lib/:$LD_LIBRARY_PATH
export PGDATA=/var/lib/pgsql/15/data
</code></pre>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" src="https://sandambara.com/wp-content/uploads/2022/11/020bashprofile-1024x331.png" alt="" class="wp-image-2179" width="840" height="271" srcset="https://sandambara.com/wp-content/uploads/2022/11/020bashprofile-1024x331.png 1024w, https://sandambara.com/wp-content/uploads/2022/11/020bashprofile-300x97.png 300w, https://sandambara.com/wp-content/uploads/2022/11/020bashprofile-768x249.png 768w, https://sandambara.com/wp-content/uploads/2022/11/020bashprofile.png 1409w" sizes="(max-width: 840px) 100vw, 840px" /><figcaption>.bash_profile</figcaption></figure>



<p>読み込みなおして完了です。</p>



<pre class="wp-block-code"><code>source ~postgres/.bash_profile</code></pre>



<p>コマンドが通ることを確認しておきましょう！</p>



<pre class="wp-block-code"><code>nano $PGDATA/pg_hba.conf
nano $PGDATA/postgresql.conf
pg_ctl start</code></pre>



<h2 class="wp-block-heading"><span id="toc5">Apacheのインストール</span></h2>



<p>ここは普通にdnf installだけで行えます。セキュリティ対策については触れておりませんのでご注意ください。</p>



<pre class="wp-block-code"><code>sudo dnf install httpd
sudo systemctl enable httpd
sudo systemctl start httpd</code></pre>



<h2 class="wp-block-heading"><span id="toc6">PHP8のインストール</span></h2>



<p>Apache同様セキュリティ対策には触れていませんのでご注意ください。</p>



<p>まずremiリポジトリを追加します。</p>



<pre class="wp-block-code"><code>sudo dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm</code></pre>



<p>デフォルトのバージョンがいくつか見てみます。</p>



<pre class="wp-block-code"><code>sudo dnf module list php</code></pre>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="317" src="https://sandambara.com/wp-content/uploads/2022/11/026list-php-1024x317.png" alt="" class="wp-image-2180" srcset="https://sandambara.com/wp-content/uploads/2022/11/026list-php-1024x317.png 1024w, https://sandambara.com/wp-content/uploads/2022/11/026list-php-300x93.png 300w, https://sandambara.com/wp-content/uploads/2022/11/026list-php-768x238.png 768w, https://sandambara.com/wp-content/uploads/2022/11/026list-php.png 1426w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption>PHPバージョン一覧</figcaption></figure>



<p>PHP8を入れられるようになりましたので進めます。DBアクセスにはPDOを使いたいので一緒に入れましょう。</p>



<pre class="wp-block-code"><code>sudo dnf module install php:8.0
sudo dnf install php-pdo php-pgsql</code></pre>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="254" src="https://sandambara.com/wp-content/uploads/2022/11/030dnf-install-php-pdo-pgsql-complete-1024x254.png" alt="" class="wp-image-2181" srcset="https://sandambara.com/wp-content/uploads/2022/11/030dnf-install-php-pdo-pgsql-complete-1024x254.png 1024w, https://sandambara.com/wp-content/uploads/2022/11/030dnf-install-php-pdo-pgsql-complete-300x74.png 300w, https://sandambara.com/wp-content/uploads/2022/11/030dnf-install-php-pdo-pgsql-complete-768x191.png 768w, https://sandambara.com/wp-content/uploads/2022/11/030dnf-install-php-pdo-pgsql-complete.png 1132w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption>PHP8が入りました</figcaption></figure>



<h2 class="wp-block-heading"><span id="toc7">動作テスト</span></h2>



<p>テストファイルを作ります。</p>



<pre class="wp-block-code"><code>sudo nano /var/www/html/index.php</code></pre>



<p>ここへ</p>



<pre class="wp-block-code"><code>&lt;?php
phpinfo();
</code></pre>



<p>Apacheを再起動してブラウザでlocalhost/index.phpへアクセスしてみましょう。</p>



<pre class="wp-block-code"><code>sudo systemctl restart httpd</code></pre>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="201" src="https://sandambara.com/wp-content/uploads/2022/11/031done-1024x201.png" alt="" class="wp-image-2182" srcset="https://sandambara.com/wp-content/uploads/2022/11/031done-1024x201.png 1024w, https://sandambara.com/wp-content/uploads/2022/11/031done-300x59.png 300w, https://sandambara.com/wp-content/uploads/2022/11/031done-768x151.png 768w, https://sandambara.com/wp-content/uploads/2022/11/031done-1536x302.png 1536w, https://sandambara.com/wp-content/uploads/2022/11/031done-2048x403.png 2048w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>DBに適当なテーブルを作ってPDOもぜひ試してみてください。最後までご覧くださって有難うございました！</p>The post <a href="https://sandambara.com/oraclelinux85-with-postgresql-apache-php-using-wsl2">WSL2でPostgreSQLとApacheとPHPを使えるようにする（OracleLinux8.5 systemd対策あり）</a> first appeared on <a href="https://sandambara.com">ITとガジェットあれこれ</a>.]]></content:encoded>
					
					<wfw:commentRss>https://sandambara.com/oraclelinux85-with-postgresql-apache-php-using-wsl2/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>SPFとDKIMとDMARC（なりすましメール対策）</title>
		<link>https://sandambara.com/mailfilter-with-spf-dkim-dmarc?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=mailfilter-with-spf-dkim-dmarc</link>
					<comments>https://sandambara.com/mailfilter-with-spf-dkim-dmarc#respond</comments>
		
		<dc:creator><![CDATA[sandambara]]></dc:creator>
		<pubDate>Sun, 06 Nov 2022 05:00:00 +0000</pubDate>
				<category><![CDATA[network]]></category>
		<category><![CDATA[メール]]></category>
		<category><![CDATA[開発]]></category>
		<guid isPermaLink="false">https://sandambara.com/?p=2116</guid>

					<description><![CDATA[<p>インターネットを使うようになり始めた頃から、迷惑メール対策って割と身近だった気がします（POP before SMTPとかOP25Bとかですね）。 今回は迷惑メール対策のうち「なりすましメール対策」について、各認証方式の [&#8230;]</p>
The post <a href="https://sandambara.com/mailfilter-with-spf-dkim-dmarc">SPFとDKIMとDMARC（なりすましメール対策）</a> first appeared on <a href="https://sandambara.com">ITとガジェットあれこれ</a>.]]></description>
										<content:encoded><![CDATA[<p>インターネットを使うようになり始めた頃から、迷惑メール対策って割と身近だった気がします（POP before SMTPとかOP25Bとかですね）。</p>



<p>今回は迷惑メール対策のうち「なりすましメール対策」について、各認証方式の違いを覚え書きとして記しました。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-12" checked><label class="toc-title" for="toc-checkbox-12">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">なりすましメール</a></li><li><a href="#toc2" tabindex="0">SPF(Sender Policy Framework)</a></li><li><a href="#toc3" tabindex="0">DKIM(DomainKeys Identified Mail)</a></li><li><a href="#toc4" tabindex="0">DMARC(Domain-based Message Authentication, Reporting, and Conformance)</a></li><li><a href="#toc5" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">なりすましメール</span></h2>



<p>受信者が不利益・被害を被るケースの一つに「なりすましメール」があげられます。Amazonや楽天、あるいはクレジットカード会社を装ったメールを受け取った経験がある方は多いのではないでしょうか。</p>



<p>以前は本文が露骨に機械翻訳だったり中国語っぽかったりでそれと気づき易かったのですが、最近はパッと見ただけでは分かり辛い巧妙なものも多いですね。</p>



<p>これ以外では「ドメインを詐称する」という手口があります。受信者もなりすましと気付きにくいうえ、個人や企業のアイデンティティであるドメインのイメージが悪化することで被害が大きくなります。</p>



<p>今回登場するSPF・DKIM・DMARCはいずれもこのなりすましを防ぐための認証手段です。</p>



<h2 class="wp-block-heading"><span id="toc2">SPF(Sender Policy Framework)</span></h2>



<p>「DNSに登録されているレコードと送信元サーバーのIPアドレス」で真偽判定するのがSPF認証です。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://sandambara.com/wp-content/uploads/2022/11/spf-1-1024x576.jpg" alt="" class="wp-image-2123" srcset="https://sandambara.com/wp-content/uploads/2022/11/spf-1-1024x576.jpg 1024w, https://sandambara.com/wp-content/uploads/2022/11/spf-1-300x169.jpg 300w, https://sandambara.com/wp-content/uploads/2022/11/spf-1-768x432.jpg 768w, https://sandambara.com/wp-content/uploads/2022/11/spf-1-120x68.jpg 120w, https://sandambara.com/wp-content/uploads/2022/11/spf-1-160x90.jpg 160w, https://sandambara.com/wp-content/uploads/2022/11/spf-1-320x180.jpg 320w, https://sandambara.com/wp-content/uploads/2022/11/spf-1.jpg 1280w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption>SPF</figcaption></figure>



<p><span class="marker-red">spfには複数のサーバーを登録することが可能</span>で、この仕組みが威力を発揮するのは例えば外部サービスのお問い合わせフォームなどを利用する場合です。サービス提供者側のサーバーをspfへ併記することで、無事なりすましメール判定を回避することができます。</p>



<p>受信したメールのヘッダを見ると「spf=pass」とか「spf=fail」といった記述がありますので、気になるメールがあれば一度チェックしてみましょう。</p>



<h2 class="wp-block-heading"><span id="toc3">DKIM(DomainKeys Identified Mail)</span></h2>



<p>DKIM認証はメールに付与された署名が正しいかどうかを判定するもので、下記はメールサーバーで署名する場合のイメージです。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://sandambara.com/wp-content/uploads/2022/11/dkim-1024x576.jpg" alt="" class="wp-image-2124" srcset="https://sandambara.com/wp-content/uploads/2022/11/dkim-1024x576.jpg 1024w, https://sandambara.com/wp-content/uploads/2022/11/dkim-300x169.jpg 300w, https://sandambara.com/wp-content/uploads/2022/11/dkim-768x432.jpg 768w, https://sandambara.com/wp-content/uploads/2022/11/dkim-120x68.jpg 120w, https://sandambara.com/wp-content/uploads/2022/11/dkim-160x90.jpg 160w, https://sandambara.com/wp-content/uploads/2022/11/dkim-320x180.jpg 320w, https://sandambara.com/wp-content/uploads/2022/11/dkim.jpg 1280w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption>DKIM</figcaption></figure>



<p>DKIMは送信経路上のいずれかの地点で署名を付与します。外部サーバーからメールを送信する時、署名を付与する仕組みがなければ認証失敗となります。</p>



<p>こちらもSPF同様「dkim=pass」や「dkim=fail」といった記述をヘッダで確認できます。</p>



<h2 class="wp-block-heading"><span id="toc4">DMARC(Domain-based Message Authentication, Reporting, and Conformance)</span></h2>



<p>DMARCはSPFやDKIMのような単体の認証方法ではなく、「SPFもしくはDKIMの判定結果」と「アライメント」と呼ばれる判定結果を組み合わせた仕組みです。従って、<span class="marker-red">SPFもDKIMも設定しない状態でDMARCを有効化すると全てのメールが</span><span class="marker-red">認証に</span><span class="marker-red">失敗するので注意が必要です</span>。</p>



<p>DMARCの良いところは「認証失敗時にそのメールをどう取り扱うべきかDNSで公開できること」です。これはSPFの登録と同じでTXTレコードへ記述するのですが、「何もしない（none）」「隔離する（quarantine）」「受信拒否する（reject）」から選択できます。</p>



<p>また、受信者側サーバーから認証失敗の通知を受け取ることができますので、視覚的に状況を把握することが可能であることもポイントです（但し、生データはXMLですので何かしらツールが無いとキツイです）。</p>



<p>以上より、DMARCを有効化する際は一先ず「none」でどのようなレポートが上がってくるかを分析し、状況を見て「quarantine」もしくは「reject」へ変更するのが安全です。</p>



<h2 class="wp-block-heading"><span id="toc5">まとめ</span></h2>



<p>ドメイン認証はメール送信者側の立場で考えると、なりすましを防ぐだけではなく自ドメインのメールを確実に相手へ届けるために必要な手段でもあります。伝えたいこと・伝えないといけないことが伝わらなかった結果、言った言わないのトラブルになったり信用を失うことは避けねばなりません。できることは是非先に手を打っておきましょう！</p>The post <a href="https://sandambara.com/mailfilter-with-spf-dkim-dmarc">SPFとDKIMとDMARC（なりすましメール対策）</a> first appeared on <a href="https://sandambara.com">ITとガジェットあれこれ</a>.]]></content:encoded>
					
					<wfw:commentRss>https://sandambara.com/mailfilter-with-spf-dkim-dmarc/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>自宅の通信が突然全滅した話（フレッツ光+OCN+RTX1210）</title>
		<link>https://sandambara.com/dnstrouble-at-sunday-afternoon-with-rtx1210?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=dnstrouble-at-sunday-afternoon-with-rtx1210</link>
					<comments>https://sandambara.com/dnstrouble-at-sunday-afternoon-with-rtx1210#respond</comments>
		
		<dc:creator><![CDATA[sandambara]]></dc:creator>
		<pubDate>Mon, 24 Oct 2022 02:00:00 +0000</pubDate>
				<category><![CDATA[network]]></category>
		<category><![CDATA[開発]]></category>
		<guid isPermaLink="false">https://sandambara.com/?p=2106</guid>

					<description><![CDATA[<p>目次 障害は忘れた頃にやってくる全セグメントで障害発生ルーターの様子を確認してみたsandambara家のネットワーク構成もしかして名前解決できない？反省会復旧報 障害は忘れた頃にやってくる 2022年10月23日、青空 [&#8230;]</p>
The post <a href="https://sandambara.com/dnstrouble-at-sunday-afternoon-with-rtx1210">自宅の通信が突然全滅した話（フレッツ光+OCN+RTX1210）</a> first appeared on <a href="https://sandambara.com">ITとガジェットあれこれ</a>.]]></description>
										<content:encoded><![CDATA[<div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-14" checked><label class="toc-title" for="toc-checkbox-14">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">障害は忘れた頃にやってくる</a></li><li><a href="#toc2" tabindex="0">全セグメントで障害発生</a></li><li><a href="#toc3" tabindex="0">ルーターの様子を確認してみた</a></li><li><a href="#toc4" tabindex="0">sandambara家のネットワーク構成</a></li><li><a href="#toc5" tabindex="0">もしかして名前解決できない？</a></li><li><a href="#toc6" tabindex="0">反省会</a></li><li><a href="#toc7" tabindex="0">復旧報</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">障害は忘れた頃にやってくる</span></h2>



<p>2022年10月23日、青空広がる爽やかな日曜日。それは家族で昼食をとっていたときのことでした。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>インターネット繋がらないんだけど何かしてる？</p><cite>ボス</cite></blockquote>



<p>食事の直前まで機嫌よくツイッターを眺めていたのでボスのスマホが調子悪いのだろうと思い、私は目の前のソバに一味をタップリ振りかけながらボスにスマホの再起動を促しました。</p>



<p>軽くむせながらソバを食べていたところへ鶴の一声がかかります。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>直ってないなんとかして</p><cite>ボス</cite></blockquote>



<p>自分のスマホを取り出してみると確かにネットが使えません。なんで？？</p>



<p>ボスの命令は絶対です。ソバを胃袋に流し込み真っ赤に染まった汁を飲み干し、盛大にむせながら私は調査を開始しました。</p>



<h2 class="wp-block-heading"><span id="toc2">全セグメントで障害発生</span></h2>



<p>どうせアクセスポイントの調子が悪いんだろうと思って機器本体を眺めてみると、明らかにアカン感じの色を放っているランプを見つけました。「ほら、きっとこいつのせいだ」とすかさず電源OFF・ONしましたが、再起動後もランプの色は変わりません。</p>



<p>安物だったから壊れちゃったか・・・それにしても短命だったなと、古いアクセスポイントを引っ張り出そうとしたのですが、ちょっと気になったので別セグメントのアクセスポイントへスマホを繋ぎ変えてみました。</p>



<p>「・・・ん？」</p>



<p>ダメです。ボスが使うネットワークと同じ症状。アクセスポイントとはつながるのですがネットが一切使えません。他のセグメントも全部ダメ。重障害です。</p>



<h2 class="wp-block-heading"><span id="toc3">ルーターの様子を確認してみた</span></h2>



<p>全セグメント死亡。休日昼下がりのイベントとしてはかなりのハードモードです。夜は旧知のメンバーと数年ぶりに宴の約束があるので、なんとしても夕方までには復旧させねばなりません。とりあえずPCを持ってルーター(RTX1210）の元へ向かいました。</p>



<p>「これが死んでたらワイも死ぬ」</p>



<p>祈りながらルーターにログイン試行・・・すんなり入れました。見える範囲で異常はありません。なんだろう？ルーターから一度抜けて、再度各セグメントのアクセスポイントに接続しルーターへアクセスしてみるとこれもOK。LAN側に問題は無いようです。</p>



<p>念のためRTX1210を再起動させてみましたが変化ありませんでした。</p>



<h2 class="wp-block-heading"><span id="toc4">sandambara家のネットワーク構成</span></h2>



<p>以前記事にまとめましたが、我が家のネットワークは元々ホームゲートウェイ＋ひかり電話という構成だったところへRTX1210を投入し、その後VLANを作成し現在の構成に至ります。</p>



<figure class="wp-block-embed is-type-wp-embed is-provider-itとガジェットあれこれ wp-block-embed-itとガジェットあれこれ"><div class="wp-block-embed__wrapper">

<a href="https://sandambara.com/ipoe-with-ocn-using-rtx1210" title="フレッツ光＋IPoE化でハマった記録" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img loading="lazy" decoding="async" width="160" height="90" src="https://sandambara.com/wp-content/uploads/2020/09/RTX1210-160x90.jpg" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://sandambara.com/wp-content/uploads/2020/09/RTX1210-160x90.jpg 160w, https://sandambara.com/wp-content/uploads/2020/09/RTX1210-120x68.jpg 120w, https://sandambara.com/wp-content/uploads/2020/09/RTX1210-320x180.jpg 320w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">フレッツ光＋IPoE化でハマった記録</div><div class="blogcard-snippet internal-blogcard-snippet">先日自宅用に購入したRTX1210、早速活躍しております。何年も前に仕事でRTX1200を少し触っていたのですが、GUIの充実度や操作レスポンスなど、随分進化したんだなあ・・・と感動してしまいました。我が家のネット環境はフレッツ光隼＋OCN...</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://sandambara.com" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">sandambara.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2020.09.18</div></div></div></div></a>
</div></figure>



<p>ここでホームゲートウェイを再起動してみましたがこれも変化なし。電話は普通に使えているのでホームゲートウェイから外の土管も問題無さそうです。</p>



<p>となるとプロバイダがあやしいかもと、OCNについて検索するも障害情報は見当たりません。Twitterでも騒いでいる人はいません。おっかしいなあ・・・</p>



<h2 class="wp-block-heading"><span id="toc5">もしかして名前解決できない？</span></h2>



<p>この辺りまできて、以前Cloudflareが死んだことをふと思い出しました。</p>





<a rel="noopener" href="https://blog.cloudflare.com/ja-jp/cloudflare-outage-on-june-21-2022-ja-jp/" title="Cloudflare ブログ" class="blogcard-wrap external-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://sandambara.com/wp-content/uploads/cocoon-resources/blog-card-cache/e7b2b8e6d07b0aa4c08d8aabbafdbcaf.png" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="160" height="90" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">Cloudflare ブログ</div><div class="blogcard-snippet external-blogcard-snippet">Get the latest news on how products at Cloudflare are built, technologies used, and join the teams helping to build a be...</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://blog.cloudflare.com/ja-jp/cloudflare-outage-on-june-21-2022-ja-jp/" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">blog.cloudflare.com</div></div></div></div></a>




<p>当時は「ふーん」くらいにしか思っていなかったのですが、夏頃にCloudflareのパブリックDNSが早いらしいという記事を見つけ、RTX1210で各セグメントに配布するDNSの値を1.1.1.1にしていたのです。</p>



<figure class="wp-block-embed is-type-rich is-provider-twitter wp-block-embed-twitter"><div class="wp-block-embed__wrapper">
<blockquote class="twitter-tweet" data-width="550" data-dnt="true"><p lang="ja" dir="ltr">1.1.1.1が死んでる？</p>&mdash; sandambara (@sandambara) <a href="https://twitter.com/sandambara/status/1584044642102042624?ref_src=twsrc%5Etfw">October 23, 2022</a></blockquote><script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
</div></figure>



<p>「http://IPアドレス」だとアクセスできるかも？と考え、とあるサイトにアクセスしてみると・・・普通に表示されました。原因は分かりませんが結論としてDNSが機能していないことが分かったので、ルーターの設定を変更（1.1.1.1→OCNのDNS）して無事解決に至りました。</p>



<figure class="wp-block-embed is-type-rich is-provider-twitter wp-block-embed-twitter"><div class="wp-block-embed__wrapper">
<blockquote class="twitter-tweet" data-width="550" data-dnt="true"><p lang="ja" dir="ltr">DNSを1.1.1.1からプロバイダ指定値に変えて復旧しました。騒いでるのは私だけなので謎が残るトラブルでした。 <a href="https://t.co/LAjHmtjzN8">https://t.co/LAjHmtjzN8</a></p>&mdash; sandambara (@sandambara) <a href="https://twitter.com/sandambara/status/1584046407501377539?ref_src=twsrc%5Etfw">October 23, 2022</a></blockquote><script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
</div></figure>



<p>試しにDNSを切り替えながらnslookupを試してみるとこんな感じでした。</p>



<figure class="wp-block-embed is-type-rich is-provider-twitter wp-block-embed-twitter"><div class="wp-block-embed__wrapper">
<blockquote class="twitter-tweet" data-width="550" data-dnt="true"><p lang="ja" dir="ltr">やっぱりお亡くなりになってる模様 <a href="https://t.co/m7VD6OHje8">pic.twitter.com/m7VD6OHje8</a></p>&mdash; sandambara (@sandambara) <a href="https://twitter.com/sandambara/status/1584048911894749184?ref_src=twsrc%5Etfw">October 23, 2022</a></blockquote><script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
</div></figure>



<h2 class="wp-block-heading"><span id="toc6">反省会</span></h2>



<p>後から気付いたことですが、少ないながらも同じ症状の方がおられることが分かりました。</p>



<figure class="wp-block-embed is-type-rich is-provider-twitter wp-block-embed-twitter"><div class="wp-block-embed__wrapper">
<blockquote class="twitter-tweet" data-width="550" data-dnt="true"><p lang="ja" dir="ltr">何人か同じ現象に直面している方を観測 <a href="https://t.co/GZkt4edR06">https://t.co/GZkt4edR06</a></p>&mdash; sandambara (@sandambara) <a href="https://twitter.com/sandambara/status/1584049826421145600?ref_src=twsrc%5Etfw">October 23, 2022</a></blockquote><script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
</div></figure>



<p>この記事を書いている今も真実は闇なのですが、今回の反省点として「セカンダリDNSを設定していなかったこと」が挙げられます。不死身のサーバーなどこの世に存在しないのです。</p>



<figure class="wp-block-embed is-type-rich is-provider-twitter wp-block-embed-twitter"><div class="wp-block-embed__wrapper">
<blockquote class="twitter-tweet" data-width="550" data-dnt="true"><p lang="ja" dir="ltr">ズボラしてプライマリしか設定していなかったオウンゴールと思うことにしました（反省）</p>&mdash; sandambara (@sandambara) <a href="https://twitter.com/sandambara/status/1584049478004137985?ref_src=twsrc%5Etfw">October 23, 2022</a></blockquote><script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
</div></figure>



<p>善は急げ。早速RTX1210のコンフィグを修正しました。</p>



<pre class="wp-block-code"><code>dhcp scope option VLANID dns=1.1.1.1,202.234.232.6</code></pre>



<p>8.8.8.8でも良かったのですが、まあ、1個は標準値（プロバイダの指定値）にしておこうかと。</p>



<h2 class="wp-block-heading"><span id="toc7">復旧報</span></h2>



<p>約1時間程度で復旧し、思っていたより傷が浅かったことに安堵しました。夜の宴も予定通りです。</p>



<p>ボスに復旧を伝えました。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>あ、LINEちゃんと使えるようになったわ</p><cite>ボス</cite></blockquote>



<p>その直後に放ったツイートがこちらです。</p>



<figure class="wp-block-embed is-type-rich is-provider-twitter wp-block-embed-twitter"><div class="wp-block-embed__wrapper">
<blockquote class="twitter-tweet" data-width="550" data-dnt="true"><p lang="ja" dir="ltr">無事自宅のインフラ守ったから褒められたい</p>&mdash; sandambara (@sandambara) <a href="https://twitter.com/sandambara/status/1584053441705672705?ref_src=twsrc%5Etfw">October 23, 2022</a></blockquote><script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
</div></figure>



<p>電気ガス水道インターネット、使えて当たり前ではないのです。「何も無いこと」を提供するために裏で働く人たちへの敬意と感謝を忘れないようにしたいですね（褒められたい）。</p>The post <a href="https://sandambara.com/dnstrouble-at-sunday-afternoon-with-rtx1210">自宅の通信が突然全滅した話（フレッツ光+OCN+RTX1210）</a> first appeared on <a href="https://sandambara.com">ITとガジェットあれこれ</a>.]]></content:encoded>
					
					<wfw:commentRss>https://sandambara.com/dnstrouble-at-sunday-afternoon-with-rtx1210/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Python+OpenVINOで動体検知に挑戦（人数カウント）　Part1</title>
		<link>https://sandambara.com/object-intrusion-detection-with-python-and-openvino-part1?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=object-intrusion-detection-with-python-and-openvino-part1</link>
					<comments>https://sandambara.com/object-intrusion-detection-with-python-and-openvino-part1#respond</comments>
		
		<dc:creator><![CDATA[sandambara]]></dc:creator>
		<pubDate>Sun, 23 Oct 2022 01:00:00 +0000</pubDate>
				<category><![CDATA[AI]]></category>
		<category><![CDATA[Dragonfly]]></category>
		<category><![CDATA[HP]]></category>
		<category><![CDATA[intel]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[OpenVINO]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[開発]]></category>
		<guid isPermaLink="false">https://sandambara.com/?p=2040</guid>

					<description><![CDATA[<p>ラズパイを買った頃に面白がって色々やっていたのですが、その後はすっかりご無沙汰でした。 先日仕事がらみで試してみたいことができたのでPythonやOpenVINOを使おうと思ったら、なにもかも忘れ去っていたり環境が変わっ [&#8230;]</p>
The post <a href="https://sandambara.com/object-intrusion-detection-with-python-and-openvino-part1">Python+OpenVINOで動体検知に挑戦（人数カウント）　Part1</a> first appeared on <a href="https://sandambara.com">ITとガジェットあれこれ</a>.]]></description>
										<content:encoded><![CDATA[<p>ラズパイを買った頃に面白がって色々やっていたのですが、その後はすっかりご無沙汰でした。</p>



<p>先日仕事がらみで試してみたいことができたのでPythonやOpenVINOを使おうと思ったら、なにもかも忘れ去っていたり環境が変わっていたので久々の覚書記事です。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-16" checked><label class="toc-title" for="toc-checkbox-16">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">動作環境</a></li><li><a href="#toc2" tabindex="0">謝辞</a></li><li><a href="#toc3" tabindex="0">環境作成1　ソースコード他ダウンロード</a></li><li><a href="#toc4" tabindex="0">環境作成2　Pythonインストール</a></li><li><a href="#toc5" tabindex="0">環境作成3　OpenVINOインストール</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">動作環境</span></h2>



<ul class="wp-block-list"><li>Windows 11 Pro 21H2 (HP Dragonfly G2)</li><li>Python 3.7.9</li><li>OpenVINO 2022.1</li><li>USB接続のWEBカメラ（PC本体内蔵のものでもOK）</li></ul>



<h2 class="wp-block-heading"><span id="toc2">謝辞</span></h2>



<p>以前から興味を持って訪ねさせて頂いていて、目からレーザービームが出るのとかよく子供と遊びました。</p>



<p>ここがなかったら自力では絶対無理でした。素晴らしいコードを公開くださったyas-simさんに感謝を捧げます。</p>





<a rel="noopener" href="https://github.com/yas-sim/object-tracking-line-crossing-area-intrusion" title="GitHub - yas-sim/object-tracking-line-crossing-area-intrusion: Deep learning based object tracking with line crossing and area intrusion detection" class="blogcard-wrap external-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://opengraph.githubassets.com/2f7ee5545507db5b539fe19315fded885da34ec5ab786426b34c0cc879f8d4e1/yas-sim/object-tracking-line-crossing-area-intrusion" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="160" height="90" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">GitHub - yas-sim/object-tracking-line-crossing-area-intrusion: Deep learning based object tracking with line crossing and area intrusion detection</div><div class="blogcard-snippet external-blogcard-snippet">Deep learning based object tracking with line crossing and area intrusion detection - yas-sim/object-tracking-line-cross...</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://github.com/yas-sim/object-tracking-line-crossing-area-intrusion" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">github.com</div></div></div></div></a>




<p>Apache License 2.0です。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="235" src="https://sandambara.com/wp-content/uploads/2022/10/image-12-1024x235.png" alt="" class="wp-image-2063" srcset="https://sandambara.com/wp-content/uploads/2022/10/image-12-1024x235.png 1024w, https://sandambara.com/wp-content/uploads/2022/10/image-12-300x69.png 300w, https://sandambara.com/wp-content/uploads/2022/10/image-12-768x176.png 768w, https://sandambara.com/wp-content/uploads/2022/10/image-12.png 1238w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h2 class="wp-block-heading"><span id="toc3">環境作成1　ソースコード他ダウンロード</span></h2>



<p>yas-simさんのコード他一式をダウンロードします。私はzipでダウンロードしc:\sandambara直下へ展開しました。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="296" height="128" src="https://sandambara.com/wp-content/uploads/2022/10/image-28.png" alt="" class="wp-image-2086"/></figure>



<h2 class="wp-block-heading"><span id="toc4">環境作成2　Pythonインストール</span></h2>



<p>こちらのサイトからPython 3.7.9をダウンロードします。私は「python-3.7.9-amd64.exe」を使いました。</p>





<a rel="noopener" href="https://www.python.org/downloads/windows/" title="Python Releases for Windows" class="blogcard-wrap external-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://www.python.org/static/opengraph-icon-200x200.png" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="160" height="90" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">Python Releases for Windows</div><div class="blogcard-snippet external-blogcard-snippet">The official home of the Python Programming Language</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://www.python.org/downloads/windows/" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">www.python.org</div></div></div></div></a>




<p>インストーラーを実行します。画面一番下にある「Add Python 3.7 to PATH」にチェックをつけて「Install Now」をクリックします。ユーザーアカウント制御が出たら「はい」を選択しましょう。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="691" height="420" src="https://sandambara.com/wp-content/uploads/2022/10/image.png" alt="" class="wp-image-2044" srcset="https://sandambara.com/wp-content/uploads/2022/10/image.png 691w, https://sandambara.com/wp-content/uploads/2022/10/image-300x182.png 300w" sizes="(max-width: 691px) 100vw, 691px" /></figure>



<p>そんなに時間はかかりません。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="664" height="407" src="https://sandambara.com/wp-content/uploads/2022/10/image-1.png" alt="" class="wp-image-2045" srcset="https://sandambara.com/wp-content/uploads/2022/10/image-1.png 664w, https://sandambara.com/wp-content/uploads/2022/10/image-1-300x184.png 300w" sizes="(max-width: 664px) 100vw, 664px" /></figure>



<p>インストールが終わったら「Disable path length limit」を選択しておきます。ユーザーアカウント制御が表示されますので「はい」を選択しましょう。path length limitについては<a rel="noopener" href="https://learn.microsoft.com/ja-jp/windows/win32/fileio/naming-a-file?redirectedfrom=MSDN" target="_blank" title="">こちら</a>に解説があります。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="691" height="422" src="https://sandambara.com/wp-content/uploads/2022/10/image-2.png" alt="" class="wp-image-2046" srcset="https://sandambara.com/wp-content/uploads/2022/10/image-2.png 691w, https://sandambara.com/wp-content/uploads/2022/10/image-2-300x183.png 300w" sizes="(max-width: 691px) 100vw, 691px" /></figure>



<p>Closeをクリックしてインストーラーを終了させます。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="664" height="406" src="https://sandambara.com/wp-content/uploads/2022/10/image-3.png" alt="" class="wp-image-2048" srcset="https://sandambara.com/wp-content/uploads/2022/10/image-3.png 664w, https://sandambara.com/wp-content/uploads/2022/10/image-3-300x183.png 300w" sizes="(max-width: 664px) 100vw, 664px" /></figure>



<p>コマンドプロンプトを起動して「python -V」と入力→Enterキーでバージョン表示されることを確認しましょう。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="149" height="86" src="https://sandambara.com/wp-content/uploads/2022/10/image-4.png" alt="" class="wp-image-2049" srcset="https://sandambara.com/wp-content/uploads/2022/10/image-4.png 149w, https://sandambara.com/wp-content/uploads/2022/10/image-4-120x68.png 120w" sizes="(max-width: 149px) 100vw, 149px" /></figure>



<p>Pythonのインストール完了です。コマンドプロンプトは閉じずにそのまま出しておいてください。</p>



<h2 class="wp-block-heading"><span id="toc5">環境作成3　OpenVINOインストール</span></h2>



<p>下記のサイトへアクセスし「Free Download」と書かれた青いボタンをクリックしましょう。</p>





<a rel="noopener" href="https://www.intel.com/content/www/us/en/developer/tools/openvino-toolkit/overview.html" title="Access Denied" class="blogcard-wrap external-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://s.wordpress.com/mshots/v1/https%3A%2F%2Fwww.intel.com%2Fcontent%2Fwww%2Fus%2Fen%2Fdeveloper%2Ftools%2Fopenvino-toolkit%2Foverview.html?w=160&#038;h=90" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="160" height="90" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">Access Denied</div><div class="blogcard-snippet external-blogcard-snippet"></div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://www.intel.com/content/www/us/en/developer/tools/openvino-toolkit/overview.html" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">www.intel.com</div></div></div></div></a>




<p>EnvironmentのところはDevelopment toolsとRuntimeが選択できますのでRuntimeを選択します。</p>



<p>Versionはyas-simさんのREADME.mod「How To Run」にOpenVINO2021.3と指定があります。しかし、前文でこのように追記があります。</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>[ Update &#8211; 04-Apr-2022 ] OpenVINO API 2.0 support. Program is now compatible with OpenVINO 2022.1 (and not compatible with OpenVINO 2021 and older ones)</p><cite>https://github.com/yas-sim/object-tracking-line-crossing-area-intrusion</cite></blockquote>



<p>OpenVINOのAPIが新しくなったのですね。作りっぱなしではなく新しい環境に合わせモディファイしてくださるとはなんとも有難いことです。2022.10.24時点の最新Versionは2022.2ですが、今回はyas-simさんが検証された2022.1を利用します。</p>



<p>公式サイトはこんな風になります。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="889" height="872" src="https://sandambara.com/wp-content/uploads/2022/10/image-13.png" alt="" class="wp-image-2069" srcset="https://sandambara.com/wp-content/uploads/2022/10/image-13.png 889w, https://sandambara.com/wp-content/uploads/2022/10/image-13-300x294.png 300w, https://sandambara.com/wp-content/uploads/2022/10/image-13-768x753.png 768w" sizes="(max-width: 889px) 100vw, 889px" /></figure>



<p>サイトを少し下へスクロールするとダウンロードボタンがありますので、クリックしてダウンロードを開始します。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="828" height="230" src="https://sandambara.com/wp-content/uploads/2022/10/image-15.png" alt="" class="wp-image-2071" srcset="https://sandambara.com/wp-content/uploads/2022/10/image-15.png 828w, https://sandambara.com/wp-content/uploads/2022/10/image-15-300x83.png 300w, https://sandambara.com/wp-content/uploads/2022/10/image-15-768x213.png 768w" sizes="(max-width: 828px) 100vw, 828px" /></figure>



<p>ダウンロードが完了したら「w_openvino_toolkit_p_2022.1.0.643_offline.exe」を実行します。ユーザーアカウント制御が表示されたら「はい」で進みます。インストーラーが起動したら「Continue」をクリックしましょう。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="808" height="455" src="https://sandambara.com/wp-content/uploads/2022/10/image-34.png" alt="" class="wp-image-2096" srcset="https://sandambara.com/wp-content/uploads/2022/10/image-34.png 808w, https://sandambara.com/wp-content/uploads/2022/10/image-34-300x169.png 300w, https://sandambara.com/wp-content/uploads/2022/10/image-34-768x432.png 768w, https://sandambara.com/wp-content/uploads/2022/10/image-34-120x68.png 120w, https://sandambara.com/wp-content/uploads/2022/10/image-34-160x90.png 160w, https://sandambara.com/wp-content/uploads/2022/10/image-34-320x180.png 320w" sizes="(max-width: 808px) 100vw, 808px" /></figure>



<p>ライセンスの同意にチェックを付けたら「Continue」をクリックします。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="575" src="https://sandambara.com/wp-content/uploads/2022/10/image-17-1024x575.png" alt="" class="wp-image-2073" srcset="https://sandambara.com/wp-content/uploads/2022/10/image-17-1024x575.png 1024w, https://sandambara.com/wp-content/uploads/2022/10/image-17-300x169.png 300w, https://sandambara.com/wp-content/uploads/2022/10/image-17-768x431.png 768w, https://sandambara.com/wp-content/uploads/2022/10/image-17-120x68.png 120w, https://sandambara.com/wp-content/uploads/2022/10/image-17-160x90.png 160w, https://sandambara.com/wp-content/uploads/2022/10/image-17-320x180.png 320w, https://sandambara.com/wp-content/uploads/2022/10/image-17.png 1328w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>こちらはお好みに応じて選択してください。いずれかのラジオボタンを選択したら「Install」をクリックしましょう。途中必要に応じてC++のRuntimeがインストールされます。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="572" src="https://sandambara.com/wp-content/uploads/2022/10/image-18-1024x572.png" alt="" class="wp-image-2074" srcset="https://sandambara.com/wp-content/uploads/2022/10/image-18-1024x572.png 1024w, https://sandambara.com/wp-content/uploads/2022/10/image-18-300x167.png 300w, https://sandambara.com/wp-content/uploads/2022/10/image-18-768x429.png 768w, https://sandambara.com/wp-content/uploads/2022/10/image-18-120x68.png 120w, https://sandambara.com/wp-content/uploads/2022/10/image-18-160x90.png 160w, https://sandambara.com/wp-content/uploads/2022/10/image-18-320x180.png 320w, https://sandambara.com/wp-content/uploads/2022/10/image-18.png 1331w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>インストールが完了したら「Finish」をクリックします。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="418" height="173" src="https://sandambara.com/wp-content/uploads/2022/10/image-19.png" alt="" class="wp-image-2075" srcset="https://sandambara.com/wp-content/uploads/2022/10/image-19.png 418w, https://sandambara.com/wp-content/uploads/2022/10/image-19-300x124.png 300w" sizes="(max-width: 418px) 100vw, 418px" /></figure>



<p>Part2に続きます。</p>



<figure class="wp-block-embed is-type-wp-embed is-provider-itとガジェットあれこれ wp-block-embed-itとガジェットあれこれ"><div class="wp-block-embed__wrapper">

<a href="https://sandambara.com/object-intrusion-detection-with-python-and-openvino-part2" title="Python+OpenVINOで動体検知に挑戦（人数カウント）　Part2" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img loading="lazy" decoding="async" width="160" height="90" src="https://sandambara.com/wp-content/uploads/2020/09/python_18894-160x90.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://sandambara.com/wp-content/uploads/2020/09/python_18894-160x90.png 160w, https://sandambara.com/wp-content/uploads/2020/09/python_18894-120x68.png 120w, https://sandambara.com/wp-content/uploads/2020/09/python_18894-320x180.png 320w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">Python+OpenVINOで動体検知に挑戦（人数カウント）　Part2</div><div class="blogcard-snippet internal-blogcard-snippet">Part1の続きです。動作環境の確認などまだお済みでないかたはこちらをご参照ください。必要なモジュールをインストールこちらのコマンドでインストールします。requirements.txtはダウンロードしたyas-simさんのフォルダ直下にあ...</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://sandambara.com" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">sandambara.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2022.10.23</div></div></div></div></a>
</div></figure>The post <a href="https://sandambara.com/object-intrusion-detection-with-python-and-openvino-part1">Python+OpenVINOで動体検知に挑戦（人数カウント）　Part1</a> first appeared on <a href="https://sandambara.com">ITとガジェットあれこれ</a>.]]></content:encoded>
					
					<wfw:commentRss>https://sandambara.com/object-intrusion-detection-with-python-and-openvino-part1/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Python+OpenVINOで動体検知に挑戦（人数カウント）　Part2</title>
		<link>https://sandambara.com/object-intrusion-detection-with-python-and-openvino-part2?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=object-intrusion-detection-with-python-and-openvino-part2</link>
					<comments>https://sandambara.com/object-intrusion-detection-with-python-and-openvino-part2#respond</comments>
		
		<dc:creator><![CDATA[sandambara]]></dc:creator>
		<pubDate>Sun, 23 Oct 2022 01:00:00 +0000</pubDate>
				<category><![CDATA[AI]]></category>
		<category><![CDATA[Dragonfly]]></category>
		<category><![CDATA[HP]]></category>
		<category><![CDATA[intel]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[OpenVINO]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[開発]]></category>
		<guid isPermaLink="false">https://sandambara.com/?p=2066</guid>

					<description><![CDATA[<p>Part1の続きです。動作環境の確認などまだお済みでないかたはこちらをご参照ください。 目次 必要なモジュールをインストールモデルのダウンロードソースコードの調整いざ実行！ 必要なモジュールをインストール こちらのコマン [&#8230;]</p>
The post <a href="https://sandambara.com/object-intrusion-detection-with-python-and-openvino-part2">Python+OpenVINOで動体検知に挑戦（人数カウント）　Part2</a> first appeared on <a href="https://sandambara.com">ITとガジェットあれこれ</a>.]]></description>
										<content:encoded><![CDATA[<p>Part1の続きです。動作環境の確認などまだお済みでないかたはこちらをご参照ください。</p>



<figure class="wp-block-embed is-type-wp-embed is-provider-itとガジェットあれこれ wp-block-embed-itとガジェットあれこれ"><div class="wp-block-embed__wrapper">

<a href="https://sandambara.com/object-intrusion-detection-with-python-and-openvino-part1" title="Python+OpenVINOで動体検知に挑戦（人数カウント）　Part1" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img loading="lazy" decoding="async" width="160" height="90" src="https://sandambara.com/wp-content/uploads/2020/09/python_18894-160x90.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://sandambara.com/wp-content/uploads/2020/09/python_18894-160x90.png 160w, https://sandambara.com/wp-content/uploads/2020/09/python_18894-120x68.png 120w, https://sandambara.com/wp-content/uploads/2020/09/python_18894-320x180.png 320w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">Python+OpenVINOで動体検知に挑戦（人数カウント）　Part1</div><div class="blogcard-snippet internal-blogcard-snippet">ラズパイを買った頃に面白がって色々やっていたのですが、その後はすっかりご無沙汰でした。先日仕事がらみで試してみたいことができたのでPythonやOpenVINOを使おうと思ったら、なにもかも忘れ去っていたり環境が変わっていたので久々の覚書記...</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://sandambara.com" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">sandambara.com</div></div><div class="blogcard-date internal-blogcard-date"><div class="blogcard-post-date internal-blogcard-post-date">2022.10.23</div></div></div></div></a>
</div></figure>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-18" checked><label class="toc-title" for="toc-checkbox-18">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">必要なモジュールをインストール</a></li><li><a href="#toc2" tabindex="0">モデルのダウンロード</a></li><li><a href="#toc3" tabindex="0">ソースコードの調整</a></li><li><a href="#toc4" tabindex="0">いざ実行！</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">必要なモジュールをインストール</span></h2>



<p>こちらのコマンドでインストールします。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="857" height="126" src="https://sandambara.com/wp-content/uploads/2022/10/image-22.png" alt="" class="wp-image-2079" srcset="https://sandambara.com/wp-content/uploads/2022/10/image-22.png 857w, https://sandambara.com/wp-content/uploads/2022/10/image-22-300x44.png 300w, https://sandambara.com/wp-content/uploads/2022/10/image-22-768x113.png 768w" sizes="(max-width: 857px) 100vw, 857px" /></figure>



<p>requirements.txtはダウンロードしたyas-simさんのフォルダ直下にあります。私の場合は「C:\sandambara\object-tracking-line-crossing-area-intrusion-master\requirements.txt&#8221;」なのでこのような感じです。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="826" height="26" src="https://sandambara.com/wp-content/uploads/2022/10/image-29.png" alt="" class="wp-image-2088" srcset="https://sandambara.com/wp-content/uploads/2022/10/image-29.png 826w, https://sandambara.com/wp-content/uploads/2022/10/image-29-300x9.png 300w, https://sandambara.com/wp-content/uploads/2022/10/image-29-768x24.png 768w" sizes="(max-width: 826px) 100vw, 826px" /></figure>



<p>数分かかります。</p>



<h2 class="wp-block-heading"><span id="toc2">モデルのダウンロード</span></h2>



<p>ダウンロードするためのコマンドを調べました。</p>



<pre class="wp-block-code"><code>omz_downloader --list models.lst</code></pre>



<p>models.lstはrequirements.txtと同じ場所にありますので、私の場合はこうなります。</p>



<pre class="wp-block-code"><code>omz_downloader --list C:\sandambara\object-tracking-line-crossing-area-intrusion-master\models.lst</code></pre>



<p>ダウンロードされたものはこちらです。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="266" height="240" src="https://sandambara.com/wp-content/uploads/2022/10/image-32.png" alt="" class="wp-image-2091"/></figure>



<p></p>



<h2 class="wp-block-heading"><span id="toc3">ソースコードの調整</span></h2>



<p>yas-simさんのソースコードを環境に合わせて調整します。といっても調整が必要なのは1-3か所だけです。</p>



<ul class="wp-block-list"><li>233行目のコメントを解除</li><li>235行目の640を745に変更</li><li>USB外付けカメラを使う場合は234行目および267行目をcap = cv2.VideoCapture(1)にする</li></ul>



<p>1つめと3つ目はwebカメラを使うための設定です。カッコの中の数字ですが、本体内蔵カメラの場合はcap = cv2.VideoCapture(0)、USBカメラを使う場合はcap = cv2.VideoCapture(1)です。本体に2つカメラがあるモデルだと0と1が本体用の番号で、USB外付けカメラはcap = cv2.VideoCapture(2)となります。</p>



<p>2つ目はオリジナルコードのままだとウインドウX軸方向の表示領域が狭かったので変更しました。</p>



<p>ということで、本体内蔵カメラを利用する場合の調整箇所は1か所のみ。外付けカメラを利用する場合は3か所修正します。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="435" height="217" src="https://sandambara.com/wp-content/uploads/2022/10/image-35.png" alt="" class="wp-image-2098" srcset="https://sandambara.com/wp-content/uploads/2022/10/image-35.png 435w, https://sandambara.com/wp-content/uploads/2022/10/image-35-300x150.png 300w" sizes="(max-width: 435px) 100vw, 435px" /></figure>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="387" height="80" src="https://sandambara.com/wp-content/uploads/2022/10/image-36.png" alt="" class="wp-image-2099" srcset="https://sandambara.com/wp-content/uploads/2022/10/image-36.png 387w, https://sandambara.com/wp-content/uploads/2022/10/image-36-300x62.png 300w" sizes="(max-width: 387px) 100vw, 387px" /></figure>



<p>調整が終わったら忘れずに保存しておきましょう。</p>



<h2 class="wp-block-heading"><span id="toc4">いざ実行！</span></h2>



<p>久しぶりにOpenVINOを使ってみて驚いたのは、予めsetupvars.batを実行させなくても良くなっていたことでした。これは環境変数を一時的にセットするもので、実行を忘れるとあれ？あれ？？となりがちだったのです。忘れっぽい私にとっては有難いモディファイでした。</p>



<p>では、コマンドプロンプトを開いて実行してみます。今回の手順で環境を構築された場合は最初にカレントディレクトリをルートに変更します。これを忘れるとエラーまみれになりますから注意が必要です。</p>



<pre class="wp-block-code"><code>cd \</code></pre>



<p>「python（半角スペース）」まで入力し.pyをコマンドプロンプトへドラッグアンドドロップすればこんな感じになるでしょうか。</p>



<pre class="wp-block-code"><code>C:\&gt;python C:\sandambara\object-tracking-line-crossing-area-intrusion-master\object-detection-and-line-cross.py</code></pre>



<p>祈りながらEnterキーを押下し、ドキドキしながら少し待つと・・・</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="845" height="502" src="https://sandambara.com/wp-content/uploads/2022/10/image-33.png" alt="" class="wp-image-2093" srcset="https://sandambara.com/wp-content/uploads/2022/10/image-33.png 845w, https://sandambara.com/wp-content/uploads/2022/10/image-33-300x178.png 300w, https://sandambara.com/wp-content/uploads/2022/10/image-33-768x456.png 768w" sizes="(max-width: 845px) 100vw, 845px" /><figcaption>じゃーん</figcaption></figure>



<p>今回のソースコードでは映像は左右テレコになるのですが、カメラの前を右に左に動いてみると4隅の数値が変わっていきます。こんなことを門外漢の私のような者が試せるなんて凄すぎます！</p>



<p>アイディア次第で色々使い道がありそうですね。皆さんも是非挑戦してみてください。</p>The post <a href="https://sandambara.com/object-intrusion-detection-with-python-and-openvino-part2">Python+OpenVINOで動体検知に挑戦（人数カウント）　Part2</a> first appeared on <a href="https://sandambara.com">ITとガジェットあれこれ</a>.]]></content:encoded>
					
					<wfw:commentRss>https://sandambara.com/object-intrusion-detection-with-python-and-openvino-part2/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>nslookupでspfレコードの値を調べる（小ネタ）</title>
		<link>https://sandambara.com/nameresolution-check-spf?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=nameresolution-check-spf</link>
					<comments>https://sandambara.com/nameresolution-check-spf#respond</comments>
		
		<dc:creator><![CDATA[sandambara]]></dc:creator>
		<pubDate>Sun, 10 Apr 2022 01:00:00 +0000</pubDate>
				<category><![CDATA[Windows]]></category>
		<category><![CDATA[開発]]></category>
		<guid isPermaLink="false">https://sandambara.com/?p=1993</guid>

					<description><![CDATA[<p>迷惑メール対策で送信ドメイン認証として設定するspfレコードですが、「設定したのに迷惑メール判定される」といった場合に設定値が正しいか調べたいときがあります。こんなとき、DNSサーバの管理画面を見なくてもnslookup [&#8230;]</p>
The post <a href="https://sandambara.com/nameresolution-check-spf">nslookupでspfレコードの値を調べる（小ネタ）</a> first appeared on <a href="https://sandambara.com">ITとガジェットあれこれ</a>.]]></description>
										<content:encoded><![CDATA[<p>迷惑メール対策で送信ドメイン認証として設定するspfレコードですが、「設定したのに迷惑メール判定される」といった場合に設定値が正しいか調べたいときがあります。こんなとき、DNSサーバの管理画面を見なくてもnslookupで調べることができます。</p>



<pre class="wp-block-code"><code>nslookup -type=txt ドメイン</code></pre>



<p>下記例は前回記事「nslookupでDNSサーバを指定する」の内容を組み合わせ、GoogleのパブリックDNSを用いてGmailのspfレコードを調べたい場合の実行例です。</p>



<pre class="wp-block-code"><code>nslookup -type=txt gmail.com 8.8.8.8</code></pre>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="329" src="https://sandambara.com/wp-content/uploads/2022/04/image-1024x329.png" alt="" class="wp-image-1999" srcset="https://sandambara.com/wp-content/uploads/2022/04/image-1024x329.png 1024w, https://sandambara.com/wp-content/uploads/2022/04/image-300x97.png 300w, https://sandambara.com/wp-content/uploads/2022/04/image-768x247.png 768w, https://sandambara.com/wp-content/uploads/2022/04/image.png 1203w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p>「迷惑メール判定されちゃうんだけど調べてくれる？」といったときにパッとレコード値を確認できるので便利ですね。</p>The post <a href="https://sandambara.com/nameresolution-check-spf">nslookupでspfレコードの値を調べる（小ネタ）</a> first appeared on <a href="https://sandambara.com">ITとガジェットあれこれ</a>.]]></content:encoded>
					
					<wfw:commentRss>https://sandambara.com/nameresolution-check-spf/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
