読者です 読者をやめる 読者になる 読者になる

解き放たれしソフトウェア

GNU/LinuxなどFLOSSについて書いてみるつもり

GNU/Linux で使えるバックアップ用ソフトウェア

昨日から今日の昼頃まで季節外れの気温で、「もう春本番?!」と思うくらいだった不気味な天気でした。 近年は気候が異常なのが顕著で、対応と抑制が喫緊の死活問題だなと思います。 精密機器は温度と湿度が重要で、HDDは温度が高すぎても低すぎても壊れやす…

Firefox を PGO でビルドする【Gentoo Linux】

Firefox を Profile Guided Optimization (PGO) でビルドすると、実行速度が速くなるのですが、ビルドに2倍くらいは時間がかかります。 PGO は、1度ビルドしてみる→実行して情報収集→その情報でより速いバイナリにビルド、という手順を踏むため、おそらく2倍…

"Gentoo Linux" の GCC 6 への移行状況

あくまでも本日現在のことですが、"Gentoo Linux"の gentoo リポジトリ(通称"Portage tree")内の GCC のパッケージは、バージョン 4.9.4 が stable の最新で、バージョン 5.4 が unstable の最新です。 したがって、 GCC 6 は通常の状態ではインストール不…

Gentoo は Arch よりも怖くない

"Gentoo Linux"*1 をインストールすることをためらったり、常用するOSにしたくなかったりするのには理由があるはずです。ebuild を書いてみようという以前に、Gentoo をインストールしない人が多いということがそもそもで、Gentoo ユーザが増えないのだと思…

【Gentoo】Linuxのカーネル本体とモジュール、ファームウェア、ヘッダ

"Gentoo Linux"では、Linux カーネルはソースコードで入手することになります。 カーネルのコンパイル時には、どの機能を本体にスタティックに組込むか、ローダブルモジュールにする(必要なときにだけロードする)か、コンフィグレーションで決めます。 コ…

【Gentoo】Paludis の EAPI 6 対応は未完成

「Gentoo Linux」のパッケージマネージャには Portage、Paludis、Pkgcore の3つがあります。 さて、最近に EAPI 6 が出ましたが、Paludis の EAPI 6 対応は不完全なようです。 eapply_user() { return 0 } paludis/paludis.git - Paludis, the other packag…

prelink は、大概は不要

Gentoo Wiki にも載っている prelink ですが、結論から言うと、現在では多くの状況では不要です。 prelink は、それぞれのプログラムに必要な共用ライブラリ(Shared Object)を、動的にロードするのではなく予め組み込んでしまうためのソフトウェアです。 pre…

【マルチコア向け】並行処理でアーカイブ処理を速くする

xz や bzip2、gz などのアーカイブを圧縮したり展開したりする際にも、 マルチコアやマルチCPUのマシンであれば、並行処理をさせれば速くなるはずです。 (むしろ、1コアだけしか使用しないと、コア数×クロック周波数の速度では出ず遅くなり、損です。) そ…

PPP接続時のルーティング設定

今時は PPP 接続をするにしても専用ルータ機器を用いる人が多いのでしょうけれど。 私はPCから直接に PPP 接続をしています。 それが珍しいのかなんなのかわかりませんが、PPP 接続に付随する機能が充実していないことが少なくありません。 例えば Windows …

【Gentoo】グローバルに指定して構わない USE フラグ

/etc/portage/make.conf*1などでグローバルに USE フラグを設定することが可能です。 他方で、 /etc/portage/package.use などでも、パッケージごとに USE フラグを指定することが可能です。 この双方の用い分けの問題です。 明らかな極論ですが、「全て pac…

【Gentoo】EAPI 6 での変更点

Gentoo での ebuild ファイルを書く際に呼び出す EAPI は、昨年に EAPI 6 がリリースされています。 5と6との詳しい相異点は、 Package Manager Specification に書いてあります。 特に重要だと思ったのは以下 unpack で指定するファイル名に(絶対でも相…

Gentoo で ccache を導入する意義

Gentoo では、原則としてソースコードからビルドします。 バージョンアップの際のみならず、 USE フラグを変更した際にもおおよそは再ビルドになります。 バージョンアップの際にも、バージョンアップするソフトウェア自体だけではなく、dependent なソフト…

コンパイルの job 数(-j、$MAKEOPTS)の適正値

近年の CPU はマルチコアが多いです。 一個の CPU で、複数の CPU を搭載しているかのような動作をします。 1つのプロセスは1つの CPU で動作をして越えません。マルチコアでも同様です。 uptime や w や top などで表示される load average の数値も、1…

【Gentoo】パッケージの更新履歴の確認方法

Gentooの「Portageツリー」(メインリポジトリ)のパッケージには、以前はChangeLogというファイルが同梱されていました。 それが、CVS から Git に移行したときに、無くなってしまいました。 そのため、 ChangeLog を表示する equery c [package_name] のコ…

Arch Linuxをメインに使うのをやめた理由

私は、 Gentoo だけではなく Arch も使っています。 しかし、 Gentoo の方がメインで、 Arch をメインに使うのはやめました。PKGBUILDの管理が面倒なうえに、(Arch が愚直なまでの単純さを旨としているだけに、)カスタマイズすればするほど、きたなくなっ…

Gentoo は、設定ファイルを上書きしないしポイ捨てしない

ソフトウェアパッケージをアップグレードしたり再インストールしたりするとしばしば、既存の設定ファイルの扱いが問題になります。 ディストリビューションによっては、デフォルトの設定ファイルの名称を変更して置いていくものが多くあります。 既存を別名…

Gentoo における日本語入力

Gentoo での日本語入力というよりも、 GNU/Linux における日本語入力という時点で選択肢が少ないのですが…… 変換エンジン(変換サーバ)と、それを利用するフロントエンド(インプットメソッド)、という2つのソフトウェアが必要です。 あるいは、両方を兼…

gentoo リポジトリの日本語フォント

Gentoo のメインリポジトリ(Portageツリー)に入っている日本語文字のフォントについてですが、少ないです。 説明に"japan"が入っているものや、 USE フラグに "ja" が入っているものを検索してみると $ eix -C media-fonts -S japan --in-overlay gentoo -…

【Gentoo】ebuild ファイルを書いてみる 第3回

前回の続きです。 第1回 【Gentoo】ebuild ファイルを書いてみる 第1回 - 解き放たれしソフトウェア 第2回 【Gentoo】ebuild ファイルを書いてみる 第2回 - 解き放たれしソフトウェア 前回は、実際に書いた ebuild ファイルの実例を示しました。 モリサ…

【Gentoo】ebuild ファイルを書いてみる 第2回

前回の記事の続きです。 gnu.hatenablog.com 前回は ebuild ファイルの名称について説明しました。 media-fonts/kazesawa/kazesawa-2015.12.18.ebuild ようやく内容についてです。 ebuild のマニュアルは、 man 5 ebuild です。 なお、ebuild の書きかたの例…

【Gentoo】ebuild ファイルを書いてみる 第1回

先日に、M+ FONTS と Adobe Source Sans Pro を合成したフォントを公開した人がいます(「僕が Linux デスクトップで使うフォントの話と、フォントを合成した話 - Qiita 」)。 そこで今回はこの kazesawa フォントをインストールする ebuild を書いてみます…

【Gentoo】リポジトリのつくりかた

公式メインリポジトリ(Portageツリー)にないソフトウェアを(パッケージマネージャの管理下で)インストールするためには、 ebuild ファイルを書く必要があります。 しかしまず第一歩としては、メインリポジトリや公式の追加リポジトリ、ユーザのリポジト…

【Gentoo】eix でリポジトリの更新内容がわかりやすくなる

eix (app-portage/eix) ( https://github.com/vaeth/eix/ )をインストールしなくてもGentoo自体は動きますが、インストールしないと管理が手間取るので、インストールはほぼ必須だと思います。 それくらい便利なツールです。 便利なコマンド eix-sync 例えば…

【Portage】「emerge する」と言う理由

Gentooでは、Portageパッケージマネージャのコマンドである emerge を用いてインストールすることも、動詞として "emerge"と言う人がいます。*1 なぜ emerge というコマンド名かというともともとは、 ebuild merge だからです。 今でも Portage には、ebuild…

【Portage】リポジトリの追加のしかた

Gentooのメインリポジトリ(「Portageツリー」)だけでも既にたくさんのパッケージがありますが、 Gentooでも、ほかのディストリビューションと同様に、リポジトリ(「オーバーレイ」)の追加が可能です。 リポジトリを追加することで、さらに多くのソフトウ…

【Gentoo】Let's Encrypt クライアントのパッケージがリリース

先日に、Let's Encrypt のクライアントのパッケージが、実験段階からテスト募集段階に上がっていました。 つまり、 unstable ながらリリースされたということです。 Let's Encrypt についてはここでは詳しくは述べませんが、ウェブでの通信における暗号化や…

【Gentoo】パッケージの指定方法

例えば、Portage パッケージマネージャのコマンドである emerge でソフトウェアパッケージをインストールするとします。 その際に、どのパッケージをインストールするかを指定するわけですが、 同じパッケージ名が複数あるときは、ソフトウェアカテゴリも含…

【Gentoo】VIDEO_CARDS や INPUT_DEVICES などは、隠れUSEフラグ

Gentoo Wiki などでは、VIDEO_CARDS や INPUT_DEVICES などを make.conf で指定するように書いてあります。 これらは Gentoo Wiki に"USE_EXPAND"と書いてあるとおり、 USE フラグの一種です。 例えば、 INPUT_DEVICES="evdev" は、 input_devices_evdev と…

【Gentoo】Bash や sed などの基本操作は必須

Windowsなどは言うまでもありませんが、GNU/Linuxのディストリビューションであっても、GUIで多くの操作が完結しているものもあります。Macintoshのユーザレベルはよく判りませんが(昔は私もMacOS 9のユーザでしたが)、OS XはBSD系なので、かなりの人がCLI…

【Gentoo】パッケージの「安定バージョン」「非安定バージョン」

多くのディストリビューションでは、ディストリビューション全体のメジャーバージョンごとに、安定版や非安定版、「開発版」となどと決められています。例えば Debian だと LTS、stable、unstable、sid といったように分かれています。 しかし、Gentooでは、…

【Gentoo】Portage でのコンパイルは RAM 上でも可能

近年に Gentoo の導入が容易になった要因の一つとして、SSD の普及と高耐性化、それとRAMの容量の増大も挙げられます。 ソースコードからビルドする作業において、HDD上でビルドするとオーバーヘッドが何かにつけて大きくなります。 tarball をダウンロード…

Gentoo だけれど、バイナリパッケージで配布されているもの

Gentoo では、ソースコードからビルド(コンパイル、リンク)する、が原則です。 しかし、Gentoo でも、バイナリのパッケージはあります。 バイナリのパッケージの多くは、パッケージ名が -bin で終わっています。 試しに、eix (app-portage/eix) で検索して…

【Gentoo】Funtoo ならインストール容易

Gentoo はインストールが大変だ 「インストールが難しいやつ」というと Slackware がそう思われているようですが、Slackware は今は随分と容易になったのではないかと思います。 それに比べれば Gentoo はずっと苦労します。なにせカーネルをビルドしろと公…

Gentooの優れているところ

GNU/Linuxのディストリビューションは、数えきれないかというほどに沢山あります。その(ムダとも言えるくらいの)多さはDistroWatchをみてもわかります。 そのなかで、なぜGentoo(派生を含む。以下同じ)なのか、なぜGentooでないといけないのか、何が優れ…

【Gentoo】インストールすべき必携ツール:gentoolkit、portage-utils、eix

Gentooシステムの管理は、Portage(sys-apps/portage)同梱のプログラムだけでは難しいと思います。 例えば、パッケージのインストール状態を調べたいときや、パッケージに関する情報を調べたいときです。 比較して言えば例えば、RedHatにおけるrpm -qlとか、D…

【Portage】package.* くらいならヘルパーツール無くてもなんとかなる

Gentoo の デフォルトのパッケージマネージャである Portage では、設定ファイルは /etc/portage 以下に置くのがデフォルトで、テキストファイル(+ディレクトリを作成して整頓しても可)です。 (Portage のコマンドの1つである) emerge でインストール…

@world を編集する

Gentoo では、意図してインストールした(自動でなく、インストールしたくてした)パッケージのリストは、 /var/lib/portage/world に保存されています。 man 5 portage world Every time you emerge a package, the package that you requested is recorded…