2000年代一桁のころと比べ、 Windows 以外の環境でクロス コンパイルを行うことが容易になりました。 Mingw-w64 の発展はつづき、64ビットのバイナリーを作成することも簡単です。 Linux ではさまざまなディストリが Mingw-w64 パッケージを用意しています。
しかしながらディストリの中には Mingw-w64 の更新が遅れ、 mingw-w64-gcc も更新されないものが多くあります。
Mingw-w64 は発展途上にあり、コンパイラ、ヘッダ、ランタイムに改善が加えられています。特にヘッダとランタイムは、最新のライブラリーのビルドに、最も新しいものを必要とすることがあります。
クロス コンパイラもバージョンアップが必要です。 GCC 5.3 は -O2 最適化オプションに実行できないバイナリーを生成する不具合がありました。
「GCC 5.4」リリース、約150件のバグを修正 | OSDN Magazine <https://osdn.jp/magazine/16/06/06/153000>
Mingw-w64 でクロス コンパイルを行えるよう、適切に更新が行われ活発に活動しているディストリを選び、環境を構築します。
Mingw-w64 の Downloads ページに、各ディストリの GCC と Mingw-w64 のバージョンが掲載されています。現時点(2017/4/13)で最も新しいバージョンを提供しているのは、 Msys2, Arch Linux, Debian 9 です。
Downloads [mingw-w64] <http://mingw-w64.org/doku.php/download>
このページには、各ディストリで提供されているパッケージの数も掲載されています。一覧の右端にある Additional Software in Package Manager を注意して読んでみてください。
Mingw-w64 でクロス コンパイルを行うために、発展途上にあるヘッダ、ランタイムに追随し、コンパイラのアップデートも積極的に行っているディストリを選択します。現在は Arch Linux がもっともよく当てはまります。
ここから説明する Manjaro Linux は Arch Linux を上流にもつ派生ディストリです。 Arch Linux はユーザーが細やかにカスタマイズできるよう構成されており、インストールもろもろ、少々手間がかかります。そのかわりドキュメントが充実しています。 Linux 関係で検索すると Arch Linux のドキュメントが上位に表示されることが多く、名前になじみのある人も多いでしょう。 Manjaro Linux はこのような不便をいくらか改善し、インストールやカスタマイズを行いやすいよう調整したディストリです。
Arch Linux はローリング リリースを採用しており、 Ubuntu のようなバージョンがありません。インストールし、アップデートを続けると、最新のバージョンになります。 iso はポイント リリースです。 Manjaro Linux も同様です。ただし iso は、インストーラーなどが改善されリリースされます。過去のバージョンは使用せず、最も新しいバージョンをインストールすることをお勧めします。
VMware Workstation Player 12.5.x
VMware Workstation Player - VMware Products <http://www.vmware.com/products/player/playerpro-ev...>
Manjaro Linux 17.0.1 KDE x86_64
Manjaro Linux - Browse Files at SourceForge.net <https://sourceforge.net/projects/manjarolinux/file...> 17.1.7 および以前
Manjaro Linux Project Top Page - OSDN <https://osdn.net/projects/manjaro/storage/> 17.1.8 および以降
Manjaro Linux <https://manjaro.org/>
公式版には KDE のほかに Xfce, Gnome 3 があります。
準公式のような扱いでコミュニティ エディションがあります。コミュニティ エディションは多様なデスクトップ環境をそろえています。
日本語版もあります。非公式です。
活発に更新されているのは Cinnamon, Mate, i3 です。 LXQT も更新されています。このところ(2017/4/26)コミュニティ版の更新が活発になり、 LXDE, Budgie, Deepin が更新されました。他のデスクトップ環境は現時点(2017/4/26)で更新が止まっています。
Manjaro Linux Community download | SourceForge.net <https://sourceforge.net/projects/manjarolinux-comm...> 17.1.7 および以前
Manjarolinux Community Project Top Page - OSDN <https://osdn.net/projects/manjaro-community/> 17.1.8 および以降
OSDN に日本語版があります。公式版ではないことに注意してください。 Xfce と LXQT を配布されています。
Manjaro JP Project Top Page - OSDN <https://osdn.net/projects/manjaro-japan/>
Manjaro Linux を VMware Player にインストールし、使用します。 Virtual Box でもよいのですが、ここでは VMware Player を使用し、説明します。
VMware Player を起動します。新規仮想マシンの作成を選び、ウィザードで設定し、作成した仮想マシンの「仮想マシン設定の編集」から詳細を設定します。
OS は Linux で Ubuntu 64 bit 、メモリーは 3-4GB 、 HDD 容量は 20GB の単一ファイル。 iso ファイルを指定し、起動時に接続するにチェックを入れます。モニターの解像度も設定しておくとよいでしょう。お好みで vmx ファイルに次の行を追加してください。 config.version の次行に追加します。 VMware Player のメニューでホームに移動してから書き換えます。 vmx ファイルは仮想マシンを保存したフォルダーに作成されます。
mainMem.useNamedFile= "FALSE"
MemTrimRate = "0"
なお、以下の説明はネットワークに接続せず実行しています。更新されたパッケージ、ファイルによる予期しないトラブルを避けるためです。これは説明のためにそうしています。
仮想マシンを起動します。起動画面で Language (F2) から日本語を選択します。 Start Manjaro Linux を選択し、 enter キーを押し、ライブを起動します。 Manjaro Linux の iso は Live Linux 仕様となっており、レスキュー ディスクとしても使用できます。
上の行は 17.0 で書いていたのですが、17.0.1 ではこの画面になり、様変わりしていました。言語を ja_JP に、キーボードを jp にし、From CD/DVD/ISO: Manjaro.x86_64 kde から起動してください。上下カーソルで移動し、 enter キーで変更します。
起動が完了するとデスクトップが表示されます。中央に Manjaro Hello ダイアログが開いています。 open-vm-tools がインストールされているため、VMware Tools が提供する機能が使えます。たとえばクリップボードの共有が有効になっています。
まず HDD のパーティション テーブルを作成します。 VMware Player で新しく HDD を作成すると、パーティション テーブルが作成されていない HDD が追加されます。パーティション テーブルの作成はインストーラーからも行えます。ここでは KDE パーティション マネージャーの存在を示し、簡単な使い方を述べます。使用感は GParted とほぼ同じです。
画面左下のアプリケーション ランチャーをクリックし、 partition と入力し、 KDE パーティション マネージャーを起動します。
VMware, VMware Virtual S (/dev/sda) がインストール対象のドライブです。まっさらの HDD で、まだパーティション テーブルが作成されていません。パーティション テーブルを作成します。
ツールバーの New Partition Table をクリックします。 GPT か MS-Dos (MBR) を選択します。今回は MS-Dos (MBR) にします。 Create New Partition Table ボタンを押します。
ツールバー上の適用をクリックし、処理を確定します。適用を行うまでパーティションの変更は確定されません。逆に言えば、確定前であれば元に戻したり、処理を取りやめることができます。
パーティションの作成はインストーラーから行います。
インストール作業を行います。 Manjaro Hello の最下段の Launch Installer をクリックする、もしくは画面左下のアプリケーション ランチャーをクリックし、install と入力し、 Install Manjaro Linux を実行します。
インストーラーの手順に従って、項目を埋め、インストールを行います。手順はダイアログ左に表示されています。
手順:ようこそ。インストーラーの言語は Japanese になっているはずです。これはそのままでかまいません。Japanese でない場合は、ここで言語を変更してください。右下の次へボタンを押します。
手順:ロケーション。地域は Asia、ゾーンは Tokyo を選択します。右下の次へボタンを押します。
手順:キーボード。キーボード モデルは Japanese : デフォルトになっているはずです。必要であれば変更します。右下の次へボタンを押します。
手順:パーティション。今回は手動パーティションを選択します。手動パーティションのラジオ ボタンをクリックします。右下の次へボタンを押します。
空き領域を選択し、作成ボタンを押します。ファイル システムは ext4、マウント ポイントがルート(/) になっているはずです。このままでかまいません。ファイル システムを btrfs にして遊ぶのもおもしろいと思います。トラブルに遭遇し、対応策を調べ、悩んだりあきらめたりするのも勉強です。 OK ボタンを押します。
下段のブートローダー インストール先が VMware, VMware Virtual S のマスターブートレコード (/dev/sda)になっていることを確認してください。 VM にインストールする際は MBR にインストールしなければ起動できません。実機で Windows と共存させる場合はシステムパーティション(/) にし、 Windows のブート ローダーから起動できるよう設定することをお勧めします。
今回はスワップを作成しません。スワップを作成したほうが良いのですが、同一ドライブに作成すると、パーティションが手狭になったときパーティションの拡張を行いづらくなります。スワップは仮想 HDD を追加し、追加した HDD に作成することをお勧めします。
右下の次へボタンを押します。
ユーザー情報を登録します。項目をすべて埋めてください。パスワードは、ひとつめのアカウントと管理者アカウントを、異なるパスワードに設定することも、同じにすることもできます。すべて入力したら、右下の次へボタンを押します。
要約が表示されます。よく確認してください。特に実機にインストールする際は、間違いが無いか注意深く確認してください。このあと実際のインストール作業が行われます。間違いがなければ、右下の次へボタンを押します。
インストールがはじまります。そこそこ時間がかかります。
正常にインストールが終了したことを確認し、再起動します。画面左下のアプリケーション ランチャーをクリックし、 Leave タブを選択、 Restart をクリックします。
無事に起動できたでしょうか。パスワードを入力し、ログインします。
VMware Player が作成する vmx ファイルに次の行を追加します。仮想マシンを起動している場合はシャットダウンし、書き換えてください。
firmware = "efi"
仮想マシンを起動します。
EFI 環境へのインストールは、パーティション テーブルが GPT で作成されていることを確認し、パーティションを /boot/efi とルート(/) の2つ作成してください。 /boot/efi は FAT32 でフォーマットし、 boot と esp フラグをチェックしてください。容量は 512MiB あれば充分です。実機へのインストールで /boot/efi をフォーマットしてはいけません。 Windows など他の OS が起動できなくなります。マウントポイントを設定し、フラグは触りません。
パーティションを作成したら通常のインストールを行います。ブートローダーのインストール先は設定しません。規定値ではなく、インストール先の設定が表示されません。
次のページを参考にしました。
EFI システムパーティション - ArchWiki <https://wiki.archlinuxjp.org/index.php/EFI_%E3%82%...>
/boot を Btrfs でフォーマットしていると Grub2 がエラーを表示することがあります。 /etc/default/grub ファイルの GRUB_SAVEDEFAULT=true をコメントアウトしてください。 Grub2 の不具合のようです。
画面左下のアプリケーション ランチャーをクリックし、システム設定(KDE システム設定)を起動します。
作業しやすいように画面解像度を設定します。最下段にあるハードウェア カテゴリのディスプレイとモニタをクリックし、画面解像度を設定します。右のスクロールバーをドラッグし、下にある解像度ボックスからお好みの解像度を選んでください。 1280x768 もあれば快適に使えます。適用をクリックします。
左上のインデックスから All Settings をクリックすると元の設定画面に戻ります。
ここからはターミナル上で作業を行います。ターミナルは Konsole です。
Grub の起動画面の解像度を設定しておくと、Manjaro の起動時にウィンドウの変更が少なくなり使い勝手がよくなります。 sudo nano /etc/default/grub で GRUB_GFXMODE を auto から 1280x768 などに変更します。 VM のモニターの設定と一致させる必要があるようです。 GRUB_GFXPAYLOAD_LINUX が keep になっていないもしくは当該行がない場合はこれも追加します。 ctrl+x で終了、 ctrl+w で検索、 shift+ctrl+v で貼り付けができます。変更後に ctrl+x すると保存するか問われます。 nano を使わず kate, kwrite などを使用してもかまいません。
# GRUB_GFXMODE を書き換える。 sudo nano /etc/default/grub #GRUB_GFXMODE=1280x768 #GRUB_GFXPAYLOAD_LINUX=keep # grub.cfg を更新する。 sudo grub-mkconfig -o /boot/grub/grub.cfg
Manjaro のパッケージ マネージャーは pacman です。まずパッケージのアップデートを行います。
sudo pacman -Syu # ロング オプションで書くとこうなります。 # sudo pacman --sync --refresh --sysupgrade # AUR のアップデートは yaourt で行います。 yaourt は sudo しません。 yaourt -Su --aur
pacman -Ss ( --sync --search ) でパッケージの検索、 pacman -S ( --sync )でインストールを行います。
作業しやすいようコマンド補完機能をインストールします。タブ キーで補完できるようになります。
sudo pacman -S bash-completion
IME をインストールします。 Fcitx を使います。辞書は Mozc です。
sudo pacman -S fcitx-mozc fcitx-gtk2 fcitx-gtk3 fcitx-qt5 kcm-fcitx
設定を編集し、 Fcitx を有効にします。 ~/.bashrc の最後に次の行を追加してください。
export GTK_IM_MODULE=fcitx export XMODIFIERS=@im=fcitx export QT_IM_MODULE=fcitx
~/.xprofile の最後に次の行を追加します。
export LANG="ja_JP.UTF-8" export XMODIFIERS="@im=fcitx" export XMODIFIER="@im=fcitx" export GTK_IM_MODULE=fcitx export QT_IM_MODULE=fcitx export DefaultIMModule=fcitx
ログオフもしくは再起動で設定が反映されます。
KDE のテキスト エディタ Kate は fcitx-qt5 に問題があるのか IME の再変換機能に差しさわりがあります。テキスト エディタは Mate の Pluma や Gnome の Gedit をお勧めします。
# Mate のファイル マネージャー、テキスト エディター、ターミナル。 sudo pacman -S caja pluma mate-terminal
Firefox は KDE 版がインストールされています。 Windows などの Firefox と同じものは Gtk 版です。 sudo pacman -S firefox firefox-i18n-ja で後者に置き換えられます。 Thunderbird も同様です。
Mingw-w64 の各種パッケージをインストールします。グループ名 mingw-w64 で必要なパッケージがすべて入ります。
sudo pacman -S mingw-w64 # mingw-w64-binutils mingw-w64-gcc mingw-w64-crt mingw-w64-headers mingw-w64-winpthreads がインストールされる。 # ヘッダとランタイムの git を使用する場合は yaourt で AUR を入れる。 #yaourt -S mingw-w64-headers-git mingw-w64-crt-git
ビルドに使用する各種パッケージをインストールします。 --needed はインストール済みのパッケージを再インストールしないようにします。
sudo pacman -S --needed git sudo pacman -S --needed automake autoconf libtool sudo pacman -S --needed cmake sudo pacman -S --needed docbook-xml docbook-xsl libxslt #sudo pacman -S --needed gtk-doc sudo pacman -S --needed intltool sudo pacman -S --needed gtk2 sudo pacman -S --needed gtk3 sudo pacman -S --needed libffi sudo pacman -S --needed xorg-util-macros sudo pacman -S --needed dos2unix # Gimp のビルドに GEGL コマンドが必要です。 sudo pacman -S --needed gegl # xmingw32 スクリプトは 7zip コマンドを使用します。 sudo pacman -S --needed p7zip # bsdtar
Mingw-w64 クロス コンパイルのためのスクリプト集 xmingw32 を /usr/xmingw/xmingw32 に git clone し、活用できます。使いやすいかどうかは別の話です。
GitHub - niloufar/xmingw32 <https://github.com/niloufar/xmingw32>
2018年1月の中ごろに、それまで配布されていた公式バイナリーが削除され、AURに移行されました。残念ながら手軽に利用できなくなりました。
Arch User Repository (AUR) はその名の通りユーザーが提供する非公式リポジトリです。いまのところ(2018/4/24tue) 2つのパッケージを利用できます。
- mingw-w64-gcc
- mingw-w64-gcc-bin
このほか筆者がビルドしたアーカイブを Google Drive に置いています。 Manjaro/Arch で配布していたパッケージもここに置いています。
https://drive.google.com/open?id=11iuMlupJiy7dPBs5...
AUR は yaourt コマンドにより PKGBUILD スクリプトとソース ファイルを取得し、ローカル環境でソースからビルドします。
yaourt は /tmp にファイルを保存しビルド作業を行います。 /tmp のファイル システムは tmpfs で、初期設定ではメイン メモリの半分の容量とスワップの容量の合計が確保されます。この設定は systemd で行われています。 yaourt --tmp で作業フォルダーを指定できます。
mingw-w64 関連パッケージがインストールされていない環境では、パッケージをインストールする順番があります。次のように作業します。
# AUR (en) - mingw-w64-gcc <https://aur.archlinux.org/packages/mingw-w64-gcc/> yaourt -S mingw-w64-binutils --noconfirm yaourt -S mingw-w64-headers --noconfirm yaourt -S mingw-w64-headers-bootstrap --noconfirm yaourt -S mingw-w64-gcc-base --noconfirm yaourt -S mingw-w64-crt --noconfirm sudo pacman -Rdd --noconfirm mingw-w64-headers-bootstrap yaourt -S mingw-w64-winpthreads --noconfirm sudo pacman -Rdd --noconfirm mingw-w64-gcc-base # 一時ファイルを保存するフォルダーをカレント フォルダー($PWD)にしている。 yaourt -S mingw-w64-gcc --noconfirm --tmp $PWD
mingw-w64-gcc のビルドには、ディスクの空き容量が 9GB 以上、メインメモリは 4GB ほど必要です。ビルド後のディスク使用量は 7GB 程度でしたが、仮インストールやアーカイブ作業のために余裕を見たほうがいいでしょう。メインメモリ 3GB かつスワップ無しの環境では原因不明のエラーでビルドが停止しました。エラー メッセージを出さず原因不明のエラーで終了する場合は、ディスクの空き容量とメイン メモリ、スワップの容量を確認し、新たに確保してください。それらは df -h や free -h で確認できます。
ローカルに保存した PKGBUILD を用いてビルドするには makepkg コマンドを使用します。 makepkg で Arch 関係のキーリングが存在せず PGP のチェックに失敗する場合は makepkg --skippgpcheck してください。
4shadoww 氏がビルドしたパッケージです。 Ubuntu の Personal Package Archives (PPA)と同じようなものです。バイナリーで提供されているためソースからビルドする必要がありません。
こちらも同様に、mingw-w64 関連パッケージがインストールされていない環境ではパッケージをインストールする順番があります。
# AUR (en) - mingw-w64-gcc-bin <https://aur.archlinux.org/packages/mingw-w64-gcc-bin/> yaourt -S mingw-w64-binutils-bin --noconfirm yaourt -S mingw-w64-headers-bin --noconfirm yaourt -S mingw-w64-crt-bin --noconfirm yaourt -S mingw-w64-winpthreads-bin --noconfirm yaourt -S mingw-w64-gcc-bin --noconfirm
簡単なプログラムを作成し、コンパイルしてみましょう。
echo 'void main(){printf("hello world!\n");}' > hello.c i686-w64-mingw32-gcc hello.c -o hello_win32.exe x86_64-w64-mingw32-gcc hello.c -o hello_win64.exe ls hello* -lh file hello_win32.exe # hello_win32.exe: PE32 executable (console) Intel 80386, for MS Windows file hello_win64.exe # hello_win64.exe: PE32+ executable (console) x86-64, for MS Windows # wine をインストールしているのであれば wine で実行できます。 wine hello_win32.exe wine hello_win64.exe
実行ファイルは mingw-w64-gcc のランタイムとリンクしていることがあります。 dll の場所はここです。 gcc -static-libgcc -static-libstdc++ で、おそらく static にリンクできます。
pacman -Ql mingw-w64-gcc | grep 'dll$' pacman -Ql mingw-w64-winpthreads | grep 'dll$' # win32: /usr/i686-w64-mingw32/bin/*.dll # win64: /usr/x86_64-w64-mingw32/bin/*.dll
configure はこのように実行します。 configure するまえに PKG_CONFIG_PATH を設定してください。またライブラリーの lib/pkgconfig/*.pc の prefix 行などが現在のパスになっているか確認し、必要であれば書き換えてください。
configure --prefix で必ずインストール先を指定してください。 make install prefix= でもよいですが、 configure で指定するほうが安心です。
TARGET=i686-w64-mingw32 # or x86_64-w64-mingw32 configure --cache-file="cross-config.cache" --target=${TARGET} --host=${TARGET} --build=${MACHTYPE} rm cross-config.cache
ビルドのログ ファイルはこのように作成します。
(configure && make) 2>&1 | tee build.log
ユーザー データをシステムとは異なるディスク ファイルに保存します。 VM の設定から新たにディスク ファイルを追加し、 Manjaro からパーティションを作成/初期化し、ラベルを設定し、 fstab に追加します。
VMware Player の仮想マシン設定の編集を開き、ハードウェア一覧の下部にある追加ボタンを押し、ウィザードに従ってディスク ファイルを追加します。初期容量は自分が使用すると想像される量を指定します。ディスク容量はあとで拡張することができます。縮小することは面倒な作業を伴います。初期は少なく設定してかまいません。
Manjaro Linux を起動し、 KDE パーティション マネージャーを使用し、追加したデバイス(/dev/sdb)にパーティション テーブルとパーティションを作成します。ファイル システムは ext4 や btrfs など好きなものを使用してください。ただし拡張できるものを選んでください。 zfs などは現在、パーティションの拡張に対応していません。
ここでラベルを設定します。 userdata などラベルを決め、メモを取っておきます。ラベルは fstab の設定で使用します。パーティションは UUID で管理されています。 fstab に設定を書く際も UUID が使用されます。しかし目視で確認するには不便です。 UUID ではそれがどのようなパーティションかわかりません。 fstab では UUID のかわりにラベルで指定できます。ラベルをわかりやすい名前に設定していれば、 fstab を読んで、そのパーティションに何が保存されているかわかりやすくなります。
ラベルはパーティションのプロパティから設定/変更できます。マウントしているパーティションのラベルは変更できません。
マウント ポイントを作成します。マウント ポイントは /media/userdata です。ここにユーザー データをマウントします。
sudo mkdir -p /media/userdata
nano または kwrite などで /etc/fstab を開き、ファイル末に次の行を追加します。
LABEL=userdata /media/userdata auto defaults 0 0
マウントしてみます。エラーなくマウントできたでしょうか。 /media/userdata に保存できるようになりました。 $HOME にシンボリックリンクを作成するなど、使いやすくなるよう設定してください。
sudo mount /media/userdata mount | grep /media # アンマウントは umount コマンドで行う。 sudo umount /media/userdata
ラベルや UUID は lsblk コマンドで確認できます。マウント ポイント、ファイル システムも表示されます。
lsblk -f
スワップを追加したいこともあるでしょう。ユーザー データの追加とほぼ同じ作業を行い、登録します。
パーティションは swap でフォーマットします。ラベルを swap にし、 fstab に次の行を追加します。
LABEL=swap none swap sw 0 0
スワップを有効にします。
sudo swapon -a # スワップが有効になったか確認する。 free -h # スワップを無効にするには swapoff する。 sudo swapoff -a
ユーザー データをシステムと異なるディスクに保存することで、他のシステムへの移行が容易になります。筆者は Linux で Windows 向けのクロス コンパイルを行っています。 Ubuntu 13.04 から始め、13.10, 14.04, 14.10, 15.04、そして Manjaro 16.03 とシステムを移行しました。 Manjaro は Rolling Release を採用しており、アップデートによって常に最新になります。現在(2017/4/13)は 17.0.1 になっています。これらの移行は、システムを新しい仮想マシンにインストールし、ユーザー データを保存したディスク ファイルを追加し、 fstab 等設定するだけです。
さらに昔にさかのぼれば、 coLinux で同じようにユーザー データ用のディスク ファイルを作成し、システムイメージの更新に合わせてつなぎ変えていました。当時は自分でビルドした GCC を使いまわしていました。
システム パーティションの容量をどの程度確保すべきか、というのは難しい問題です。同じシステムを使い続けるのであればよいのですが、ディストリを幾つか試し、常用するディストリを選択するとなると、ディスク容量を小さく抑えたくなります。
10GB からはじめ、状況に合わせて拡張するのが楽でしょう。インストールし、少し触る程度であれば 10GB で充分です。
ディスク ファイルの拡張は簡単に行えます。 VM の設定からディスク ファイルを拡張し、インストール ディスクの iso を VM で起動し、パーティション操作を行い拡張します。これで終わりです。
ユーザー データのディスク ファイルの拡張も同様に行えます。両者のディスク使用状況に応じ、それぞれ独立に拡張できます。パーティションの移動など、時間も手間もかかる作業はありません。
システムはアップデート等により不具合が持ち込まれ、起動できなくなることがあります。時には再インストールすることもあります。ユーザー データをシステム内に保存していると、ユーザー データもトラブルに巻き込まれます。
システムが、独立したディスク ファイルに保存されていれば、ディスク ファイルをそのままバックアップするか、 clonezilla などで他のディスク ファイルにバックアップをとり、トラブルから復帰することが容易になります。またバックアップ容量を抑えることができます。
ディスクの空き容量は df コマンドで、メモリーの空き容量は free コマンドで確認できます。
df -h free -h
ファイル/ディレクトリーの容量/占有率は du コマンドで確認できます。 GUI 版は filelight(KDE) や baobab(GTK+) があります。
ディスクの空き容量が不足しているときは、ディスク ファイルを拡張してください。
メモリーが不足しているときは、仮想マシン設定の編集からメモリー量を変更します。メモリーの拡大が難しいのであれば、スワップを追加することを考えてみてください。お勧めはスワップを追加するよりメモリーを増設することです。
マウント済みのパーティションはエラーの修復ができません。アンマウントするか、インストール ディスクからチェックを実行してください。パーティション番号やラベルは lsblk -f で確認してください。
# ext 4 など。 sudo fsck /dev/sda1 sudo fsck LABEL=userdata # btrfs sudo btrfs check /dev/sda1
bacman コマンドでインストール済みのパッケージを再度アーカイブすることができます。
たとえば htop を再アーカイブし、削除し、再インストールしてみます。 htop は Windows で言うタスク マネージャーです。 Manjaro のインストール ディスクを起動し、その環境で試すことをお勧めします。
sudo bacman htop sudo pacman -R htop htop sudo pacman -U htop-*.pkg.tar.xz # q で終了。 htop
Manjaro Linux はローリング リリースを採用しており、アップデートで最新版に更新されるのですが、カーネルは特別扱いで、メジャー/マイナー バージョンの更新は手動で行います。 teeny バージョンの更新は pacman -Su で自動で行われます。メジャー/マイナー バージョンの更新は Manjaro Settings Manager もしくは KDE システム設定を起動し、カーネルの項目から推奨カーネルをインストールしてください。
カーネルは generic のほかに realtime も用意されています。種類にかかわらず使用する場合は LTS が付いたものをおすすめします。
Manjaro Settings Manager などの GUI からカーネルの新しいメジャー/マイナー バージョンをインストールすると、 linux*-extramodules グループに含まれるモジュールは linux*-ndiswrapper を除いてインストールされません。必要なモジュールが欠けている場合は Manjaro の起動プロセスでモジュールが無いなどのエラーが表示されます。
linux*-extramodules グループには AMD Catalyst, nVidia のビデオ カード ドライバー、 Broadcom, Realtek のネットワーク カード ドライバー、 VirtualBox の Host, Guest モジュール、 Zfs ドライバーなどが含まれます。グループに含まれるパッケージは Pacman -Sg で一覧を表示できます。次のコマンドはカーネル 4.14 のモジュールを表示します。
pacman -Sg linux414-extramodules
VirtualBox の Host モジュールがインストールされていないと VirtualBox で仮想マシンを起動できなくなります。
linux*-extramodules グループもしくは個別のパッケージをインストールしてください。
パッケージの更新で、一部のファイルは更新されず pacnew ファイルが作成されます。たとえば pacman-mirrors パッケージの更新で /etc/pacman-mirrors.conf ファイルが更新されず、かわりに pacman-mirrors.conf.pacnew ファイルが作成されます。更新対象のファイルを変更していないのであれば、ファイルを置き換えます。
作成された pacnew ファイルは pacman のログ ファイルを grep し確認します。 pacman のログ ファイルは /var/log/pacman.log に保存されます。
grep /var/log/pacman.log -ne \.pacnew
pacman-mirrors.conf を例に手順を書きます。
更新対象のファイルと pacnew ファイルの内容の違いは diff コマンドで比較し確認します。
diff -u /etc/pacman-mirrors.conf /etc/pacman-mirrors.conf.pacnew
置き換えは mv コマンドでそのまま置き換えるか、トラブルに備えて既存のファイルのバックアップをとって行います。
# バックアップする。 sudo mv /etc/pacman-mirrors.conf /etc/pacman-mirrors.conf.bak # ファイルを置き換える。 sudo mv /etc/pacman-mirrors.conf.pacnew /etc/pacman-mirrors.conf
pacman-mirrors.conf を更新した後は pacman-mirrors -g を忘れずに。
systemd は journal と呼ばれるログをファイルに出力します。ログ ファイルはファイル システムのルートの容量の 10% もしくは 4GiB の小さいほうまで使用し、保存されます。ファイルは /var/log/journal に複数作成され保存されます。ログは journalctl コマンドで操作/閲覧します。
ログが占有するディスク容量は次のように確認します。現在使用している容量です。
journalctl --disk-usage
起動から現在までのエラー ログを表示するには次のようにコマンドを実行します。
journalctl -b -p err
古いログを削除し、ログ ファイルを切り詰めることができます。容量と時間の二通りの方法があります。
# 容量で切り詰める。 512MB で切り詰める。 journalctl --vacuum-size=512M # 時間で切り詰める。過去2か月のログを残し切り詰める。 journalctl --vacuum-time=2month
ログが使用する容量の上限は /etc/systemd/journald.conf で設定できます。設定ファイルの [Journal] 節の次の行をコメントアウトし、必要な容量に設定します。以下、設定例です。
[Journal] #Storage=persistent SystemMaxUse=512M SystemMaxFileSize=32M RuntimeMaxUse=256M RuntimeMaxFileSize=32M
次のページを参考にしました。
[solved] systemd's journal size / System Administration / Arch Linux Forums <https://bbs.archlinux.org/viewtopic.php?id=172399>
systemd - ArchWiki <https://wiki.archlinuxjp.org/index.php/Systemd>
アップデートや新しい iso のアナウンスはここで行われています。不具合などの情報はアナウンスの記事に記載されたフォーラムで情報提供されています。
News | Manjaro Linux <https://manjaro.org/news/>
多くのコマンドは --help オプションでコマンドのヘルプを表示します。表示が長く読みづらいときは less コマンドにリダイレクトします。
less や man のキーバインドは vi によく似た形式です。大文字小文字の区別があります。 :q で終了、 / で検索、 n で次を検索、 N で前を検索、 1G でファイル頭、 G でファイル末、カーソルと Page Up & Down それに Home & End キーで移動、を暗記しておけば使えるでしょう。
コマンドのマニュアルが用意されている場合があります。マニュアルは man か info コマンドで参照します。 man コマンド名、 info コマンド名で調べてみてください。 man と info 両方にマニュアルが用意されている bash は、 info に man より詳細に記述されています。
info コマンドは vi 系のキーバインドと少し異なります。 info info し説明を読んでください。 q キーで終了、下線が引かれたリンク上から Enter で下位に移動、 u で上位へ移動、他のキーは上述した vi 系と同じです。ただし 1G と G は使えません。
パッケージに html のマニュアルが含まれている場合があります。 pacman -Ql でパッケージに含まれるファイルを参照してみてください。コマンド名からパッケージ名を引くには pacman -Qo `which コマンド名` します。1行で書くと次のようになります。
pacman -Ql `LANG=c pacman -Qo \`which コマンド名\` | cut -d' ' -f5`
バッククオート(`)は括られた範囲をコマンドとして実行し、コマンドの標準出力を引数として返します。改行は半角空白に置き換えられ、各行は連結されます。バッククオートの中でバッククオートを使用しているため、バックスラッシュ(\)でエスケープし \` しています。 which コマンドは指定したコマンドの絶対パスを表示します。 LANG=C は pacman -Qo のメッセージをデフォルトのロケールに変更します。ロケールの変更は cut コマンドで扱いやすいようメッセージを標準化するものです。 cut コマンドは文字列を切り出します。
シェルが bash であればバッククオートのかわりに $() が使えます。
pacman -Ql $(LANG=c pacman -Qo $(which コマンド名) | cut -d' ' -f5)
bash は html のマニュアルも用意されています。出力を grep コマンドで抽出すると簡単に見つけられます。
pacman -Ql bash | grep -ie html\$
grep の i オプションは大文字小文字を無視するよう指定します。 e は次に続く引数が検索文字であることを指定します。 html\$ は行末が html である行を検索対象にします。文字 $ をバックスラッシュ(\)でエスケープしています。 bash ではドル($)は変数を参照する場合に使用します。この引数の $ はエスケープ不要ですが、念のため付けています。
正規表現(Regular Expressions)の詳細は man grep に記述があります。正規表現には方言があることに注意していください。 grep/sed/awk それぞれわずかに異なります。
Arch のドキュメントが役に立つでしょう。 google などでコマンド名を検索すると上位に現れると思います。
https://wiki.archlinuxjp.org/
https://wiki.archlinux.org
linuxjm の日本語訳もよく上位に表示されます。
https://linuxjm.osdn.jp/
KDE を使用していますが、追加で Mate, Xfce, LXDE, i3 などをインストールできます。それぞれのパッケージ グループ名で pacman -S しインストールします。グループにディスプレイ マネージャーが含まれる場合、それを避けたほうが無難です。
デスクトップ環境には GTK+2 と GTK+3 の二種類ある場合があります。 GTK+3 ポートが進められているものはパッケージ/グループ名の後ろに -gtk3 がつけられています。
Mate は GTK+3 ポートが終了し、 mate-gtk3 で提供されていたパッケージは mate に統合されました。
Xfce と LXDE は現在ポーティングが行われています。
追加したデスクトップ環境に切り替えるには、ログイン画面の左下にあるデスクトップ セッションをクリックし、切り替えます。
KDE のディスプレイ マネージャーは SDDM です。グループ名で他のデスクトップ環境をインストールするとディスプレイ マネージャーが変更されるかもしれません。記憶にある範囲で列挙すると、 SDDM, LXDM, GDM, SLiM がそれです。
デスクトップ環境の挙動がおかしくなったとき ctrl+alt+F2 を押し tty からログインし、sudo pkill sddm すると再びログイン画面に戻れます。ただしセッションを強制終了させており、最後の手段と考えてください。 sudo shutdown -r now するほうが(おそらく)安全です。
tty は F2-F6 の 5つ用意されています。 F1 が通常のデスクトップです。 Ubuntu とは順番が異なることに注意してください。
Windows Vista 以降の Windows ブートローダーを使用し、 Manjaro Linux を起動します。パーティションテーブルは MsDos(MBR) を想定しています。
実機へのインストールは危険が伴います。 MBR をうっかり書き換える、既存パーティションに誤って上書きする、パーティションのリサイズや移動の失敗のほかに、パーティションが論理的に破壊され、 Windows などが起動できなくなる場合があります。必ずバックアップをとり、トラブルに備えてください。できればバックアップを VM 上にリストアし、起動プロセスが正しく実行されることを確認してください。
論理的にパーティションが破壊された場合は、 Clonezilla でバックアップをとっているのであれば、 Clonezilla がパーティション情報を保存しており、それを参照することでパーティションを復活させることができます。また testdisk コマンドでパーティションを検索することもできます。
とにかくまず、ディスク全体をバックアップします。理解しているのであれば、 Boot と Windows それに Recovery のパーティションだけでもかまいません。
Manjaro Linux をインストールするためのパーティションを確保します。多くの場合、つぎのような構成になっていると思われます。
- System(Boot)
- Windows
- Recovery
その他のパーティションが Boot と Windows の間に作成されている場合があります。
MsDos(MBR) パーティション テーブルは GPT パーティション テーブルと違い、パーティションに種類があります。基本(Primary)パーティションと拡張(Extended)パーティション、論理(Logical)パーティションです。基本パーティションは4つまで作成できます。4つ以上パーティションを作成するには拡張パーティションを1つ作成し、拡張パーティションのなかに論理パーティションを作成します。拡張パーティションは、基本パーティションで作成できる4つのうち1つを使用します。
おそらく初期のパーティション構成は、3つパーティションが作成されているならすべて基本パーティションで、4つかそれ以上で作成されているなら拡張パーティションも作成されています。4つとも基本パーティションで作成されている状況では、実機へのインストールを諦め、VM にインストールすることをおすすめします。
初期状態ではハードディスクがすべて使用され未使用領域がないため、Windows のパーティション容量を縮小し、未使用領域をつくり、インストール先を確保します。パーティションの縮小には Manjaro Linux のインストール ディスクに収録された KDE パーティション マネージャーを使用します。
確保する未使用領域は、安易な方法では、 Manjaro Linux で使用する容量のみ確保することです。20-30GBあれば充分です。もっと未使用領域を確保するなら、 Windows の領域は、システムにあまりインストールしないのであれば 90GB で充分です。縮小後の Windows の容量は、使用環境を考慮し決めてください。空き容量を確認し、今後の消費容量を考慮しつつ、縮小します。
ntfs でフォーマットされたパーティションで、大きく容量を確保しているパーティションが Windows です。 KDE パーティション マネージャーで当該パーティションを選択し、ツールバーの「リサイズ/移動」をクリックします。 Manjaro Linux の容量ぶん 30GB を確保するのであれば、 Free Space After を 30,720MiB にします。 Windows を 90GB にするのであれば Size を 92,160MiB にします。変更したら、 OK ボタンを押し、ダイアログを閉じます。ツールバーの「適用」ボタンを押すと、処理が実行されます。成功したか確認してください。
Windows のパーティションのアドレスをメモしておきます。一覧の Partition の項目で、 /dev/sda2 のようになっているファイル パスです。
拡張パーティションが作成されているか確認します。 KDE パーティション マネージャーの一覧では、拡張パーティションは、Type に extended と表示されます。なければ、未割り当てと表示された項目を選択し、ツールバーの「新規」をクリックし、ダイアログから Extend を選択し、作成します。間違いがなければツールバーの「適用」ボタンを押し、処理を実行してください。
拡張パーティション内に「未割り当て」があることを確認し、インストールを行います。
Windows のパーティションは os-prober コマンドで確認できます。コマンドを実行すると次のように表示されます。内容は環境により異なります。
/dev/sda1:Windows 7:Windows:chain
/dev/sda2:Windows 7:Windows1:chain
/dev/sda4:Windows Recovery Environment:Windows2:chain
この環境では /dev/sda1 が Windows ブート、 /dev/sda2 が Windows 7 、 /dev/sda4 がリカバリー領域となっています。
Manjaro の os-prober 1.75-1 は openSUSE(Tumbleweed) パーティションを発見できません。このため Manjaro の Grub2 は openSUSE(Tumbleweed) を起動できません。必要であれば /etc/grub.d/40_custom か 41_custom を編集し、設定を追加し、 sudo update-grub してください。
インストーラーを起動し、インストール作業を行います。
インストールは拡張パーティション内の未割り当て領域にパーティションを作成し、インストールします。ブートローダーは作成したパーティションにインストールします。ブートローダーを MBR にインストールしていはいけません、 Windows が起動できなくなります。ブートローダーのインストール先が /dev/sda となっているのであれば、その設定でインストールしてはいけません。
PBR(Partition Boot Record)をファイルに保存します。個々での操作は端末(Konsole)で行います。 dd コマンドを使用します。 dd コマンドはパーティションのセクタを直接操作するため、危険なコマンドです。 of= の値に注意してください。 /dev/sda やそれに類する値を指定してはいけません。下記コマンドは Manjaro Linux を /dev/sda5 にインストールしていると想定しています。
# インストールパーティションのパスを確認する。 mount | grep " / " # PBR をファイルに保存する。 sudo dd if=/dev/sda5 of=manjaro.pbr bs=512 count=1
Windows パーティションのトップ フォルダーに、保存した PBR をコピーします。 Windows は /dev/sda2 にインストールされていると想定しています。先程メモしたアドレスに置き換えて読んでください。
まずパーティションをマウントします。 win フォルダーを作成し、マウントし、 ls win でファイル一覧を確認します。 Program Files, User, Windows フォルダーがあれば、 Windows のパーテションです。見当たらなければ sudo umount win でアンマウントし、別のパーティションを調べます。パーティションは lsblk -f で一覧を表示し確認できます。 sudo os-prober で Windows パーティションを確認できます。
# マウントするフォルダーを作成する。 mkdir -p win # マウントする。 sudo mount /dev/sda2 $PWD/win # パーティションのトップレベルのファイル一覧を確認する。 ls win
合っていれば、PBR をコピーし、アンマウントします。
# ファイルに保存した PBR をコピーする。 cp manjaro.pbr win/. # アンマウントする。 sudo umount win
PBR のコピーは、 Grub2 のアップデートが行われた際に再び作業が必要になる場合があります。
再起動し、 Windows を起動します。
Windows を起動し、管理者権限のあるアカウントでログインします。 UAC が有効になったコマンド プロンプトを起動します。スタートメニューのアクセサリからコマンド プロンプトを探し、右クリックのメニューから管理者権限で実行を選択し、起動します。
登録手順は下記ページを参考にしています。
Windows と Arch のデュアルブート - ArchWiki <https://wiki.archlinuxjp.org/index.php/Windows_%E3...>
BCDEdit のコマンド ライン オプション <https://technet.microsoft.com/ja-jp/library/cc7096...>
cd /d %SystemDrive% bcdedit /create /d "Manjaro" /application BOOTSECTOR REM 波括弧({})で括られた ID が表示されます。これをメモしておきます。 REM 以下、ここで表示された ID を {ID} で表します。 REM コマンドを実行する際は {ID} を実際の ID に置き換えてください。 bcdedit /set {ID} device partition=%SystemDrive% bcdedit /set {ID} path \manjaro.pbr bcdedit /displayorder {ID} /addlast
ID は bcdedit /enum で確認できます。
規定の OS は bcdedit /default {ID} で設定できます。
登録の削除は bcdedit /delete {ID} で行います。
再起動し、 Manjaro を起動してみましょう。問題なく起動できたでしょうか。
外付け HDD を接続するとすべてのパーティションをマウントします。これを抑止し、手動でマウントするようにします。
/etc/udev/rules.d/85-no-automount.rules ファイルを作成し、次のテキストを保存します。ファイルの作成と編集には管理者権限が必要です。
SUBSYSTEM=="usb" ENV{UDISKS_AUTO}="0"
次のページを参考にしました。
udev - ArchWiki <https://wiki.archlinuxjp.org/index.php/Udev>
Udisks - ArchWiki <https://wiki.archlinuxjp.org/index.php/Udisks>
パーティション番号は sfdisk コマンドで変更できます。インストールディスクから実行します。
sfdisk -d /dev/sda > sda.bkp cp sda.bkp sda.new # テキストエディターで編集する。 kwrite sda.new # 編集内容を書き戻す。とても危険です! sudo sfdisk --no-reread -f /dev/sda < sda.new
ブートプロセスで Grub2 が Stage2 を見つけられず、 grub rescue でコマンド待ちをしている状況の対処法です。他のディストリのブートローダーから Manjaro を起動し Grub2 を再インストールする方法が簡単です。ただし Manjaro の起動は癖があります。 insmod と linux, initrd の引数を適切に設定する必要があります。
下記ページを参考にしています。
Linux 上の GRUB 2 がブートできなくなったときの対処方法 <https://jp.linux.com/news/linuxcom-exclusive/41827...>
Grub2/Troubleshooting - Community Help Wiki <https://help.ubuntu.com/community/Grub2/Troublesho...>
# パーティション一覧を表示する。 ls # パーティションの内容を表示する。 # /dev/sda5 に Manjaro がインストールされていると想定している。 ls (hd0,msdos5) # 合っていれば次へ進む。 set prefix=(hd0,msdos5)/boot/grub set root=(hd0,msdos5) insmod gzio insmod part_msdos # パーティションが btrfs なら insmod btrfs する。 insmod btrfs insmod linux # /boot のファイルを確認する。 ls (hd0,msdos5)/boot # vmlinuz-* と initramfs-* を下記コマンドで指定する。 # 下記では x86_64 の 4.9.x カーネルを指定している。 linux /boot/vmlinuz-4.9-x86_64 root=/dev/sda5 initrd /boot/intel-ucode.img /boot/initramfs-4.9-x86_64.img # ブートする。 boot
起動後、 Grub2 を再インストールします。
# /dev/sda5 に Manjaro がインストールされていると想定している。 sudo grub-install --target=i386-pc --force /dev/sda5 sudo update-grub
Grub2 が管理する core.img の更新ができないことがあります。
Presence of the word GRUB at the top left of the monitor with no blinking cursor indicates that GRUB 2 can not even find the Master Boot Record (or equivalent) information. Thus, the core.img file, the /boot and /grub folder locations and contents are completely unknown to GRUB 2.
複数のディストリをインストールし、そちらの Grub から Manjaro を起動できる状況を想定しています。他のブートローダーから Manjaro を起動し、作業を行います。
下記ページを参考にしています。
GRUB - ArchWiki <https://wiki.archlinuxjp.org/index.php/GRUB>
# immutable 属性を外す。これがついていると更新削除名称変更ができない。 sudo chattr -i /boot/grub/i386-pc/core.img # インストールパーティションのパスを確認する。 mount | grep " / " # /dev/sda5 に Manjaro がインストールされていると想定している。 sudo grub-install --target=i386-pc --debug --force /dev/sda5 # immutable 属性を付ける。 sudo chattr +i /boot/grub/i386-pc/core.img sudo update-grub
インストール ディスクから chroot し Grub2 を再インストールする方法もあります。 chroot するにはカーネルのアーキテクチャが一致している必要があります。
Restore the GRUB Bootloader - Manjaro Linux <https://wiki.manjaro.org/index.php/Restore_the_GRU...>
カーネルが起動せず、次のようなメッセージが表示される。入力は受け付けない。カーネルのインストールに失敗した場合こうなるようです。
Warning: /lib/modules/4.9.39-1-MANJARO/modules.devname not found - Ignoring starting version 232 mount: can't find 'UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' sh: can’t access tty: job control turned off [rootfs ]#
カーネルを再インストールし、修復します。まずインストール ディスクを用意し、起動してください。インストール ディスクと修復対象のアーキテクチャ( i686 か x86_64 )が同じであることを確認してください。異なるアーキテクチャでは以下の作業を行えません。作業は端末( Konsole )で行います。
# root になります。 su # lsblk コマンドで Manjaro システムのパーティションを確認します。 lsblk -fa # マウントポイント。ファイラー( Konqueror )でマウント済みであれば /run から始まるパス。 mp=/mnt # マウントしていない場合はマウントする。 # sda1 が Manjaro のパーティションと想定している。 mount /dev/sda1 $mp # 正しくマウントされているか確認する。 ls $mp # 現在のシステムが認識しているもろもろを作業対象のシステムが認識できるようにする。 # 以下の処理と chroot は manjaro-chroot コマンドでまとめて行える。 mount -t proc proc $mp/proc mount -t sysfs sys $mp/sys mount -o bind /dev $mp/dev mount -t devpts pts $mp/dev/pts/ # (U)EFI/GPT では $mp/boot/efi に ESP パーティションをマウントする。 # chroot する。現在のシステムと対象のシステムのアーキテクチャが同じでなければならない。 chroot $mp /bin/bash # 最新の状態にアップデートする。 pacman -Syyu # カーネルがアップデートされなかった場合はカーネルを再インストールする。 # カーネルのバージョンは 4.9 系を想定している。 pacman -S linux49 # キャッシュのパッケージから再インストールする場合。 # 4.9.39-1 x86_64 を想定している。 pacman -U /var/cache/pacman/pkg/linux49-4.9.39-1-x86_64.pkg.tar.xz # エラーなく終了したことを確認し、 chroot を抜ける。 exit
再起動し、正常に起動できることを確認します。
次のページを参考にしました。
[SOLVED] How to fix broken upgrade using LiveCD? - Technical Issues and Assistance - Manjaro <https://forum.manjaro.org/t/solved-how-to-fix-brok...>
Manually Identify and Prepare the Installed Partition(s) - Restore the GRUB Bootloader - Manjaro Linux <https://wiki.manjaro.org/index.php/Restore_the_GRU...>
各ディストリのパッケージ マネージャーは次のコマンドです。
ディストリ | コマンド |
Manjaro (Arch) | pacman |
Msys2 | pacman |
Ubuntu | apt-get |
Debian | apt-get |
Fedora | dnf |
openSUSE | zypper |
AUR ( Arch User Repository ) のコマンドは yaourt です。オプションは pacman と同じです。
その他、詳しい比較はこのページが参考になります。
Pacman 比較表 - ArchWiki <https://wiki.archlinuxjp.org/index.php/Pacman_%E6%...>
更新を確認し、更新されたパッケージをインストールする。
# Msys2, Manjaro, Arch など。下はショート。 pacman --sync --refresh pacman -Sy pacman --sync --sysupgrade pacman -Su # Manjaro, Arch などで AUR の更新を行う。 pacman -Syu したあと実行する。下はショート。 yaourt --sync --sysupgrade --aur yaourt -Sua # Ubuntu, Debian など。 apt-get update apt-get upgrade # or dist-upgrade # openSUSE。 zypper refresh zypper update --no-recommends
更新を確認し、更新されたパッケージのダウンロードを行う。インストールは行わない。
# Msys2, Manjaro, Arch など。下はショート。 pacman --sync --refresh pacman -Sy pacman --sync --sysupgrade --downloadonly pacman -Suw # Ubuntu, Debian など。 apt-get update apt-get upgrade --download-only # or dist-upgrade # openSUSE。 zypper refresh zypper update --no-recommends --download-only
# Msys2, Manjaro, Arch など。下はショート。 pacman --sync pacman -S # Ubuntu, Debian など。 apt-get install # Fedora, Korora など。 dnf install # openSUSE。 zypper install
自動/手動でインストールされた設定を変更したいときに使う。上のコマンドが自動(依存関係)、下が手動でインストール。
# Msys2, Manjaro, Arch など。 pacman --sync --asdeps pacman --sync --asexplicit pacman --database --asdeps pacman --database --asexplicit # Ubuntu, Debian など。 apt-mark auto apt-mark manual # Fedora, Korora など。 dnf mark # openSUSE。
# Msys2, Manjaro, Arch など。下はショート。 pacman --remove --recursive pacman -Rs # Ubuntu, Debian など。 apt-get remove # Fedora, Korora など。 dnf remove # openSUSE。下はショート。 zypper remove --clean-deps zypper rm -u
# Msys2, Manjaro, Arch など。下はショート。 pacman --sync --search pacman -Ss # Ubuntu, Debian など。 apt-cache search # Fedora, Korora など。 dnf search # openSUSE。下はショート。 zypper search zypper se
# Msys2, Manjaro, Arch など。下はショート。 pacman --sync --info pacman -Si pacman --sync -ii pacman -Sii # Ubuntu, Debian など。 apt-cache show # Fedora, Korora など。 # openSUSE。 zypper info
# Msys2, Manjaro, Arch など。下はショート。 pacman --query --search pacman -Qs # Ubuntu, Debian など。 apt list --installed # Fedora, Korora など。 # openSUSE。下はショート。 zypper search --installed-only zypper se -i
パッケージに含まれるファイルの一覧を表示する。 pacman -Ql はインストール済みのパッケージのみ。 pacman -Sl は未インストールのパッケージのファイル一覧を表示するが、パッケージがダウンロード済みである必要がある。
# Msys2, Manjaro, Arch など。下はショート。 pacman --query --list pacman -Ql pacman --files --list pacman -Fl pacman --sync --list pacman -Sl # Ubuntu, Debian など。 dpkg --listfiles # Fedora, Korora など。 # openSUSE。下はショート。 rpm --query --list rpm -ql
# Msys2, Manjaro, Arch など。下はショート。 # Ubuntu, Debian など。 apt-get autoremove # Fedora, Korora など。 dnf autoremove # openSUSE。
Manjaro(Arch) では pacman -Scc は非推奨で、 paccache -r で旧バージョンを残しつつ削除する方法が推奨されています。
# Msys2, Manjaro, Arch など。下はショート。 pacman --sync -cc pacman -Scc # Ubuntu, Debian など。 apt-get clean # Fedora, Korora など。 dnf clean # openSUSE。 # openSUSE はダウンロードしたパッケージを自動で削除する。
# Msys2, Manjaro, Arch など。下はショート。 pacman --sync --clean pacman -Sc # Ubuntu, Debian など。 apt-get autoclean # Fedora, Korora など。 # openSUSE。
パッケージに含まれるファイルを探す。
# Msys2, Manjaro, Arch など。下はショート。 pacman --query --owns pacman -Qo pacman --files --owns pacman -Fo # Ubuntu, Debian など。 # Fedora, Korora など。 # openSUSE。下はショート。 rpm --query --file rpm -qf
command-not-founnd というコマンドがある。こちらはインストールしていないパッケージのファイルも検索できる。 cnf-lookup のために定期的に sudo cnf-sync するようだ。しかし内容がとても古い。
ほかには pkgfile がある。
# Msys2, Manjaro, Arch など。下はショート。 # Ubuntu, Debian など。 apt-cache depends # Fedora, Korora など。 # openSUSE。
Manjaro Linux
https://manjaro.org/
Mingw-w64 - GCC for Windows 64 & 32 bits [mingw-w64]
http://mingw-w64.org/doku.php
Clonezilla
http://clonezilla.org/
DistroWatch.com: Put the fun back into computing. Use Linux, BSD.
https://distrowatch.com/
https://distrowatch.org/
Manjaro 17.0.1 およびそれ以前の Calamares インストーラーに脆弱なパスワード ハッシュを生成する脆弱性があります。 root/sudoers がこのような脆弱なパスワード ハッシュのままであった場合、とても危険です。
Manjaro Installers - Password Weakness - Announcements - Manjaro Linux Forum <https://forum.manjaro.org/t/manjaro-installers-pas...>
/etc/shadow を参照し、パスワードが設定されているユーザーのパスワードを再設定してください。パスワードの再設定はそれぞれのユーザーでログインし、Manjaro Settings Manager のユーザー アカウント、または passwd コマンドなどで行います。
Calamares で設定した root のパスワードも再設定してください。 root のパスワードをユーザーと分けずに設定していても、 Calamares が root のパスワードを設定しています。
root のパスワードの再設定は、ターミナルから su - root で切り替えて設定する方法が簡単です。この方法は root 以外のユーザーでも使用できます。
su - root passwd exit
grub2 の mbr への再インストールと grub2 関係のまとめ直し。
caja.desktop
yaourt -Ss mingw-w64-
パッケージ マネージャーの項目を埋める。
要所要所でスクショを貼る
2018/4/30mon update ( download only を記述。 osdn.net へのリンクを追記。メンテナンス - ニュースを記述。もろもろ。
2018/4/24tue mingw-w64-gcc が AUR へ移行されたことを書いた。カーネルが起動しないに manjaro-chroot について書いた。もろもろ。
2017/12/9sat カーネルのアップデートに追記。重要を記述。
2017/8/25fri systemd ログを記述。もろもろ。
2017/8/8tue pacnew ファイル、カーネルが起動しないを記述。
2017/6/6tue リンクを記述。リポジトリ ミラーの更新を記述。パッケージ マネージャーの項目を少し埋めた。もろもろ。
2017/5/27sat EFI/GPT へのインストールについて情報を正しくした。もろもろ。
2017/5/25thu パッケージの再作成を記述。外付け HDD の自動マウントを抑止するを記述。実機にインストールに追記。もろもろ。
2017/5/19fri 情報収集を記述。実機にインストールを記述。もろもろ。
2017/4/26wed カーネルのアップデートを追記。ディスプレイ マネージャーを追記。もろもろ。
2017/4/15sat コミュニティ エディションを追記。もろもろ。
2017/4/14fri ユーザー データとシステムの分離を追記。メンテナンスを追記。Mingw-w64 を試すを追記。その他もろもろ。
2017/4/13thu ページ作成。
タグ
コメントをかく