ちりつもったー

怪文書やら備忘録やらなにやら

aptコマンドが社内プロキシのユーザー認証に阻まれた時の対応方法

社内プロキシ環境下でのLinux開発環境について

社内プロキシ、めんどくさいですよね。 とはいえ、情報セキュリティの観点から社内プロキシは必要不可欠なのでうまく付き合うしかありません。 Windows中心の業務環境ならpacファイル読ませて、ブラウザでユーザー認証を求められたら設定されているユーザー名とパスワードを入力すれば特に運用には困りません。 ですが、これが開発用のLinux端末となると話は別です。aptコマンドがリポジトリに届かない! これではupdateどころかvimのインストールもままならないので、どうにかプロキシ認証を通します。

ちなみに、windowsPCでのプロキシに関する設定はpacファイルを用いるパターンが多いと思いますが、あくまでpacファイルはブラウザがWebサーバへアクセスする際にHTTP,HTTTPSプロトコルの伝送を中継してくれるプロキシサーバを指定するものです。 このあたり、WindowsPCでブラウザからインターネットに接続する時だけにプロキシのユーザー認証をしていると忘れがちになってしまいますね。

環境

Ubuntu 20.04 LTS 社内プロキシサーバーを経由する際はパスワードによるユーザー認証を要求する

手順

  • aptコマンドに紐付けられているconfディレクトリ内を編集
$ sudo vi /etc/apt/apt.conf.d/proxy.conf
  • 開いたconfファイル内に下記の内容を記述
Acquire::http::Proxy "http://{ユーザー名}:{パスワード}@{プロキシのIPアドレス}:8080";
Acquire::https::Proxy "http://{ユーザー名}:{パスワード}@{プロキシのIPアドレス}:8080";
Acquire::ftp::Proxy "http://{ユーザー名}:{パスワード}@{プロキシのIPアドレス}:8080";
  • apt updateするなりして、aptコマンドがリポジトリに届いていれば成功。

環境変数でのプロキシユーザー認証との違い

Linuxでのプロキシユーザー認証には他にもexportコマンドでの環境変数の設定方法がありますが、こちらはあくまでユーザー単位での認証となります。 aptコマンドはroot権限を必要としますので、環境変数によるプロキシのユーザー認証の範囲外になります。 ですので、コマンドのconfファイルにプロキシに関する情報を記載する必要があります。

NEC VersaProにUbuntuをインストールしようとしたら、Secure Bootって知らん人に怒られました

Ubuntuのインストールが開始されないんだが

職場でWindowsPCとして利用していた端末にUbntuを入れることになりました。 が、「OSインストールなんてオンプレでも、自宅でも何度もやったことあるぜ!」とたかを括っていたら、想定外なところでハマりました。

状況としては、Ubuntuのインストールメディア化させたUSBメモリを接続して、BIOSから起動優先順位を1位にした後に起動しようとしても、BIOSの画面から抜けることができませんでした。なんてこったい。

環境

NEC VersaPRo UEFI BIOS version:N1YET57(1.35) Ubuntu20.04 LTS

Ubuntuインストールメディアは既に作成済みとします。 今回はダウンロードしたUbuntuのISOファイルをRufusでUSBメモリに焼きました。

原因

BIOSのSecure BootがEnabledになってました。 浅学なもので、この項目を見るのは初めてです。 知らない人に怒られるのって結構メンタルにダメージきますよね。

対処法

Secure BootをDisabledにします。 手順は以下のような具合です。

  1. PC起動後、NECのロゴが表示されたらF2を連打してBIOSに入る
  2. 「Security」タブから「Secure Boot」を選択し「Disabled」にする
  3. 「Startup」タブから「UEFI/Legacy Boot」を選択、「UEFI only」を「Legacy only」へ変更
  4. 「Boot」タブからubuntuを入れたUSBメモリを「Boot Priority」の1位にする
  5. 設定を保存して、再起動

再起動後、Ubuntuインストールの開始画面が表示されれば解決です。

ところでSecure Bootって何?

https://learn.microsoft.com/ja-jp/mem/intune/user-help/you-need-to-enable-secure-boot-windows

要はUEFI(BIOSの後継システム)といったハードのファームウェア側が署名を所持し、その署名とWindowsOSをはじめとしたブート用ソフトウェアと適合するかを確認するという仕組みです。 署名が適合してはじめてWindowsOSが起動するので、もちろんUbuntuの起動は禁止されますよね。

ちなみにUbuntuのインストール作業を終えた後、BIOSの設定をデフォルトに戻したら、やっぱりUbuntuは起動しませんでした。

おわりに

所属部署でLinuxを運用できるのが自分しかおらず、また自分もLinux運用経験をウリに今の職場にやってきましたので、周りの人がもの珍しそうにちらちら覗いてくる中でハマってちょっと冷や汗をかきました。

ターミナルからPowerShell7をインストールする。

サマリ

WindowsにデフォルトでインストールされているPowerShellはバージョン5で起動する度に最新の PowerShell をインストールして新機能と改善点を入手してください。https://aka.ms/PSWindowsと表示される。
というわけで、アップグレードしておこう。
なお、PowerShell5と7は並列して存在させることができる。

環境

Windows 11 25H2 PowerShell 5.1

手順

PowerShell 5 を起動し、下記コマンドを入力。
下記コマンドは、GitHubのPowerShell ページからインストーラをダウンロードする意味となっている。

Invoke-Expression "& { $(Invoke-RestMethod https://aka.ms/install-powershell.ps1) } -UseMSI"

コマンド実行後、下記インストーラーが起動する。

セットアップ

  • Add PowerShell to Path Environment Variable:環境変数に PowerShell のパスを追加する
  • Register Windows Event Logging Manifest:Windows のイベントビューアに PowerShell を登録する(問題があった時にイベントビューアでログを確認できる)
  • Enable PowerShell remoting:リモート処理を有効化する(sshなどのリモート処理を使う場合は有効化)
  • Add ‘Open here’ context menus to Explorer:エクスプローラの右クリックメニューに PowerShell を追加する
  • Add 'Run with PowerShell 7' context menu for PowerShell files:PowerShell ファイルの右クリックメニューに「Run with PowerShell 7(PowerShell 7 で実行)」を追加する 必要に応じて、設定すること。

その後、スタートメニューからPowerShell7がインストールされていることを確認する。
WindowsTerminalを使用しているなら、プロファイルに追加されていることを確認する。
以上。

WSL2を有効化して、Windows11内でUbuntuを導入する。

サマリ

WindowsマシンでLinuxを動かせるというスグレモノのWSL2。
その設定をする際に毎度毎度ググっていたのが面倒なので、自分でメモすることにした。

環境

Windows 11 25H2
今回インストールするのはUbuntu 26にする。

手順

  1. 「コントロールパネル」→「プログラム」→「プログラムと機能」→「Windows の機能の有効化または無効化」
  2. 「Linux 用 Windows サブシステム」と「仮想マシン プラットフォーム」にチェックを入れて「OK」
  3. 再起動

4.コマンドプロンプトを管理者権限で起動する。
5. wsl -l -oを入力。すると、書きのようにインストールできるディストリビューションが表示される。

C:\Windows\System32>wsl -l -o
インストールできる有効なディストリビューションの一覧を次に示します。
'wsl.exe --install <Distro>' を使用してインストールします。

NAME                            FRIENDLY NAME
Ubuntu                          Ubuntu
Ubuntu-26.04                    Ubuntu 26.04 LTS
Ubuntu-24.04                    Ubuntu 24.04 LTS
Ubuntu-22.04                    Ubuntu 22.04 LTS
openSUSE-Tumbleweed             openSUSE Tumbleweed
openSUSE-Leap-16.0              openSUSE Leap 16.0
SUSE-Linux-Enterprise-15-SP7    SUSE Linux Enterprise 15 SP7
SUSE-Linux-Enterprise-16.0      SUSE Linux Enterprise 16.0
kali-linux                      Kali Linux Rolling
Debian                          Debian GNU/Linux
AlmaLinux-8                     AlmaLinux OS 8
AlmaLinux-9                     AlmaLinux OS 9
AlmaLinux-Kitten-10             AlmaLinux OS Kitten 10
AlmaLinux-10                    AlmaLinux OS 10
archlinux                       Arch Linux
FedoraLinux-44                  Fedora Linux 44
FedoraLinux-43                  Fedora Linux 43
eLxr                            eLxr 12.12.0.0 GNU/Linux
OracleLinux_7_9                 Oracle Linux 7.9
OracleLinux_8_10                Oracle Linux 8.10
OracleLinux_9_5                 Oracle Linux 9.5
SUSE-Linux-Enterprise-15-SP6    SUSE Linux Enterprise 15 SP6
  1. wsl --install -d Ubuntu-26.04を打って、Ubuntu26をインストールする。
C:\Windows\System32>wsl --install -d Ubuntu-26.04
ダウンロードしています: Ubuntu 26.04 LTS
インストールしています: Ubuntu 26.04 LTS
ディストリビューションが正常にインストールされました。'wsl.exe -d Ubuntu-26.04' を使用して起動できます
Ubuntu-26.04 を起動しています...
Provisioning the new WSL instance Ubuntu-26.04
This might take a while...

この後、初期アカウント名とログインパスワードを要求されるので、入力していく。

Create a default Unix user account: hogehoge
New password:
Retype new password:
passwd: password updated successfully
usermod: no changes
Help improve Ubuntu!

Help us improve Ubuntu features and compatibility by sharing system reports with Canonical.
Reports are sent anonymously and do not contain any personal data.
For legal details, please visit: https://ubuntu.com/legal/systems-information-notice

We will save your answer to Windows and will only ask you once.

Would you like to opt-in to platform metrics collection (Y/n)? To see an example of the data collected, enter 'e'.
[Y/n/e]: y

すると、下記のようなアプリが追加される。色々できそうなので、これについては後々試していってみたい。

Ubuntuを起動

コマンドプロンプトからwslコマンドを打つと、Ubuntuを起動できる。

C:\Windows\System32>wsl
hogehoge@DESKTOP-816JEJQ:/mnt/c/Windows/System32$

実際に起動できているかlsb_release -aでディストリビューションを確認する。

hogehoge@DESKTOP-816JEJQ:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 26.04 LTS
Release:        26.04
Codename:       resolute

できてますね。
なお、UbuntuからWindowsに戻りたい場合はexitと打てばよい。

それにしてもコマンドプロンプト上だと使いにくいにもほどがある。
というわけで、近いうちにWindows Terminalを導入して、PowerShellもUbuntuもまとめていい感じなTerminalで使えるようにしたいと思う。

homebrew の update と upgaredeの違い。それと特定のパッケージのみをupgradeしたい。

サマリ

Macでの開発に必要不可欠なhomebrewことbrewコマンド。
updateupgaredeの2つのコマンドが存在するが、この違いをメモしていく。

めっちゃざっくり言うと

brew update:アップデートが可能なパッケージのリストを更新する。あくまでリストを更新するだけで、リストが表示されるわけでもなければ、実際にインストール済みのパッケージになにか更新が加えられることはない。
brew upgrade:実際にインストールされているパッケージのバージョンアップを行う。

といった具合になる。upgradeを行うまで、特に環境に影響を及ぶわけではない。
基本的にはUbuntuのaptと同じような考えで良い。

実際にコマンドを打ってみた。

brew updateを行うと以下のような感じ。

 % brew update 
==> Updating Homebrew...
==> Downloading https://ghcr.io/v2/homebrew/core/portable-ruby/blobs/sha256:4ba8d535df01e4bf97e6661c3815796fd77364ea2552606e891659133a76f0e1
######################################################################### 100.0%
==> Pouring portable-ruby-4.0.5_1.arm64_big_sur.bottle.tar.gz
✔︎ JSON API packages.arm64_tahoe.jws.json             Downloaded   15.2MB/ 15.2MB
Updated 2 taps (homebrew/core and homebrew/cask).
==> New Formulae
actions-languageserver: Language server for GitHub Actions YAML files
ansible@13: Automate deployment, configuration, and upgrading
arf: Modern R console with syntax highlighting and fuzzy search
asccli: App Store Connect CLI to manage apps, versions, and screenshots
aube: Fast Node.js package manager
avisynthplus: Improved version of the AviSynth frameserver
backplane-cli: CLI for interacting with the OpenShift Backplane API
baguette: Headless iOS Simulator manager and host-side input injection for iOS 26
beets: Music library manager and tagger
btdu: Sampling disk usage profiler for btrfs
bttf: CLI tool for datetime arithmetic, parsing, formatting and more
buffa: Pure-Rust Protocol Buffers implementation with editions support
bumblebee: Read-only developer endpoint scanner for supply-chain exposure
bun: Incredibly fast JavaScript runtime, bundler, test runner, and package manager
cargo-insta: Snapshot testing CLI for Rust
<以下略>

この後、brew upgradeを打てば、上記で表示されたパッケージに全てアップグレードがかかる。

特定のパッケージだけアップグレードしたい

とはいえ、いっぺんに全部アップグレードをかけると色々と不都合が起きるかもしれない。もしくは特定のパッケージだけアップグレードしたいという時もある。
そういう時は以下のような具合でコマンドを打てばよい。

% brew upgrade hogehoge

今回はVScodeをターミナルからアップグレードしてみたいと思う。
ちなみにターミナル上でのVScodeはcodeコマンドで操作できる。
まずはアップグレード前のバージョンを確認。

% code -v
1.123.0
6a44c352bd24569c417e530095901b649960f9f8
arm64

そして実際にアップグレードを打ってみる。

brew upgrade visual-studio-code
✔︎ JSON API packages.arm64_tahoe.jws.json             Downloaded   15.2MB/ 15.2MB
==> Would upgrade 1 outdated package
visual-studio-code 1.92.1 -> 1.125.1
==> Fetching downloads for: visual-studio-code
✔︎ Cask visual-studio-code (1.125.1)                  Verified    260.7MB/260.7MB
==> Upgrading visual-studio-code
  1.92.1 -> 1.125.1
==> Removing launchctl service com.microsoft.VSCode.ShipIt
Password:
==> Quitting application 'com.microsoft.VSCode'...
Application 'com.microsoft.VSCode' quit successfully.
==> Backing App 'Visual Studio Code.app' up to '/opt/homebrew/Caskroom/visual-st
==> Removing App '/Applications/Visual Studio Code.app'
==> Unlinking Binary '/opt/homebrew/bin/code'
==> Moving App 'Visual Studio Code.app' to '/Applications/Visual Studio Code.app
==> Linking Binary 'code' to '/opt/homebrew/bin/code'
==> Linking Binary 'code-tunnel' to '/opt/homebrew/bin/code-tunnel'
==> Purging files for version 1.92.1 of Cask visual-studio-code
🍺  visual-studio-code was successfully upgraded!
==> Reopening 1 application closed during upgrade:
com.microsoft.VSCode
==> Upgraded 1 outdated package
visual-studio-code 1.92.1 -> 1.125.1

これでOK。

Linux Mint22にVirtual Box をapt install する

サマリ

Linux Mintに端末からaptコマンドでインストールしたい。

www.oracle.com

公式サイトからdebファイルをインストールすればいいじゃん、という思いもあるが、リポジトリに登録してaptコマンドでインストールすれば、apt updateでバージョン管理が可能なので、こちらの方がスマートだ。
あとは端末からカチャカチャッターンッってやったほうがかっこいいじゃん。

手順

まずはいつものおまじないをかけていく。

$ sudo apt-get update
$ sudo apt-get upgrade

次に依存関係のあるツールをインストールする。

$ sudo apt install gnupg2

下記サイトからリポジトリキーを確認する。
www.virtualbox.org ちなみにLinux Mint 22はUbuntu 24に相当する。

リポジトリキーの入手

$ curl -sfSLhttps://www.virtualbox.org/download/oracle_vbox_2016.asc|sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/vbox.gpg
$ curl -fsSL https://www.virtualbox.org/download/oracle_vbox.asc|sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/oracle_vbox.gpg

上記のコマンドの意味は最初にcurlでASCII形式の鍵をダウンロードした後に、gpgaptが取り扱っているgpg形式で変換するという流れだ。
また、上記の2つコマンドでは古い署名と現在進行系の署名を入手している。めんどくせえことしてくれる。
というのも、Oracleは署名鍵を更新しているので、古いパッケージと新しいパッケージを検証する色々と捗るからだ。

oracle_vbox_2016.asc : 古い署名  
oracle_vbox.asc      : 現在の署名 

ソースリストへのリポジトリ追加

$ echo "deb [arch=amd64] http://download.virtualbox.org/virtualbox/debian $(lsb_release -sc) contrib" | sudo tee /etc/apt/sources.list.d/virtualbox.list

このコマンドの意味はechoで右文字列を出力した後、teeに渡して、ソースリストにvirtualboxのリストを追加するという流れとなっている。

インストール

いよいよインストールだ。

$ sudo apt install virtualbox

上記コマンドを実施後、スタートからのアプリケーションリストにVirtual Boxが存在、起動できればインストール成功となる。

以上。

Linux Mintがノーガードだったので、ClamAVをインストール。

Linux用アンチウイルスソフトは多くない。

Linux用ウイルスソフトは多くはない。
というのもベンダーから聞いた話だと、やはり数多いディストリビューションによって仕様が微妙に異なってくるため、商用としてリリースは難しいのだという。
そもそもLinux、それも個人用デスクトップを狙ったマルウェアは少ないと言われているが、ノーガードも怖いのでそんなLinux用アンチウイルスソフトにClamAVをインストールしてみることにした。

インストール手順

最初からリポジトリに登録されているので、インストールコマンドを打つだけ。

$ sudo apt install -y clamav clamav-daemon

早速、コマンドを実行してみるとこんな感じで出る。

$ clamscan
/home/hogehoge/test.txt: OK

----------- SCAN SUMMARY -----------
Known viruses: 8697172
Engine version: 1.4.3
Scanned directories: 1
Scanned files: 15
Infected files: 0
Data scanned: 0.00 MB
Data read: 0.00 MB (ratio 0.00:1)
Time: 14.108 sec (0 m 14 s)
Start Date: 2026:03:25 15:59:49
End Date:   2026:03:25 16:00:05

サービス設定

起動時に自動的にClamAVを走らせたい場合はサービスに登録する。

$ sudo systemctl enable --now clamav-daemon.service 

EICARファイルでテストをする。

実際にウイルスを検知すると、どういう表示になるのか確認したい。
EICARファイルを作って、再度スキャンしてみる。

$ echo 'X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*' > clamav-testfile 
$ clamscan

----------- SCAN SUMMARY -----------
Known viruses: 3627733
Engine version: 1.4.3
Scanned directories: 1
Scanned files: 15
Infected files: 1
Data scanned: 0.03 MB
Data read: 0.02 MB (ratio 2.00:1)
Time: 16.447 sec (0 m 16 s)
Start Date: 2026:03:25 16:10:28
End Date:   2026:03:25 16:10:45

ウイルスを検知すると、Infected files: 1と表示された。ウイルス検知の際はこの項目に注目したい。