やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

Statiqをインストールできなかった(静的サイトジェネレータ)

 dotnetのせい? 署名エラー。

情報源

前提

手順

SITE_NAME="MySite"
time dotnet new console --name "$SITE_NAME"
cd "$SITE_NAME"
real   0m23.335s
user    0m24.171s
sys 0m2.990s

Statiqをインストールする

 インストールできなかった。

time dotnet add package Statiq.Web

 まずバージョンがらみで文句いわれた。

$ time dotnet add package Statiq.Web --version x.y.z
error: 'x.y.z'は有効なバージョン文字列ではありません。
$ time dotnet add package Statiq.Web
error: 利用可能な安定バージョンがありません。利用可能な中では 1.0.0-beta.19 が最善です。--prerelease オプションを追加することをご検討ください
$ time dotnet add package Statiq.Web
error: 利用可能な安定バージョンがありません。利用可能な中では 1.0.0-beta.19 が最善です。--prerelease オプションを追加することをご検討ください

 以下で成功。だったら最初からそのバージョンをフラグなしでインストールしろよ。

time dotnet add package Statiq.Web --version 1.0.0-beta.19

 署名とやらに関するエラーがズラリ。

...
error: NU3028: ソース 'https://api.nuget.org/v3/index.json' からのパッケージ 'Microsoft.Spatial 7.5.3': リポジトリ副署名 のタイムスタンプによってチェーン構築の問題が見つかりました: UntrustedRoot: self signed certificate in certificate chain
...
error: NU3028: ソース 'https://api.nuget.org/v3/index.json' からのパッケージ 'System.Text.Json 4.7.2': 作成者のプライマリ署名 のタイムスタンプによってチェーン構築の問題が見つかりました: UntrustedRoot: self signed certificate in certificate chain
...
error: NU3037: ソース 'https://api.nuget.org/v3/index.json' からのパッケージ 'System.Text.Json 4.7.2': 作成者のプライマリ署名 の有効期限が切れています。
...
error: NU3028: ソース 'https://api.nuget.org/v3/index.json' からのパッケージ 'System.Text.Json 4.7.2': リポジトリ副署名 のタイムスタンプによってチェーン構築の問題が見つかりました: UntrustedRoot: self signed certificate in certificate chain
...
error: NU3028: ソース 'https://api.nuget.org/v3/index.json' からのパッケージ 'Microsoft.CodeAnalysis.Common 3.3.0': 作成者のプライマリ署名 のタイムスタンプによってチェーン構築の問題が見つかりました: UntrustedRoot: self signed certificate in certificate chain
...
error: NU3037: ソース 'https://api.nuget.org/v3/index.json' からのパッケージ 'Microsoft.CodeAnalysis.Common 3.3.0': 作成者のプライマリ署名 の有効期限が切れています。
...
error: NU3028: ソース 'https://api.nuget.org/v3/index.json' からのパッケージ 'Microsoft.CodeAnalysis.Common 3.3.0': リポジトリ副署名 のタイムスタンプによってチェーン構築の問題が見つかりました: UntrustedRoot: self signed certificate in certificate chain
...

 なんのこっちゃ。ググっても何もでてこなかった。解決できず。

real   3m4.898s
user    2m32.640s
sys 0m49.907s

Program.cs

 以下でProgram.csを書き換える。

echo -e "using System.Threading.Tasks;\nusing Statiq.App;\nusing Statiq.Web;\n\nnamespace MySite\n{\n  public class Program\n  {\n    public static async Task<int> Main(string[] args) =>\n      await Bootstrapper\n        .Factory\n        .CreateWeb(args)\n        .RunAsync();\n  }\n}" > Program.cs

 内容は以下。

using System.Threading.Tasks;
using Statiq.App;
using Statiq.Web;

namespace MySite
{
  public class Program
  {
    public static async Task<int> Main(string[] args) =>
      await Bootstrapper
        .Factory
        .CreateWeb(args)
        .RunAsync();
  }
}

ページを書く

 以下で最初のページをつくる。

mkdir input
echo -e 'Title: My First Statiq page\n---\n# Hello World!\n\nHello from my first Statiq page.' > ./input/index.md

 内容は以下。

Title: My First Statiq page
---
# Hello World!

Hello from my first Statiq page.

実行する

time dotnet run
/tmp/work/MySite/Program.cs(2,7): error CS0246: 型または名前空間の名前 'Statiq' が見つかりませんでした (using ディレクティブまたはアセンブリ参照が指定されていることを確認してください) [/tmp/work/MySite/MySite.csproj]
/tmp/work/MySite/Program.cs(3,7): error CS0246: 型または名前空間の名前 'Statiq' が見つかりませんでした (using ディレクティブまたはアセンブリ参照が指定されていることを確認してください) [/tmp/work/MySite/MySite.csproj]

ビルドに失敗しました。ビルド エラーを修正して、もう一度実行してください。

 ですよねー。だってStatiqインストールできなかったもん。

所感

 はいクソ。原因不明。C#のせいか?

 なんか簡単につかえるプログラミング言語が少なくなってない?

対象環境

$ uname -a
Linux raspberrypi 5.4.83-v7l+ #1379 SMP Mon Dec 14 13:11:54 GMT 2020 armv7l GNU/Linux