地方エンジニアの学習日記

興味ある技術の雑なメモだったりを書いてくブログ。たまに日記とガジェット紹介。

【Make】特殊変数メモ

  • $@ : ターゲットファイル名
  • $% : ターゲットがアーカイブメンバだったときのターゲットメンバ名
  • $< : 最初の依存するファイルの名前
  • $? : ターゲットより新しいすべての依存するファイル名
  • $^ : すべての依存するファイルの名前
  • $+ : Makefileと同じ順番の依存するファイルの名前
  • $* : サフィックスを除いたターゲットの名前

【Linux】resolve.confメモ

resolv.conf って何のファイル?

resolv.conf - レゾルバ設定ファイル  

Man page of RESOLV.CONF

ゾルバ(resolver) って何?

リゾルバとは、IPアドレスとドメイン名を結びつけるDNSにおいて、ネームサーバにホスト名を通知してIPアドレスの検索を依頼したり、その逆を依頼したりするクライアント側のプログラム。
アプリケーションソフトがIPアドレスやホスト名を必要とする場合には、通常リゾルバを介して名前解決が行われる。
リゾルバは一つ以上のネームサーバのアドレスを知っており、そのネームサーバに問い合わせを行い、返ってきた答えをアプリケーションに渡す。
...
通常はOSに付属するライブラリの機能として提供される。

リゾルバとは|DNSリゾルバ|ネームリゾルバ - 意味/解説/説明/定義 : IT用語辞典

resolver は、インターネットのドメインネームシステム (DNS) へのアクセスを提供する C ライブラリのルーチン群である。
レゾルバ設定ファイルには、レゾルバルーチンがプロセスによって最初に 起動されたときに読み込まれる情報が格納されている。
このファイルは人間に可読なように設計されている。
キーワードと値のリストが含まれ、いろいろなタイプのレゾルバ情報を提供する。

Man page of RESOLV.CONF

で、resolv.conf には何を書くの?

「/etc/resolv.conf」は、自分のマシンが利用するDNSサーバの情報(IPアドレス)
基本的には,以下の設定があります.

  nameserver ネームサーバのIPアドレス
  domain     ドメイン名
  search     検索リスト


最低必要なのが,nameserver です.これで,ネームサーバを指定します.

ネームサーバー = DNSサーバ

ネームサーバーとは、インターネット上でドメインとWebサーバーやメールサーバーを結びつけるための名前解決をするサーバーです。

domainとsearchについて

DNS (resolver) setting for UNIX

 「domain st.ryukoku.ac.jp」と指定した場合、 telnet hogehoge を 実行すると、OS は まず

    hogehoge.st.ryukoku.ac.jp 

というホストの IP アドレスを検索します。 このホストがみつからない場合、hogehoge の IP アドレスを検索します。 それでも見つからない場合はエラーを返します。 
 一方、 「search st.ryukoku.ac.jp math.ryukoku.ac.jp elec.ryukoku.ac.jp」 とした場合は

    hogehoge.st.ryukoku.ac.jp
    hogehoge.math.ryukoku.ac.jp
    hogehoge.elec.ryukoku.ac.jp 

を順に検索してくれます。

【C】glibcとmusl libcの微妙な違いメモ

printfの挙動 EOFの扱い readとwriteについて stdioの実装にreadvとwritevを使用している シグナルマスクとsetjmp/longjmp 正規表現 exitが複数回呼ばれるときの振る舞い Dynamic linkerにおけるlazy bindingの未サポート dlclose はmuslでは何もしない スレッドセーフなdlerror これはPOSIXを尊重してglibcと異なる挙動になっていたのが、musl 1.1.9からglibcと同じ挙動になったということらしい symbolのバーションについての扱い Threadのスタックサイズ Threadキャンセル時の挙動 localeの扱い (deault localeなど) iconv 古い東アジアのマルチバイトエンコーディングについては出力先として指定することができない ISO-2022-JPへの変換はステートレスとなる 等 浮動小数点についてはC99 Annex Fの範囲をサポートする 浮動小数点の例外についてアンマスクをサポートしない 名前解決 glibcは候補を順にみていくがmuslは同時に問合せを行い最初に返ってきた結果を採用する?

【Makefile】変数加工のtips

$(name:op%os=np%ns)

$(name)の各語に対し、先頭のopと末尾のosを削除して、先頭にnp, 末尾にnsを付加する。

用途としてはこんな感じ。特定ディレクトリ配下のファイルを取得して指定したパスに加えて拡張子をつけるみたいなケース

vars := $(filter-out Makefile, $(shell ls -1))

all:
   @echo $(vars:%=/tmp/%.txt)

上記に適当なファイルを作成しておくことで実行すると以下のようになる。ローカル -> Linuxの実行パスにファイル名を変えつつ動的に配置するファイルを決定させたいケースみたいなので便利。

make
/tmp/dep.yml.txt /tmp/pv.yml.txt /tmp/pvc.yml.txt