HOWTO Use Portage Correctly

조회 수 973 추천 수 0 2007.09.02 17:43:25

Introduction

There are a number of major elements that define any Linux distribution. One of the most important is the package management philosophy or system that the distribution embraces. For example, we can categorize distributions designed around RPM as Red Hat based, or we can say that Ubuntu or Knoppix are derived from Debian because they all use APT. The package manager found at the heart of Gentoo Linux is known as Portage.


Portage sets itself apart from nearly all other package managers in many ways. But the most significant difference is that it's not actually a package manager at all, but rather what's known as a meta-distribution engine. What this means is because of the power, flexibility, and configurability of Portage, very few Gentoo Linux installations are ever the same. Instead of being merely a tool used to install and remove software packages (although it performs these tasks with ease), the purpose of Portage is the construction of a complete Linux distribution unique to the user who created it. In this sense, Gentoo Linux is actually a meta-distribution. It's not a static product, but actually a robust toolkit for people wanting to build a custom operating system themselves.


The purpose of this HOWTO is to teach the "best-known practices" for working with Portage on a daily basis. This is not a primer or introduction to using Portage or emerge. If you're new to Gentoo, the best way to learn how to use these tools is by reading the Working with Gentoo chapter of the Gentoo Handbook. In this HOWTO we'll take an in-depth look at how Portage works and how we can make it work better.

[edit] Emerging Packages

The emerge command is the primary way one interacts with Portage. Nearly all actions that can be performed are available using any number of command-line options in combination. Here we will explain some of the more useful ones. For the full list, consult the emerge man page.
  • emerge --ask (-a for short)
Display a message stating exactly what actions emerge will be performing and prompt the user to confirm them.
This is very similar to the --pretend option (-p), but it saves you from having to enter the command twice (once with and once without -p). --ask should be used almost every time you run emerge, so get into the habit of adding it now. ;)
root ~ # emerge -a patch

These are the packages that I would merge, in order:

Calculating dependencies ...done!
[ebuild R ] sys-devel/patch-2.5.9-r1

Do you want me to merge these packages? [Yes/No]
  • emerge --verbose (-v)
Display the current USE flags available and selected for the given package, as well as size of the source and total size of data needed to be downloaded.
USE flags in (parens) are not available for your profile. +plus and -minus are enabled or disabled flags of course. asterisks* indicate that a flag has changed since the package was last emerged.
This option should also be enabled on every emerge, and is only useful with --ask or --pretend. Little known fact: this flag also controls the display of those "GNU info directory index" messages at the end of the emerge that no one cares about.
 root ~ # emerge -pv gimp

These are the packages that I would merge, in order:

Calculating dependencies ...done!
[ebuild R ] media-gfx/gimp-2.2.7-r1 -aalib (-altivec) -debug -doc -gimpprint -gtkhtml
-hardened +jpeg -lcms +mmx +mng +png +python -scanner -smp +sse +svg -tiff* -wmf 13,647 kB

Total size of downloads: 13,647 kB
  • emerge --deep (-D)
Check the entire dependency tree of a package rather than just the immediate dependencies.
When the target is world, --deep checks the dependency trees of packages in the world file (more on this later). This option can find updates for packages that otherwise emerge would have not reported.
  • emerge --tree (-t)
Display the dependency tree for the package/target.
This is an extremely useful option that is often overlooked. If you've ever tried to figure out what's pulling in a particular package, or just wanted to see what depends on what, this is the option for you. ;)
 root ~ # emerge -atv asterisk

These are the packages that I would merge, in reverse order:

Calculating dependencies ...done!
[ebuild N ] net-misc/asterisk-1.0.8 +alsa -bri -debug -doc +gtk -hardened +mmx -mysql
-postgres -pri -resperl -speex -vmdbmysql -vmdbpostgres -zaptel 9,451 kB
[ebuild N ] dev-libs/newt-0.51.6 -gpm 152 kB
[ebuild N ] sys-libs/slang-1.4.9-r2 -cjk -unicode 616 kB
[ebuild N ] media-sound/sox-12.17.7-r1 +alsa -encode -mad +ogg 455 kB

Total size of downloads: 10,675 kB

Do you want me to merge these packages? [Yes/No]
Here we see asterisk depends on newt and sox, and newt depends on slang. Also, notice that the --tree option reverses the order that the packages are listed. The first package to be emerged appears at the bottom instead of the top.

[edit] Forcing Unstable Packages

[edit] The dreaded "masked by: missing keyword" message

This error message typically shows up when you try to emerge a package that has not been adequately tested on the platform you are using. The only way around the problem is to tell Portage to disregard all keywords by using ~* or *.

There are several ways to instruct portage to install 'unstable' packages (e.g., to use the ~x86 branch instead of x86). Many bad methods for installing unstable software have been spread. The following will explain how and how not to unmask unstable software.

[edit] Bad Method 1: ACCEPT_KEYWORDS

One dubious approach is ACCEPT_KEYWORDS="~x86" emerge foo. This has several undesirable features:

  • It will merge unstable versions of all missing dependencies--not just the unstable version of foo.
  • It will be forgotten immediately. The next time you run emerge -u world, portage will attempt to downgrade foo to the highest version that is stable. Portage will undo your changes, because you have told it to temporarily emerge an unstable version.
  • Messages about all other packages that might be incompatible are not displayed.
  • There's a bug in emerge that results in an ugly error message.

If you like using unstable/testing software, you can place the ACCEPT_KEYWORDS="~x86" in your make.conf file.

[edit] Bad Method 2: emerge /path/to/ebuild

Another poor workaround is emerge /path/to/foo.ebuild. This has the annoying side effect of functioning as --oneshot. Portage will not add foo to your /var/lib/portage/world file. Unless foo happened to be in the world file beforehand, foo package will never be upgraded again unless you force it manually. emerge -u world will miss it.

[edit] A Good Method: /etc/portage/package.keywords

Details on this are given at TIP package.keywords. In short, to keyword an otherwise "unkeyworded" package you need to use either * or ~*. These are two special keywords.

* means "Match any stable keyword"
~* means "Match any unstable keyword"
** means "Match any keyword (even "")"

If the ebuild you are using is stable on x86, but not on sparc ( unkeyworded on sparc ) and you are on sparc, you would need to unmask it with *, since there are no ~arch keywords for ~* to match against.

For ** to work you need >=portage-2.1.2-r3.

If, for example, you wanted to explore currently uncharted territory by testing the Xen package on an AMD64 system, this is how you would do so:

File: /etc/portage/package.keywords
=app-emulation/xen-3.0.0_pre20051027        ~*
=sys-kernel/xen-sources-2.6.12.5 ~*

Most of the time ~* works fine because there is an unstable keyword for one of the arches, however there are times when the package is stable on a number of arches, but not the arch that you are on. This is when using the * arch keyword comes in handy.

[edit] Maintaining Packages

Occasionally, portage may want to downgrade a package to an older version. Generally, there is a good reason behind it and it's best to downgrade it. There are exceptions though; for example linux-headers wanted to revert to 2.4.x when I have a 2.6.x kernel (Note: this is no longer the case with 2005.0 and later profiles). In /etc/portage/package.keywords we add a line or do

echo sys-kernel/linux-headers -* >> /etc/portage/package.keywords

Packages get downgraded when there is a huge security problem that isn't fixed in the newest versions and for other reasons, such as instablity being found that is very serious. Also, some devs just might accidentally mark something stable too early (they're only humans after all :-P )

Packages sometimes try to creep back onto the system when they aren't needed. Early on, users of xorg-x11 may have noticed xfree trying to make its way back onto the system. To fix this, in /etc/portage/package.mask a line was added:

File: /etc/portage/package.mask
x11-base/xfree

Packages are also hard-masked from time to time. One such example is realone. It's hard-masked due to the fact there is a security hole that could lead to a compromised system. If for some reason you want to use realone, there's a package.unmask file. Make a /etc/portage/package.unmask and enter this command:

echo media-video/realone >> /etc/portage/package.unmask

Also if you don't want a package to include a particular USE flag, there's a package.use. Make a /etc/portage/package.use and enter a function similar to this into a terminal

echo net-p2p/bittorrent -X >> /etc/portage/package.use

This would tell portage not to include X support when emerging bittorrent.


Tip: Use ACCEPT_KEYWORDS to find all dependencies

But when you just want to get newest version of GNOME, KDE or any other ebuild with a lot of dependencies it can be a real pain to keep doing "emerge -pv gnome" only to get one single dependency at the time. Therefore you can run:

ACCEPT_KEYWORDS="~x86" emerge -pv gnome

Get all the dependencies listed and add them to your /etc/portage/packages.keywords .

[edit] Maintaining the World File

The world file is a record of packages which have been specifically installed by the user. More specifically it's a list of packages which the user wants to keep installed and updated on their system. It will not record the dependencies of those packages, but instead uses the dependencies of the currently installed packages to keep track of this information.

This means that, for example, if the emerge kde-meta command is issued, only kde-meta is added to the world file. The rest is worked out from its dependencies.

Contrary to some opinions, the world file is intended as a reference for the portage toolset only, and not to, for example, maintain a list of packages that the user wishes to be updated when running emerge -u world (this should be controlled using the package.* files under /etc/portage).

It is recommended that the world file is never edited directly, and instead the user uses the emerge command to maintain it. Below is a summary of the main commands. See emerge --help for information on all the available commands.

emerge -u (system: Update the system (base packages) or world packages and their immediate dependencies.

emerge -uD (system: Update the system or world packages and all their dependencies.

Why the difference between -u and -uD? Control. Using -u world instead of -uD world, the user can choose to maintain a known stable basic set of packages, only upgrading the top level of packages.


Tip: Use EMERGE_DEFAULT_OPTS in /etc/make.conf to set --deep as a default option. This way, all packages will get updated all the time. See /etc/make.conf.example for further help.

emerge --depclean --ask: List, ask the user to check and then remove all packages upon which no other package depends. In recent versions portage has got really good and not listing false positives here, but you should still check it just in case.

emerge --noreplace <package>: If a package is listed to be removed by depclean, but you don't want it removed, you can run this command and it will add the package to the world file, but won't actually install it.

emerge --oneshot <package>: Install a package, but don't add it to the world file. If want to re-emerge a package which you know you only want because it's a dependency of another package, use this command.

[edit] Troubleshooting: Lost World File

If you've lost your world file, portage no longer knows which packages you 'prefer' to be upgraded - this is generally not desirable. To (attempt to) fix your world file and add the packages type: regenworld

There's also a forum thread that provides information on how to fix your world file if regenworld doesn't work.

[edit] Understanding Portage's Formatted and Colored Output

Output from portage is compactly formatted to indicate a plethora of information.

[edit] Emerge "Pretend" Output

  • N = new (not yet installed)
  • S = new SLOT installation (side-by-side versions)
  • U = updating (to another version)
  • D = downgrading (best version seems lower)
  • R = replacing (re-merging same version)
  • F = fetch restricted (must be manually downloaded)
  • f = fetch (already downloaded)
  • B = blocked by an already installed package

[edit] USE Flags

  • An unmarked USE flag is unchanged and enabled.
  • - A dash preceding a USE flag (yellow, green or blue) shows that it is disabled.
  • % A percent symbol following a USE flag indicates that it is new for this package. Identical to yellow output.
  • * An asterisk following a USE flag indicates that its meaning/scope has been updated. Identical to green output.
  • () Parentheses around a USE flag indicate that it is currently masked by your profile. This is usually because the USE flag can not be supported on the given platform (for example, the win32codecs on amd64 with non-binary packages) or is irrelevant (for example, sse is available on all amd64 CPU's, so there's no point being able to disable it in a 64-bit environment).

[edit] Color Output

Portage returns information to you using both symbols and colors. While the combination makes for a pretty output it also may appear confusing on first glance. Note that the color information is not required, so it repeats the symbolic output.

  • red - The USE flag is enabled and has not changed.
  • yellow - The USE flag has been added since the package was last installed.
  • green - The USE flag has changed since the last time the package was installed, as the asterisk after it indicates.
  • blue - The USE flag is disabled, as the dash before it indicates.

[edit] Example

If you run the command

emerge --update --verbose --deep --newuse world

you might get something similar to

[ebuild   R    ] sys-kernel/linux-headers-2.6.11-r2  USE="-gcc64%" 36,470 kB 
[ebuild U ] sys-process/psmisc-22.2 USE="X* ipv6 nls (-selinux)" 238 kB

In this example the sys-kernel/linux-headers package would be reinstalled as indicated by the "R" at the beginning of the line. The sys-process/psmisc package is being updated, as shown by the "U" at the beginning of the line.

  • The gcc64 USE flag is colored yellow and followed by "%" showing that that option has been added since the package was last installed. The "-" shows that it will be disabled during this update.
  • The X USE flag will be green and followed by "*" because that USE flag has changed since the last time the package was installed, as the asterisk after it indicates. No "-" shows that it will be enabled during this update.
  • The ipv6 and nls USE flags would appear red since they are enabled (No "-") and have not changed (No "*").
  • The selinux USE flag will be blue because the flag is disabled, as the dash before it indicates. The parentheses also show that it is an unavailable or irrelevant option.

[edit] TimeSavers

For those out there who want to simplify the whole "keywords" and "useflags" management, there is an application app-portage/flagedit which is insanely useful in managing the keys and useflags.

Per Package To enable a flag

flagedit foo-foo/foo +fooflag

To disable a flag ( regardless of what the make.conf file says and despite what your profile might want you to use )

flagedit foo-foo/foo -fooflag

To use whatever is specified by make.conf or your profile ( defaults )

flagedit foo-foo/foo %fooflag

Globally: aka make.conf as above, except without the foo-foo/foo part, ie:

flagedit +fooflag
flagedit -fooflag
flagedit %fooflag

if you wish to reset ALL the use flags for a particular package

flagedit foo-foo/foo %

Keywords to manipulate keywords, its the same as useflags, except you place a -- in the middle of the argument

flagedit foo-foo/foo -- +~fooArch
flagedit foo-foo/foo -- -~fooArch
flagedit -- -~fooArch
flagedit -- +~fooArch
flagedit foo-foo/foo -- %~fooArch

[edit] Conclusion

To update your entire system execute emerge --sync followed by emerge --update --ask --verbose --tree --deep --newuse world (or emerge -uavtDN world) Since package dependencies constantly change, an emerge --depclean followed by a revdep-rebuild -- -p -v might be in order, but is certainly not required.

There have been a variety of "cruft scripts" and cleaners available, but they all seem to have fallen out of maintenance or just plain dropped off the face of the planet. If you have any good ones, please post them here.

[edit] Also See

GaMMa's Original Thread More verbose guide on portage

Porthole is a graphical interface to Portage. By default it is masked so I leave it to you to try it. Newbies should not use it to install or uninstall software, though when ran with user privileges it makes for a convenient way to browse available software.

List of Articles
번호 제목 글쓴이 날짜 조회 수

SSH 게이트웨이 열어서 반대쪽 서버에 들어가는 방법

/etc/ssh/sshd_config에 있는 GatewayPorts yes 로 바꾼후, 재가동 시킨다 그다음 접속하면 됨. 최초 접속하려는 클라이언트에서 # ssh -R 0000:2222:localhost:22 xxx.xxx.xxx.xxx(서버주소) 로 접속한다. 이제는 반대로 서버측에서 열린 포트를 통해 접속을 시도한다. # ssh -p 2222 -l{id} localhost -> 로컬 호스트에 열려있는 2222포트가 바로 상대쪽 ssh 서버 포트이다. -> 이것을 통해 접속하면 상대쪽 ssh에 접속이 가능.! 그리고 게이트웨이가 된 SSH 서버에서 ...

localhost ~ # qlop -l binutils

localhost ~ # qlop -l binutils Sat Feb 9 05:51:08 2008 >>> sys-devel/binutils-2.18-r1 Sat Feb 9 23:55:11 2008 >>> sys-devel/binutils-2.18-r1 Tue Feb 12 02:33:41 2008 >>> sys-devel/binutils-config-1.9-r4 Wed Feb 13 04:54:19 2008 >>> sys-devel/binutils-2.18-r1 Wed Feb 13 06:42:06 2008 >>> sys-devel/binutils-config-1.9-r4 Wed Feb 13 06:52:07 2008 >>> sys-devel/binutils-2.18-r1 Thu Feb 14 04:07:27 2008 >>> sys-devel/binutils-config-1.9-r4 Thu ...

문제보고 2

execve("/usr/bin/gcc", ["gcc", "hey.c", "-Wl,--export-dynamic", "-L/usr/lib", "-lGLU"], [/* 29 vars */]) = 0 brk(0) = 0x804c000 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7ee7000 access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory) open("/etc/ld.so.cache", O_RDONLY) = 3 fstat64(3, {st_mode=S_IFREG|0644, st_size=29954, ...}) = 0 mmap2(NULL, 29954, PROT_READ, MAP_PRI...

Gentoo 설치, 나에게는 거대한 일보입니다. image

Gentoo 설치, 나에게는 거대한 일보입니다. 보기 개요 1375 pointsSubmitted by golden on 월, 2005/11/14 - 10:49pm. 자유 게시판 0 points 오늘 드디어 젠투 2005.1 을 설치하였습니다. 설치가이드를 프린트하지 못하여 시디에 있는 가이드 문서를 다른 콘솔화면(ctrl+alt+f2) 에 불러 두고 왔다 갔다하면서 작업하였지요. 저는 유니버스 시디로 했습니다. 그러므로 stage3 으로 시작한 것입니다. 흔히들 1로부터 하여야 최적화 시킬 수가 있다고 하지만 한번 설치하는 것...

문제 보고.. [11]

i686-pc-linux-gnu-gcc -march=prescott -O2 -pipe -fomit-frame-pointer -o .libs/CallbackMaker CallbackMaker-CallbackMaker.o -Wl,--export-dynamic ../../../src/.libs/libglut.so -lm -L/usr/lib /usr/lib/libGLU.so /usr/lib/libGL.so /usr/lib/libSM.so /usr/lib/libICE.so /usr/lib/libXmu.so /usr/lib/libXt.so /usr/lib/libXi.so -lpthread /usr/lib/libXxf86vm.so /usr/lib/libX11.so /usr/lib/libXext.so /usr/lib/libXau.so /usr/lib/libXdmcp.so -ldl /usr/lib/gcc/i686-pc-linux-gnu/4.2.2/../../../../i686-pc-...

Safe CFLAGS to use for Gentoo - CHOST 설정방법에 대한 내용 [1]

This article is part of the FAQ series. General • Portage • Wiki Warning: THIS PAGE IS FOR SAFE FLAGS ONLY. Please do not include any flags that aren't 100% safe. Just because it works for you doesn't mean it will for everyone else. We aren't interested in benchmark scores, personal anecdotes, rumors, things your really smart uncle once told you, random -m flags that made your box dispense root beer, o...

젠투에서 설치된 패키지 보는 방법 image

portage-utils도 좋습니다. Submitted by griun on 수, 2005/07/27 - 2:04am. emerge portage-utils q qlop -l » [quote]# emerge epm[/quote]epm 을 설치해 Submitted by 정태영 on 화, 2005/07/26 - 10:06pm. 인용: # emerge epm epm 을 설치해보세요 :) 사실 /var/db/pkg 밑을 직접 확인해도 가능하지만... epm 을 이용하면 rpm 에 익숙한 사람들이 쉽게 젠투에 적응할 수 있을 듯 싶군요... epm -qa //깔려있는 모든 패키지를 봅니다 epm -ql 패키지네임 // 어떤 패키지에 속한 파일을 ...

젠투 전체 다시 깔고 기억해야 할 부분을 적어놓았다.

------------------------------------------------------------------------------------------------------------------------ 1. 삼바설치할것. 2. 아파치 설치할것. 3. ufed 설치할것. USE 플래그 자동 편집기 ------------------------------------------------------------------------------------------------------------------------ # /etc/conf.d/net.eth0 -> 편집해서 설정한다. 아무것도 설정하지 않으면 안됨. config_eth0="192.168.0.10/24" routes_eth0="default gw 192.168.0.1" 그리곤 재가동 하면 됨 ----------------------------------------------------------------------...

리눅스 파티션(하드) 통째로 복사

루트에서 cp -av * 복사할곳전이렇게 복사했는데요... 루트에서 cp -av * 복사할곳 전이렇게 복사했는데요... 다른 방법이 있으려나..? dump와 restore를 써보세요. "cd 원본위치 && tar cf - . | tar xfp - -C 대상위치"도 정석 중 하나죠. 지극히 윈도우즈 유저적인 생각인데요 ^^ http://acronis.com/products/trueimageserver/ 이걸 참고해보세요. 제가 리눅스 파티션을 백업해보지는 않았으나, 윈도우즈 파티션을 백업을 이것으로 자주 하거든요. 고스트 안씁니다. ^^ 리눅스...

디스크 쿼터 설정하기

디스크 쿼터 1)커널에서 쿼터 지원여부 확인 [root@netdosapro44 ~]# cat /var/log/dmesg | grep quota VFS: Disk quotas dquot_6.5.1 2)/etc/fstab에 쿼터 옵션 추가 # This file is edited by fstab-sync - see 'man fstab-sync' for details LABEL=/ / ext3 defaults.usrquota 1 1 LABEL=/boot1 /boot ext3 defaults 1 2 none /dev/pts devpts gid=5,mode=620 0 0 none /dev/shm tmpfs defaults 0 0 LABEL=/home /home ext3 defaults 1 2 none /proc proc ...

Gentoo Linux에서 Wake on Lan 기능 사용하는 방법 imagefile

내 컴퓨터 환경에 대해서 .. OS : Gentoo Linux 공유기 : IPTIME G304 LINUX 머신 아이피 : 192.168.0.xx 현재 공유되어 있는 상태이다. 원격 부팅(Wake on-LAN : WOL)에 관해 관심이 많아 지고 있다. 예전에는 고급사양으로 인식되어 일부 고가의 시스템에서만 존재하였으나, 현재는 출시되는 모든 메인보드에 WOL기능이 추가되어, 원격 부팅과 원격 조정을 할 수 있게 된 것이다. 원격 부팅으로 얻을 수 있는 효과는 매우 크다. 집과 사무실에서 인터넷에 ...

VMware에서 writelock이 걸렸을때,

갑자기 vmware에서 writelock이 걸렸다면서 기동할수 없다는 메세지가 떴다. 황당했다. 해결방법은 간단했다. 검색해서 알게 된 사실이지만, 시간이 해결한다는 것이다. 다음에 이런일이 생기면, 컴퓨터를 재 가동시켜보거나, vmware 데몬은 재시작하고 시간이 지나면 다시 컴퓨터를 켜보도록 하자

리눅스에서 UTF-8형식 파일의 압축 해결 imagefile

플랫폼 : 젠투 만약 리눅스에서 UTF-8 설정을 쓰고 VMware에서 윈도우를 사용하고 있다면, 압축하는 과정에서 애를 먹게된다. 그동안 윈도우에서 압축을 해왔는데, 만능 rar 프로그램으로 간단히 해결하게 되었다. 이렇게 간단히 해결되는 것을 아직도 왜 몰랐을까.. ㅜ.ㅜ; # rar a -r 파일명 디렉토리 이것으로 간단히 해결하자.

RealVNC 설정할때 꼭 기억해야 할것.

File: /etc/X11/xorg.conf Section "Module" Load "vnc" Load "freetype" Load "type1" Section "Screen" #This tells X where to locate the VNC password file Option "PasswordFile" "/home/your_user_name/.vnc/passwd" Section "Files" ModulePath "/usr/lib/modules/extensions" ModulePath "/usr/lib/xorg/modules" VNC 설정할때 Emerge 시키고 이후, 반드시 해야할것이 있다. 위의 내용처럼 Load 모듈에 VNC를 포함시키고 Files에 모듈 경로를 입력후 Screen에 패스워...

Winamp 다운로드 imagefile

Winamp 다운로드 제 홈피에 있는 Webterror 음악듣기를 하시면 다음과 같이 음악 목록이 나옵니다. 그 다음은 여기를 클릭하세요~.

RealVNC 프로그램 file

RealVNC 프로그램

emerge -uND world 할때 컴파일 에러나면

emerge -uND world 할때, 패키지 하나만 제외하고 업데이트 하고 싶으면, 아래의 폴더를 만들고, 파일을 만든다. 그리고 적는다. /etc/portage/profile/package.provided 파일내용 =========================================================================================== net-ftp/proftpd-1.3.1_rc2 이런식으로

Apache2 .... 홈디렉토리 설정 /etc/apache2/httpd.conf [1]

제 컴터 젠투 입니다.~~ Apache2 .... 홈디렉토리 설정 /etc/apache2/httpd.conf "httpd.conf"에서 "UserDir www"로 주었습니다. 그리고 Directory /home/*/www로 물론 주었구요... 그런데 아파치 스타트하고 페이지를 보면 http://localhost 하면 테스트 페이지 나옵니다. http://localhost/~username/index.php 하면 페이지가 안뜨네요.. 폴더 권한도 755로 맞추었구요.. 다 했는데... 왜 페이지가 안나오는 걸까요... /etc/conf.d/apache2 파일 입니다. =====================...

HOWTO Use Portage Correctly

Introduction There are a number of major elements that define any Linux distribution. One of the most important is the package management philosophy or system that the distribution embraces. For example, we can categorize distributions designed around RPM as Red Hat based, or we can say that Ubuntu or Knoppix are derived from Debian because they all use APT. The package manager found at the heart of Gentoo Linux is know...

단어 학습 프로그램 file

단어 학습 프로그램


profile하루하루를 망설이며 뱃사공없는 나룻배처럼 구름위를 떠돌아 다니는 사나이. 한때 주위의 새로움에 미친듯이 덤벼들었지만 이제는 조용히 받아들이기만 하는 사람. 

Category

Recent Trackback