Not only is the Internet dead, it's starting to smell really bad.:2020年01月中旬

2020/01/12(Sun)

[NなんとかBSD] libstdc++ + ctype.h problem

ワイはN**BSDの開発から堂々と退場して8年以上経つし今更プライベートな質問メール投げられても困るゾ、しかも該当箇所はjの字のやらかした仕事でワイ一切関係ないどころか呆れ果てて辞めた原因のひとつやでこれ。

これは10年も前にjの字が勝手にsys/ctype_bits.hにブチ込んだ変更 *1が後方互換をまるで無視してマクロ名を変えてしまった事により、vanillaなgccがlibstdc++のビルド中にコケるとゆー問題 *2があった件、なのでpkg**cに入ってる対策パッチを適用しないとならんのだ。

このパッチが最近ようやっとgcc上流にマージされたようなんだが、なぜそのパッチがいいか悪いかをワイに聞く必要があるねんな…

*1:isblankのためのbitを追加自体は問題ないというかワイも作業してたのだけど
*2:まぁlibstdc++の実装そのものがうーんという部分もある

2020/01/18(Sat)

[Windows] Office 2013以降をサイレントインストールする

家族マシンのOffice2010 Home and Businessが今年EOLを迎える予定なもんで、自分マシン用に買ってあったOffice 2013 Professionalのライセンスを譲り渡す予定 *1なのだけど、ちょっと管理の面で困ったことになるのだよな。

というのもOffice 2013以降はインストーラーと差分パッチが旧来の.msiと.msuではなく、C2R(Click-to-Run)インストーラーによってAPP-Vベースのアプリケーション仮想化されたOfficeがインスコされるのよね。 なのでアプリ起動すれば常にインターネットから最新版をダウンロードし実行することになるわけで、互換性の問題が発生するような特定のパッチだけ回避するみたいな運用が難しくなるのだ。

エンプラのシスアド様ならボリュームライセンスユーザーやろうしその場合は旧来のインストーラーも提供されとるので、これまでどおりWSUSによる管理も可能、あるいはローカルにAPP-Vサーバ建てて管理もできるのだろうけど自宅シスアドにはさすがに厳しいのだ *2

そのうち全てがOffice365みたいな月額サービスになっていくのだろうけど、あれは金持ちに優しく貧乏人にエグイ逆進性最たるもので、金のないヤツはパソコンを使うなと同義のデジタルデバイドそのものだからあんまり気分のいいもんじゃねえな。

まあ話が脱線したのでとりあえず表題の件、 Office Deployment Tool(Office 展開ツール)ちゅーものを使うとC2R形式でもサイレントインストールの実行は可能ではある。

まず ここから2013用のODTを入手して実行しEULAを承諾するとsetup.exeとconfigure.xmlの2ファイルが展開される(とりあえず展開先はとりあえずC:\office2013\とする)、このうちconfigure.xmlを

<Configuration>
  <Add SourcePath="C:\office2013\" OfficeClientEdition="32" >
    <Product ID="ProfessionalRetail">
      <Language ID="ja-jp" />
    </Product>
  </Add>
</Configuration>

ってな感じで編集し

C:\office2013\>setup /download configure.xml

を実行し、Office 2013 Professionalの32bit版のC2Rインストールイメージを取得しとく。

ダウンロードが完了したらWindows 8.1のインストーラーに統合する、C:\office2013\をまるっとUSBなどに展開したインストールメディアの\sources\$OEM$\$$\Setup\Files\office2013\としてコピー。 んでSourcePathを以下のように書換えておく。

  <Add SourcePath="%WINDIR\Setup\Files\office2013\" OfficeClientEdition="32" >

後は\sources\$OEM$\$$\Setup\Scripts\SetupComplete.cmdを作成し

@echo off
"%WINDIR%\Setup\Files\office2013\setup.exe" /configure "%WINDIR%\Setup\Files\office2013\configuration.xml"
rd /q /s "%WINDIR%\Setup\Files"
del /q /f "%0"

と記述しておけば、インストール時のセットアップウィザード終了後にOffice2013がインストールされるという次第 *3

後は初回のOffice2013起動時にEULAを承諾してシリアル叩き込んでインターネット認証をすればいい *4

それにしても家族マシンはサイレントインストールできねえプリンタやカメラ等の付属アプリなんかが大量にあるので、結局自動化は中途半端でそいつら手作業でインストールしなけりゃならんのでクソめんどくさい。 まぁ2023年にWindows 8.1がEOLになる頃にはこいつらもバージョンアップ重ねてWindows 10対応が進み、UWPアプリとしてdism /Add-ProvisionedAppxPackage使って楽々インストーラーに統合できるようになってる事を祈ろう… ゆーてその頃にワイ生きとる気はせんのやけど。

*1:つーか2019に更新したいのだけどもアップグレード版自体が無くなってしまったのでお金ないですね
*2:こちらもHP Microserverのバンドルで買ったWindows Server 2008 R2もEOLを迎えてしまい、かといって2012以降へ更新するお金ないのでなぁ…
*3:将来的にSetupComplete.cmdは廃止になる予定らしいので、本当はsysprepをauditモードで起動しunattend.xmlのRunSynchronousCommandで実行する方がええんやろうけど、めんどくさいのでパス。
*4:configure.xmlに記述を追加するとこれらも自動で済ませることも可能だけど、ワイ的に不要だし説明めんどくさいのでパス。